當在Windows上執行程式時發生權限不足,這時就需要將程式執行權限提高至管理者權限。
BOOL EnablePrivilege()
{
BOOL bRet = FALSE;
HANDLE hToken = NULL;
TOKEN_PRIVILEGES tp;
tp.PrivilegeCount = 1;
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) //開啟程式調整權限
{
if (LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tp.Privileges[0].Luid)) //查詢是否可調整權限
{
AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(tp), NULL, NULL); //為程式提高 DEBUG 權限
bRet= (GetLastError() == ERROR_SUCCESS);
}
}
if(hToken) CloseHandle(hToken);//確認是否執行成功
return bRet;
}
沒有留言:
張貼留言