ユーザー (非管理者) セッションで実行されているすべてのプロセスのリストを取得しようとしています。管理者以外のユーザーを使用して Windows 2008 SP2 で同じことをテストしているときに、以下のコードは、管理者ユーザーで実行されているプロセスに加えて、そのユーザーに属するすべてのプロセスをフェッチすることがわかりました。
そのユーザー (非管理者) でのみ実行されているプロセスのリストを取得する方法はありますか?
以下のコード スニペットを見つけてください。
DWORD procID = 0;
FILE *fp;
PROCESSENTRY32 processInfo;
processInfo.dwSize = sizeof(processInfo);
HANDLE processesSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if ( processesSnapshot == INVALID_HANDLE_VALUE )
{
return;
}
fp = _tfopen(_T("C:\\Process_List.txt") , _T("a+") );
if (fp == NULL) {
MessageBox(_T("Can't open File"));
return;
}
Process32First(processesSnapshot, &processInfo);
_ftprintf(fp, _T("\n Process: %s :: Process ID: %d"), processInfo.szExeFile, processInfo.th32ProcessID);
procID = processInfo.th32ProcessID;
if (procID == 0)
{
while ( Process32Next(processesSnapshot, &processInfo) )
{
_ftprintf(fp, _T("\n Process: %s :: Process ID: %d"), processInfo.szExeFile, processInfo.th32ProcessID);
}
}
fclose(fp);
CloseHandle(processesSnapshot);
前もって感謝します。
よろしく、
ラジェッシュ