mfc之判斷是否以管理員權限運行

BOOL IsAdministrator() {//判斷是否管理員模式

		BOOL bIsElevated = FALSE;
		HANDLE hToken = NULL;
		UINT16 uWinVer = LOWORD(GetVersion());
		uWinVer = MAKEWORD(HIBYTE(uWinVer),LOBYTE(uWinVer));

		if (uWinVer < 0x0600)//不是VISTA、Windows7
			return(FALSE);

		if (OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY,&hToken)) {

			struct {
				DWORD TokenIsElevated;
			} /*TOKEN_ELEVATION*/te;
			DWORD dwReturnLength = 0;

			if (GetTokenInformation(hToken,/*TokenElevation*/(_TOKEN_INFORMATION_CLASS)20,&te,sizeof(te),&dwReturnLength)) {
				if (dwReturnLength == sizeof(te))
					bIsElevated = te.TokenIsElevated;
			}
			CloseHandle( hToken );
		}
		return bIsElevated;
	}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章