程序A与程序B共同运行在一个windows操作系统上,程序A如何能结束程序B。请各位高手指教,非常感谢!

解决方案 »

  1.   

    CWnd* pWnd=CWnd::FindWindow(NULL,"天网防火墙个人版");
    if(pWnd)
    pWnd->PostMessage(WM_CLOSE);
      

  2.   

    如果程序B在运行过程中出现BUG,系统弹出对话框给出提示,这时程序A该如何结束程序B,及弹出的对话框。请高手指教,不胜感激。
      

  3.   

    用SendMessage向系统弹出对话框的确认键发送一个鼠标消息关闭这个对话框不行吗?
      

  4.   

    比较稳妥的办法是先发WM_CLOSE消息,不行再OpenProcess()然后TerminateProcess().
      

  5.   

    BOOL TerminateProcess(
      HANDLE hProcess, // handle to the process
      UINT uExitCode   // exit code for the process
    );
    保证目标程序吭都不会吭一声就结束了!
      

  6.   

    你的程序B是在程序A中启动的吗,如果是的话,A可以通过句柄来操作,
      

  7.   

    georgehuang() :可以利用OpenProcess来得到句柄的
      

  8.   

    pig_2000() 当然可以得到,比如目标程序是  test.exe
    那么就先枚举进程得到test.exe的ProcessID
    然后调用OpenProcess得到进程的句柄,
      

  9.   

    别说得到别人的句柄把一个DLL插入到不相关的进程里作为一个线程来运行都可以呀
      

  10.   

    我认为用 TerminateProcess() 函数的都是对的!
      

  11.   

    方法一:
    用FindWindow找窗口
    用GetWindowThreadProcessId和OpenProcess得到句柄
    用TerminateProcess强杀进程
      

  12.   

    1、如果程序B在运行过程中没有出现Bug,使用以下方法:(1)、用FindWindow找窗口;(2)、GetWindowThreadProcessId和OpenProcess得到句柄。(3)、用TerminateProcess强杀进程;使用以上方法程序A可以顺利的结束程序B。
    2、但是如果程序B在运行过程中出现Bug,操作系统弹出对话框给出提示,程序A使用上述的方法将不能结束程序B。
    请各位高手指教,万分感谢!