Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Sub Command1_Click()Dim hw&hw& = FindWindow("notepad", vbNullString) ' ThunderRTMain under VB4If hw& = 0 Then MsgBox "不存在" Else MsgBox "notepad已经打开" End If End Sub
http://www.xiaozhou.net/ReadNews.asp?NewsID=861
MsgBox "不存在"
Else
MsgBox "notepad已经打开"
End If
End Sub
刚才想使用EnumProcesses这个函数, MSDN上有介绍, 确没头文件, 库文件, 呵FindWindow是个好注意, 谢谢楼上
第一步:通过ToolHelp API茯得所有进程列表;
第二步:利用windows的PROCESSENTRY32结构,通过一个loop即可茯得相应进程的path(也包括程序名).
....
这样不什么问题都解决了.
{
m_ListBox.ResetContent();
CString m_output;
HANDLE hProcessSnap=NULL;
PROCESSENTRY32 pe32={0};
hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap==(HANDLE)-1)
{
::MessageBox(NULL,"查询进程失败!:(","错误提示",MB_OK);
}
pe32.dwSize=sizeof(PROCESSENTRY32);
if(Process32First(hProcessSnap,&pe32))
{
do
{
if(!strcmp(pe32.szExeFile,"a.exe"))
AfxMessageBox("发现指定进程!");
}
while(Process32Next(hProcessSnap,&pe32));
}
else
{
::MessageBox(NULL,"出现意外错误!","错误提示",MB_OK);
}
CloseHandle(hProcessSnap);}
祭出SPY++!
问题迎刃而解