#include "StdAfx.h"
#include <windows.h>
#include <tlhelp32.h> // Toolhelp 32
#ifndef WIN98_PROCESS_
#define WIN98_PROCESS_
#define WIN32_LEAN_AND_MEAN
typedef BOOL (WINAPI *PROCESSWALK)(
HANDLE hSnapshot,
LPPROCESSENTRY32 lppe
);
typedef HANDLE (WINAPI *CREATESNAPSHOT)(
DWORD dwFlags,
DWORD th32ProcessID
);
void Win98_Process(strings &Pro cessList)
{
HANDLE hKernel;
HANDLE snapshot;
PROCESSENTRY32 proc;
CREATESNAPSHOT CreateToolhelp32Snapshot;
PROCESSWALK Process32First;
PROCESSWALK Process32Next;
hKernel = GetModuleHandle("KERNEL32.DLL");
if ( NULL == hKernel )
{
return;
}
CreateToolhelp32Snapshot =
(CREATESNAPSHOT)GetProcAddress((HINSTANCE)hKernel,
"CreateToolhelp32Snapshot");
Process32First = (PROCESSWALK)GetProcAddress((HINSTANCE)hKernel,
"Process32First");
Process32Next = (PROCESSWALK)GetProcAddress((HINSTANCE)hKernel,
"Process32Next");
if (
NULL == CreateToolhelp32Snapshot ||
NULL == Process32First ||
NULL == Process32Next)
{
return;
}
proc.dwSize = sizeof(proc);
snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
Process32First(snapshot, &proc);
//添加保存
ProcessList.push_back(proc.szExeFile);
while (TRUE == Process32Next(snapshot, &proc))
{
ProcessList.push_back(proc.szExeFile);
}
CloseHandle(snapshot);
}
#endif