RT,我用ShellExecute调用外界的软件,Word之类,想当调用程序关闭时,外界调用的都关掉。
我查了下,可以用FindWindow来做,我用了,但是没有反应。用的PostWindow;
又想可以关闭进程,但是有了一个问题,如果说这个调用的窗口正在工作,譬如说打开了CAD图,在图上做出了一些改动,这个时候关闭,会不会提示保存?如果当前进程正在工作,如何判断,当不工作时才关闭。
还有什么其他方法吗?
求答疑啊。

解决方案 »

  1.   

    你自己调用哪些窗口你自己代码里面洗的你自己知道你发一条WM_CLOSE消息过去,他们就会关闭  没保存的工作会提示 就像你平时正常关闭一个工作中的程序一样 没保存的工作会提示你保存的
      

  2.   

    找到HWND,然后PostMessage(HWND, WM_CLOSE, 0, 0);过去
      

  3.   

    打开不同的应用程序,关闭的方式也不一样的。有些可以发送WM_CLOSE,有些可能屏蔽了,就不好关闭了
      

  4.   

    PostMessage(HWND, WM_CLOSE, 0, 0);
    PostMessage(HWND, WM_QUIT, 0, 0);
    这个没有万能的解决方法, 毕竟外在程序不是自己写的。 
      

  5.   

    我在CMainFrame::OnClose()
    {
    HWND hWnd1=::FindWindow(NULL,"帮助.doc");
    ::PostMessage(hWnd1,WM_CLOSE,NULL,NULL);
    }
    但是没反应啊。
      

  6.   


    怎么办呢?有什么思路给个吧。
    我是调用了两个软件
    Surfer.exe  和   CAD的DWG图。
      

  7.   

    system("tskill &&&&&");
    直接了当,不过可能会误删。
      

  8.   


    关键是我想知道为什么FindWindow之后PostMessage不成功。
    而且误删的话肯定不太好了。呵呵
      

  9.   


    那word怎么在VC中关闭呢?谢谢了。