#include <windows.h>
#include <tchar.h>
#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
#pragma comment(lib, "advapi32")
BOOL IsAnAdmin(VOID){
BOOL b = FALSE;
SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;
PSID AdministratorsGroup;
b = AllocateAndInitializeSid(
&NtAuthority,
2,
SECURITY_BUILTIN_DOMAIN_RID,
DOMAIN_ALIAS_RID_ADMINS,
0, 0, 0, 0, 0, 0,
&AdministratorsGroup);
if(b)
{
if (!CheckTokenMembership( NULL, AdministratorsGroup, &b))
{
b = FALSE;
}
FreeSid(AdministratorsGroup);
}
return(b);
}
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){
if(IsAnAdmin())
::MessageBox(NULL,_T("管理者権限で起動しました"),_T("実行権限の情報"),MB_OK | MB_ICONINFORMATION);
else
::MessageBox(NULL,_T("通常権限で起動しました"),_T("実行権限の情報"),MB_OK | MB_ICONINFORMATION);
return 0;
}