簡體   English   中英

獲取空文本框的句柄

[英]Getting the handle of an empty textbox

我試圖從我的.NET應用程序控制另一個.NET應用程序。 但是我在處理特定文本框時遇到麻煩。

到目前為止,我一直在遍歷主窗體子窗口,並檢查Windows API方法GetWindowText()返回的值,以查看我是否具有正確的控件。 但是我要控制的程序有2個空文本框,它們都有相同的類,並且都從GetWindowText()返回相同的值。 因此,我無法識別需要處理的文本框。

無論如何要獲得控件的名稱? 我讀過一些有關將SendMessage與'WM_GETCONTROLNAME'一起使用的信息,但是我找不到太多了。

謝謝。

我設法通過使用Microsoft UI自動化庫來解決此問題。

我創建了一個遍歷子窗口的函數,並從它們的句柄創建了AutomationElement,這使我可以檢查控件的ID /名稱。 找到要查找的控件后,我將其返回。

Public Shared Function getHandleByID(ByVal windowHandle As IntPtr, ByVal ID As String) As IntPtr
    For Each window As IntPtr In GetChildWindows(windowHandle)
        Dim aE As AutomationElement = AutomationElement.FromHandle(window)
        If aE.Current.AutomationId = ID Then
            Return New IntPtr(aE.Current.NativeWindowHandle)
        End If
    Next
    Return Nothing
End Function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM