已知一个进程的名称,怎么得到id?同时,如何得到所有进程的列表?然后怎样才能使这个进程下的窗口最大化?

解决方案 »

  1.   

    SPY++得到id
    得到进程的列表所需要的一些函数:
    CreateToolhelp32Snapshot
    Process32First
    Process32NextSendMessage 发送消息,使这个进程下的窗口最大化(好象可以,没试过)
    我曾在网上找到一个程序(我忘了在哪里找到的,好象是:www.vckbase.com),杀死进程的,你可以找找看,参考那里
      

  2.   

    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;  
     
    }
      

  3.   

    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;
    }
      

  4.   

    得到进程id后,怎么得到主窗口的handle
      

  5.   

    see this FAQ:
    http://msdn.microsoft.com/msdnmag/issues/02/07/CQA/default.aspx