#include <windows.h>
#include <TCHAR.h>
#include <stdio.h>
#include <tlhelp32.h>
#include <iostream>
using namespace std;int main()
{
//acquire the snapshot
HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap==INVALID_HANDLE_VALUE)
{
cout<<"INVALID_HANDLE_VALUE."<<endl;
return -1;
}

::PROCESSENTRY32 pe32={sizeof(PROCESSENTRY32W)};
BOOL bMore=::Process32First(hProcessSnap,&pe32); //ProcessEntry32W

while(bMore)
{
cout<<"PID: "<<pe32.th32ProcessID<<"\t";
//cout<<"PNAME: "<<pe32.szExeFile<<endl; 十六进制的乱码
printf("PNAME: %s\n",pe32.szExeFile); //只能输出名字的第一个字母
bMore=::Process32Next(hProcessSnap,&pe32);
}
//close handle
::CloseHandle(hProcessSnap);
system("pause");
return 0;
}代码很简单,vc6下正常,但是08下却有问题,见注释,请大家帮我改改,我对wchar_t不是很熟悉,正在恶补中,呵呵