已知一个进程的名称,怎么得到id? 已知一个进程的名称,怎么得到id?同时,如何得到所有进程的列表?然后怎样才能使这个进程下的窗口最大化? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SPY++得到id得到进程的列表所需要的一些函数:CreateToolhelp32SnapshotProcess32FirstProcess32NextSendMessage 发送消息,使这个进程下的窗口最大化(好象可以,没试过)我曾在网上找到一个程序(我忘了在哪里找到的,好象是:www.vckbase.com),杀死进程的,你可以找找看,参考那里 DWORD GetProcessId() { DWORD Pid=-1; HANDLE hSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0 PROCESSENTRY32 lPrs; ZeroMemory(&lPrs,sizeof(lPrs)); lPrs.dwSize=sizeof(lPrs); Process32First(hSnap,&lPrs); if (strstr(targetFile,lPrs.szExeFile { Pid=lPrs.th32ProcessID; return Pid; } while(1) { ZeroMemory(&lPrs,sizeof(lPrs)); lPrs.dwSize=(&lPrs,sizeof(lPrs)); if (!Process32Next(hSnap,&lPrs))//¼ÌÐøö¾Ù½ø³ÌÐÅÏ¢ { Pid=-1; break; } if (strstr(targetFile,lPrs.szExeFile)) { Pid=lPrs.th32ProcessID; break; } } return Pid; } another function:DWORD GetProcessIdFromName(LPCTSTR name){ PROCESSENTRY32 pe; DWORD id = 0; HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); pe.dwSize = sizeof(PROCESSENTRY32); if( !Process32First(hSnapshot,&pe) ) return 0; while(1) { pe.dwSize = sizeof(PROCESSENTRY32); if( Process32Next(hSnapshot,&pe)==FALSE ) break; if(strcmp(pe.szExeFile,name) == 0) { id = pe.th32ProcessID; break; } }; CloseHandle(hSnapshot); return id;} 得到进程id后,怎么得到主窗口的handle see this FAQ:http://msdn.microsoft.com/msdnmag/issues/02/07/CQA/default.aspx 菜鸟举手~如何删除对话框程序中那两个默认的“确定”“取消”按钮! 求救关于MsFlexGrid闪烁的问题 清空ini 新手请教:一个EDIT控件逐个按键内容,与CString对象作同位对比的方法? 自己在datagrid控件里面使用combobox控件的过程,菜鸟见解,望大家指正,同时还望gaohl这位朋友关注 请问各位朋友,在C++中如何实现复数数组? 无模式对话框内存泄漏 CArray疑问 图形高手,请救小弟一命 请教一个菜鸟级问题! 中秋节快乐!散!顺便问一下大家都吃什么品牌的月饼?五点钟准时结贴!!!!!!!!!!!! 可用分太多,趋着中秋过节,给大家散散
得到进程的列表所需要的一些函数:
CreateToolhelp32Snapshot
Process32First
Process32NextSendMessage 发送消息,使这个进程下的窗口最大化(好象可以,没试过)
我曾在网上找到一个程序(我忘了在哪里找到的,好象是:www.vckbase.com),杀死进程的,你可以找找看,参考那里
{
DWORD Pid=-1;
HANDLE hSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0 PROCESSENTRY32 lPrs;
ZeroMemory(&lPrs,sizeof(lPrs));
lPrs.dwSize=sizeof(lPrs);
Process32First(hSnap,&lPrs);
if (strstr(targetFile,lPrs.szExeFile
{
Pid=lPrs.th32ProcessID;
return Pid;
}
while(1)
{
ZeroMemory(&lPrs,sizeof(lPrs));
lPrs.dwSize=(&lPrs,sizeof(lPrs));
if (!Process32Next(hSnap,&lPrs))//¼ÌÐøö¾Ù½ø³ÌÐÅÏ¢
{
Pid=-1;
break;
}
if (strstr(targetFile,lPrs.szExeFile))
{
Pid=lPrs.th32ProcessID;
break;
}
}
return Pid;
}
DWORD GetProcessIdFromName(LPCTSTR name)
{
PROCESSENTRY32 pe;
DWORD id = 0;
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
pe.dwSize = sizeof(PROCESSENTRY32);
if( !Process32First(hSnapshot,&pe) )
return 0;
while(1)
{
pe.dwSize = sizeof(PROCESSENTRY32);
if( Process32Next(hSnapshot,&pe)==FALSE )
break;
if(strcmp(pe.szExeFile,name) == 0)
{
id = pe.th32ProcessID;
break;
}
};
CloseHandle(hSnapshot);
return id;
}
http://msdn.microsoft.com/msdnmag/issues/02/07/CQA/default.aspx