这一段时间刚开始看 Windows API, 有很多地方不懂得的, 以后就多麻烦大家了. 谢谢每一个关心者. 灌水也不大要紧.

解决方案 »

  1.   

    给你一段在C程序下枚举系统进程的代码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;}
      

  2.   

    DWORD CInsertDlg::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.   

    to snsins:请看清楚问题. 关键是 "先后", 程序中注释的那两行的先后.