我有一个主窗口,它有一个TEdit和一个TButton,我需要这些句柄。他们都在TPanel内。我的代码到目前为止是无法从TPanel获得TEdit句柄
public void SendPacket(string packet)
{
IntPtr hWnd = Window.FindWindow(null, "AlissaAnalyzer");
IntPtr panel = Window.FindWindowEx(hWnd, IntPtr.Zero, "TPanel", "");
IntPtr edithWnd = Window.FindWindowEx(panel, IntPtr.Zero, "TEdit", "");
IntPtr buttonhWnd = Window.FindWindowEx(panel, IntPtr.Zero, "TButton", "");
//Do stuff with handles
}
这给了我TPanel和TButton,但为TEdit的手柄。我不知道为什么,这并不工作,因为它遵循间谍++给我的结构:
有我丢失的东西吗?我需要一种不同的方法来获得TEdit的句柄吗?我使用FindWindowEx错误吗?
如果你想从.NET做UI自动化,White项目可能会简化你的工作:http://white.codeplex.com/ – 2012-01-02 03:41:07
我不认为TEdit的父窗口是面板...尝试IntPtr edithWnd = Window.FindWindowEx(hWnd,IntPtr.Zero,“TEdit”,“”); – ComputerSaysNo 2012-01-02 04:34:04
P.S.我也注意到,你在截图中有一个TMemo但不是TEdit,是否可以用备忘录代替TEdit字段? – ComputerSaysNo 2012-01-02 04:38:02