无法从TPanel获取TEdit句柄

时间:2012-01-02 03:33:41

标签: c# delphi winapi handle

我有一个主窗口,它有一个TEdit和一个我需要句柄的TButton。他们都在TPanel里面。到目前为止,我的代码是

    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为0。我不知道为什么这不起作用,因为它遵循Spy ++给我的结构:

Spy++ Structure of Window

这里有什么我想念的吗?我是否需要一种不同的方法来获取TEdit的句柄?我使用FindWindowEx错了吗?

1 个答案:

答案 0 :(得分:5)

Spy ++显示编辑框中没有文字。奇怪的是,甚至tButton都没有标题。找到tEdit应该是第一次工作但是根据你的其他问题但是一旦你发送一些文本到编辑,FindWindowEx调用将失败,因为你总是传递“”作为文本。您可以传递null而不是查找任何匹配项。