Process32First()为什么总是返回0解决办法
Process32First()为什么总是返回0
// CloseProcess.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h "
#include <windows.h>
#include <Tlhelp32.h>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
_TCHAR exeFile[] = TEXT( "notepad ");
HANDLE handle;
handle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
PROCESSENTRY32 processentry_info;
BOOL result = Process32First(handle, &processentry_info);
while(result)
{
cout < < processentry_info.th32ProcessID < < endl
< < processentry_info.pcPriClassBase < < endl
< < processentry_info.szExeFile < < endl;
if(processentry_info.szExeFile == exeFile)
{
HANDLE handleOne = OpenProcess(PROCESS_ALL_ACCESS, true, processentry_info.th32ProcessID);
TerminateProcess(handleOne, 0);
}
result = Process32Next(handle, &processentry_info);
}
return 0;
}
为什么BOOL result = Process32First(handle, &processentry_info);的result总是0,请指教
------解决方案--------------------
PROCESSENTRY32 processentry_info;后面加一句:
processentry_info.dwSize = sizeof(PROCESSENTRY32);
MSDN上写的很清楚
------解决方案--------------------
if(wcscmp(processentry_info.szExeFile, _TEXT( "notepad.exe ")) == 0)
------解决方案--------------------
VC2005默认以Unicode字符集编译的
改成多字符集也可以
// CloseProcess.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h "
#include <windows.h>
#include <Tlhelp32.h>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
_TCHAR exeFile[] = TEXT( "notepad ");
HANDLE handle;
handle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
PROCESSENTRY32 processentry_info;
BOOL result = Process32First(handle, &processentry_info);
while(result)
{
cout < < processentry_info.th32ProcessID < < endl
< < processentry_info.pcPriClassBase < < endl
< < processentry_info.szExeFile < < endl;
if(processentry_info.szExeFile == exeFile)
{
HANDLE handleOne = OpenProcess(PROCESS_ALL_ACCESS, true, processentry_info.th32ProcessID);
TerminateProcess(handleOne, 0);
}
result = Process32Next(handle, &processentry_info);
}
return 0;
}
为什么BOOL result = Process32First(handle, &processentry_info);的result总是0,请指教
------解决方案--------------------
PROCESSENTRY32 processentry_info;后面加一句:
processentry_info.dwSize = sizeof(PROCESSENTRY32);
MSDN上写的很清楚
------解决方案--------------------
if(wcscmp(processentry_info.szExeFile, _TEXT( "notepad.exe ")) == 0)
------解决方案--------------------
VC2005默认以Unicode字符集编译的
改成多字符集也可以