我可能应该是钩子,但不知道应该使用什么钩子。
另外我应该怎么知道这个进程是我要找的进程呢?
这个进程是有窗口的,我想或许可以通过窗口来说明,但钩子应该是在窗口创建以后才行啊,这个应该怎么来做啊!

解决方案 »

  1.   

    枚举一下就可以!
    http://www.vckbase.com/bbs/prime/viewprime.asp?id=448
      

  2.   

    有窗口
    就用FindWindow吧。找到就执行你的程序
      

  3.   

    我总不能用死循环来找吧?
    我想的也是FindWindow
    和GetWindowThreadProcessId
    钩子能不能在一个进程创建的时候向我发消息啊?
    应该使用什么钩子呢?
      

  4.   

    我是这样解决的
    hHook  = SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC)MsgProc, hIns, 0);
    挂一个消息钩子
    回调函数这么来判断
    switch(msg->message) //键盘按键标识
            {
    case WM_CREATE:
    if(bInit)
    {
    hwndMain = CreateDialog(hIns, MAKEINTRESOURCE(IDD_UNLIMITED), 0, MainDlgProc);
    bInit = FALSE;
    }
    //SetForegroundWindow(hwndMainx);
    MessageBox(NULL, TEXT("CREATE"), "CREATE", MB_ICONERROR);
    break;
    default:
    break;
            }
    当然我前面还做了发消息的是否是我需要的窗口的判断,但是就是这样,dll把目标进程的各个线程都给注入了一遍啊,到底钩子是怎么工作的啊!