用Delphi的查找句柄程序查到一个程序的句柄为'????',其它数据什么都没有,而且这个程序可以启动多个,要想向这样的窗口控件发送消息该怎么办?请大虾指教,我要发送消息的窗口是传奇的脱机外挂[热血传神],该窗口没有标题什么的,好像是自绘窗口吧,在win2000的任务管理器下也只能看到该程序运行时名称为一堆随机数字,如果再运行一个还是一堆数字,好像是随机的,没有什么规律可言.我想写个程序自动更改攻击模式,就是向传神的发言框发送ctrl+H消息,现在搞不到窗口句柄,郁闷死我了.望 大家帮忙.

解决方案 »

  1.   

    可能是你不会用吧,你用SPY++看看,应该不会是你说的情况。获得句柄有很多种方法的,不一定要通过窗口标题,这些问题你在google上找一找太多了。
      

  2.   

    枚举所有窗口,应该可以
    function EnumWindowsProc(hwnd: HWND; lParam: LPARAM): Boolean; stdcall;
    var
      cName: array[0..180] of Char;
      wName: array[0..32] of Char;
      tHandle: Longword;
    begin
      result := true;
      GetClassName(hwnd, cName, 32);    {类名}
      GetWindowText(hwnd, wName, 180);  {窗口名}
      tHandle := GetWindowLong(hwnd, GWL_STYLE); {判断窗体是否可见}
      if (WS_VISIBLE and tHandle) > 1 then
      form1.memo1.Lines.Append(IntToStr(hwnd)+ Chr(2) + StrPas(cName) + chr(2) + StrPas(wName));
    end;
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      EnumWindows(@EnumWindowsProc, 0);
    end;
      

  3.   

    应该是字体不对吧,或者系统把caption能成乱码了