1、判断Steam平台或者是Steam蒸汽平台的启动方式
#include <windows.h>
#include <TlHelp32.h>
#include <sddl.h>
#include <iostream>
bool IsSteamAdmin()
{
DWORD dwSteamPID = 0;
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(PROCESSENTRY32);
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap != INVALID_HANDLE_VALUE)
{
if (Process32First(hProcessSnap, &pe32))
{
do
{
if (_wcsicmp(pe32.szExeFile, L"Steam.exe") == 0 || _wcsicmp(pe32.szExeFile, L"steamchina.exe") == 0)
{
dwSteamPID = pe32.th32ProcessID;
break;
}
} while (Process32Next(hProcessSnap, &pe32));
}
CloseHandle(hProcessSnap);
}
if (dwSteamPID == 0)
{
return false;
}
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, dwSteamPID);
if (hProcess == NULL)
{
return false;
}
HANDLE hToken;
if (!OpenProcessToken(hProcess, TOKEN_QUERY, &hToken))
{
CloseHandle(hProcess);
return false;
}
DWORD dwLengthNeeded = 0;
GetTokenInformation</