我想在我自己的程序中,关闭其他已经打开的程序,怎么实现?

解决方案 »

  1.   

    先使用FindWindow得到那个程序的句柄,然后在使用SendMessage发送一个关闭窗口消息WM_CLOSED.
      

  2.   

    找到handle,然后发送消息PostMessage(hWnd,WM_CLOSE,0,0);
      

  3.   

    FindWindow
    SendMessage  WM_CLOSE
    都回答了~
      

  4.   

    我怎么才能获得那个窗口的句柄?
    比如我的  任务管理器 的 进程 里面有个叫"taskmgr.exe"的进程
    怎么得到这个进程的句柄?
      

  5.   

    窗口的句柄都有一个关联的实例句柄, 根据实例句柄就可以知道进程的文件名GetWindowLongGetModuleFileName
      

  6.   

    枚举所有的顶层窗口, 对每个窗口做:HINSTANCE hInst = (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE);
    TAHAR  path[MAX_PATH];
    ::GetModuleFileName(hInst, path, MAX_PATH);if(!_tcscmp(path, "c:\\abc.exe"))
    {
        HRESULT hr = SendMessageTimeout(hWnd, WM_CLOSE, 0,0, SMTO_NORMAL, 100000, NULL);}
      

  7.   

    如果我不知道这个程序在什么位置,仅仅知道这个进程的名字叫"abc.exe",该怎么结束?