#include <iostream>
#include <windows.h>
#include <locale>
using namespace std;
int main()
{
setlocale(LC_ALL, "CHS");
SHELLEXECUTEINFO sei = {sizeof(SHELLEXECUTEINFO)};
sei.lpVerb = L"runas";
sei.lpFile = L"cmd.exe";
sei.nShow = SW_SHOWNORMAL;
if (!ShellExecuteEx(&sei))
{
if (GetLastError() == ERROR_CANCELLED)
cout << "取消" << endl;
else
if (GetLastError() == ERROR_FILE_NOT_FOUND)
cout << "对不起,该文件没有发现" << endl;
}
HANDLE hToken = NULL;
DWORD dwSize;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken))
{
cout << "OpenProcessToken 失败!" << endl;
system("pause");
return 0;
}
BOOL bResult = FALSE;
TOKEN_ELEVATION_TYPE ElevationType;
if (GetTokenInformation(hToken, TokenElevationType, &ElevationType, sizeof(ElevationType), &dwSize));
{
BYTE adminSID[SECURITY_MAX_SID_SIZE];
dwSize = sizeof(adminSID);
CreateWellKnownSid(WinBuiltinAdministratorsSid, NULL, &adminSID, &dwSize);
if (ElevationType == TokenElevationTypeDefault)
cout << "进程以受限的权限运行" << endl;
}
system("pause");
return 0;
}
#include <windows.h>
#include <locale>
using namespace std;
int main()
{
setlocale(LC_ALL, "CHS");
SHELLEXECUTEINFO sei = {sizeof(SHELLEXECUTEINFO)};
sei.lpVerb = L"runas";
sei.lpFile = L"cmd.exe";
sei.nShow = SW_SHOWNORMAL;
if (!ShellExecuteEx(&sei))
{
if (GetLastError() == ERROR_CANCELLED)
cout << "取消" << endl;
else
if (GetLastError() == ERROR_FILE_NOT_FOUND)
cout << "对不起,该文件没有发现" << endl;
}
HANDLE hToken = NULL;
DWORD dwSize;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken))
{
cout << "OpenProcessToken 失败!" << endl;
system("pause");
return 0;
}
BOOL bResult = FALSE;
TOKEN_ELEVATION_TYPE ElevationType;
if (GetTokenInformation(hToken, TokenElevationType, &ElevationType, sizeof(ElevationType), &dwSize));
{
BYTE adminSID[SECURITY_MAX_SID_SIZE];
dwSize = sizeof(adminSID);
CreateWellKnownSid(WinBuiltinAdministratorsSid, NULL, &adminSID, &dwSize);
if (ElevationType == TokenElevationTypeDefault)
cout << "进程以受限的权限运行" << endl;
}
system("pause");
return 0;
}