首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

苦闷了半天才解决

2013-11-18 
郁闷了半天才解决.不多说.直接上代码 int main(){DWORD pidif(!GetProcessIdByName(smss.exe,&pid))//

郁闷了半天才解决.
不多说.直接上代码 
int main()
{
   DWORD pid;
   if(!GetProcessIdByName("smss.exe",&pid))//  错误点
     cout<<"没有找到进程!!!\n";
   else
     cout<<"找到了进程!!!\n";
   system("pause");
}
//通过进程名获取进程PID
BOOL GetProcessIdByName(LPSTR szProcessName,LPDWORD lpPID)
{
//变量及初始化
PROCESSENTRY32 ps;
HANDLE hSnapshot;
ZeroMemory(&ps,sizeof(PROCESSENTRY32));
ps.dwSize=sizeof(PROCESSENTRY32);
//遍历进程
hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hSnapshot==INVALID_HANDLE_VALUE)
{
return FALSE;
}if(!Process32First(hSnapshot,&ps))
{
return FALSE;
}
do
{
// 比较进程名  
if(lstrcmpiA((LPCSTR)ps.szExeFile,szProcessName)==0)
{
//找到了
*lpPID=ps.th32ProcessID;
CloseHandle(hSnapshot);
cout<<"找到了此:" <<ps.szExeFile<<"进程"<<endl;
return TRUE;
}
}while(Process32Next(hSnapshot,&ps));
//没找到
CloseHandle(hSnapshot);
return FALSE;
};
Unicode字符问题 请看过的学弟们多多注意
[解决办法]
估计默认的是UNICODE编码的话。

" "包含的字符串会以宽字节保存。

所以调用的类型不对。

该系统工程编码类型。或者转换你的指针类型。


建议以后编写直接使用通用类型。

TCHAR LPTSTR LPCTSTR _T  

热点排行