"cpp/win32/uac"의 두 판 사이의 차이
Redjini WiKi
(차이 없음)
|
2017년 7월 3일 (월) 11:41 기준 최신판
- CPP > Win32 APIcpp/win32/api (6)
- CPP > Win32 > Firewal(방화벽)cpp/win32/firewal
- CPP > Win32 > Internet 신뢰 사이트cpp/win32/internet trust zone
- CPP > Win32 > UAC 확인cpp/win32/uac
- CPP > Win32 > Windows 32/64 확인cpp/win32/windows 32 64 check
- CPP > Win32 > Windows Message Codecpp/win32/windows message code (3)
- CPP > Win32 > WinINet 오류코드cpp/win32/wininet error code
- CPP > Win32 > WinINet(HTTP)cpp/win32/wininet http
- CPP > win32 > 레지스트리 등록cpp/win32/레지스트리 등록
- CPP > win32 > 프로세스 파일 경로cpp/win32/프로세스 파일 경로
UAC On/Off 상태를 확인
레지스트리에서 현재 OS에서 UAC On/Off 상태 확인
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System
서브키 아래 EnalbleLUA 값을 확인 하면 UAC 가 On/Off 상태인지 확인 할 수 있음.
- EnableLUA : 1 -> UAC 가 켜진 상태.
- EnableLUA : 0 -> UAC 가 꺼진 상태.
소스
#include "stdafx.h"
#include <shlwapi.h>
#pragma comment(lib, "shlwapi.lib")
BOOL IsUacOn(){
DWORD res = ERROR_SUCCESS;
DWORD dwType = REG_DWORD;
DWORD UacOnOff= 0;
DWORD sz = sizeof(DWORD);
res = SHGetValue(HKEY_LOCAL_MACHINE,
_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"),
_T("EnableLUA"),
&dwType,
&UacOnOff, &sz);
if(res == ERROR_SUCCESS && UacOnOff == 1){
return TRUE;
}else{
return FALSE;
}
}
다른 Application을 실행 할 때 CreateProcess 함수를 이용 할 경우 UAC 권한상승을 할 수 없음. 권한 상승이 필요 할 경우 ShellExecute 함수를 이용해야함.