想要做一个杀掉特定进程的程序。需要分析进程的命令行,知道它是不是我要杀的东西。进程非mfc程序。

解决方案 »

  1.   

    在已知进程中注射一个DLL, 该DLL负责获取命令行参数并传送给要杀掉特定进程的程序,实现有点复杂,不过确实可行
      

  2.   

    注射DLL到目标进程,GetCmdLine。
      

  3.   

    有这么麻烦?这样好了:
    PROCESSENTRY32 pe32;
    LPSTR pFileName;
    HANDLE hProc = NULL;
    pe32.dwSize = sizeof pe32;
    hProc = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if(hProc != INVALID_HANDLE_VALUE)
    {
    if(::Process32First(hProc,&pe32))
    {
    do
    {
    //pe32.szExeFile就是命令行了,自己看着办吧。
    }while(::Process32Next(hProc,&pe32));
    }
    CloseHandle(hProc);
    }
    这些属于Tool Help函数族,使用条件如下
    Included in Windows XP, Windows 2000 Professional, Windows Me, Windows 98, and Windows 95
    Windows Server 2003 and Windows 2000 Server.
    头文件: Declared in Tlhelp32.h.
    库文件: Use Kernel32.lib.
    这一类API函数还包括:
    CreateToolhelp32Snapshot
    Heap32First
    Heap32ListFirst
    Heap32ListNext
    Heap32Next
    Module32First
    Module32Next
    Process32First
    Process32Next
    Thread32First
    Thread32Next
    Toolhelp32ReadProcessMemory
      

  4.   

    补充一下:pe32.szExeFile保存的是可执行文件的全路径,而不是带参数的命令行,不过,我看你的意思好像就是找到这个。