在用Delphi开发的应用程序界面中,怎样获得 鼠标所在控件的  主程序的句柄?

解决方案 »

  1.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
     MainHandle,ChildHandle:HWND;begin
    //找到程序主窗口  MainHandle := FindWindow(nil,'wuzhongFrm');//列出主窗口的所有控件句柄 ,这个循环或者使用的Api不对,不知道怎么修改?
     ChildHandle:= FindWindowEx(MainHandle,0,nil,nil); while ChildHandle<>0 do
     begin
       memo1.Lines.Add(inttostr(Integer(ChildHandle)));
       ChildHandle:=FindWindowEx(ChildHandle,0,nil,nil);
     end;
    //GetPoint的窗口和列出的所有窗口进行比较
    end;
      

  2.   


    procedure TForm1.Button2Click(Sender: TObject);
    var
     MainHandle,ChildHandle:HWND;begin
    //找到程序主窗口  MainHandle := FindWindow(nil,'wuzhongFrm');//列出主窗口的所有控件句柄 ,这个循环或者使用的Api不对,不知道怎么修改?
     ChildHandle:= FindWindowEx(MainHandle,0,nil,nil); while ChildHandle<>0 do
     begin
       memo1.Lines.Add(inttostr(Integer(ChildHandle)));
       ChildHandle:=FindWindowEx(ChildHandle,0,nil,nil);
     end;
    //GetPoint的窗口和列出的所有窗口进行比较
    end;
      

  3.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
     MainHandle,ChildHandle:HWND;begin
    //找到程序主窗口  MainHandle := FindWindow(nil,'wuzhongFrm');//列出主窗口的所有控件句柄 ,这个循环或者使用的Api不对,不知道怎么修改?
     ChildHandle:= FindWindowEx(MainHandle,0,nil,nil); while ChildHandle<>0 do
     begin
       memo1.Lines.Add(inttostr(Integer(ChildHandle)));
       ChildHandle:=FindWindowEx(ChildHandle,0,nil,nil);
     end;
    //GetPoint的窗口和列出的所有窗口进行比较
    end;
      

  4.   

    请问一下楼主,Delphi(Pascal) code怎么回贴时,代码会有Delphi的风格.也就是字体有关键字颜色等.不好我直接回复了两次,呵呵
      

  5.   

    是想获取主窗口的句柄还是进程句柄啊?如果是进程句柄用GetMouseMovePointsEx获取鼠标位置,然后WindowFromPoint获取窗口句柄,用GetWindowThreadProcessId获取进程ID,最后OpenProcess
      

  6.   


    procedure TForm1.Button2Click(Sender: TObject);
    var
     MainHandle,ChildHandle:HWND;begin
    //找到程序主窗口  MainHandle := FindWindow(nil,'wuzhongFrm');//列出主窗口的所有控件句柄 ,这个循环或者使用的Api不对,不知道怎么修改?
     ChildHandle:= FindWindowEx(MainHandle,0,nil,nil); while ChildHandle<>0 do
     begin
       memo1.Lines.Add(inttostr(Integer(ChildHandle)));
       ChildHandle:=FindWindowEx(ChildHandle,0,nil,nil);
     end;
    //GetPoint的窗口和列出的所有窗口进行比较
    end;