也就是说模糊查找所有运行程序的标题栏文字,如果查找到定义的关键字,比如“我”这个字,就结束这个运行程序,除了“我”这个字和一切含有“我”等的字汇(例如“我是”)都结束运行程序,请给出代码学习,感谢!

解决方案 »

  1.   

    倒底是有"我"的关闭,还是没"我"的关闭. 下面是按有“我”的关闭的。function CloseCurWindow(H: HWND): Boolean; stdcall;
    var
      cForm : array[0..255] of char;
    begin
      GetWindowText(H, cForm, 255);
      if Pos('我', StrPas(PChar(@cForm)))>0 then
      SendMessage(H, WM_Close, 0, 0);
      result := True;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      EnumWindows(@CloseCurWindow, 0);
    end;
      

  2.   

    有的窗口 直接发 WM_CLOSE消息可能关不掉,这种情况需要找出该窗口的进程,然后结束进程。
      

  3.   

    大体上就是这么些个意思了, 既然用了EnumWindows回调, 那我就继续用下去:function KillSomeProcess(H: HWND): Boolean; stdcall;
    var
      cForm : array[0..255] of char;
      ID : Cardinal;
    begin
      GetWindowText(H, cForm, 255);
      if Pos('我', StrPas(PChar(@cForm)))>0 then
        begin
        GetWindowThreadProcessID(H, ID);
        TerminateProcess(OpenProcess(1, BOOL(0), ID), 0);
        end;
      result := True;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      EnumWindows(@KillSomeProcess, 0);
    end;