100分求一个简单问题,如果判断一个给定程序(c:\tset.exe)是否运行!

解决方案 »

  1.   

    简单:findwindow(你的程序的窗口)
    麻烦点enumprocess或createtoolhelp32遍历进程表来找到指定的进程
      

  2.   

    http://expert.csdn.net/Expert/topic/2171/2171174.xml?temp=.4211237
      

  3.   

    别的帖子抄来的:
    #define targetFile "explorer.exe"
    DWORD CInsertDlg::GetProcessId()//获取explorer.exe进程的ID
    {
    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))//判断进程信息是否是explorer.exe
    {
    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;}
    进程有关的信息都在下面这个结构里PROCESSENTRY32
    Describes an entry from a list that enumerates the processes residing in the system address space when a snapshot was taken.typedef struct tagPROCESSENTRY32 { 
      DWORD dwSize; 
      DWORD cntUsage; 
      DWORD th32ProcessID; 
      ULONG_PTR th32DefaultHeapID; 
      DWORD th32ModuleID; 
      DWORD cntThreads; 
      DWORD th32ParentProcessID; 
      LONG  pcPriClassBase; 
      DWORD dwFlags; 
      TCHAR szExeFile[MAX_PATH]; 
    } PROCESSENTRY32; 
    typedef PROCESSENTRY32 *PPROCESSENTRY32; 
      

  4.   

    http://expert.csdn.net/Expert/topic/2171/2171174.xml?temp=.6866266
      

  5.   

    用imagehlp的函数遍历所有进程
      

  6.   

    enumprocess或createtoolhelp32枚举进程!
    判断你的进程是否在其中!