2011-10-20 43 views
3

我有我的wpf應用程序的示例代碼如下。 我需要用字符串填寫表單的文本字段。AutoIt與wpf

Run('AutoItWpfTesting.exe') 
    WinWaitActive("Window1", "") 

    $hHwnd = WinGetHandle("Window1") 
    MsgBox(0, "Message", $hHwnd) 

    $returnVal1=ControlGetHandle ("$hHwnd", "", "[NAME:txtVersion]") 

    $returnVal2=ControlSend($hHwnd,"","[NAME:txtVersion]","blahblah") 

    MsgBox(0, "Message", $returnVal2) 

它爲$ returnVal2返回0,爲$ returnValue1返回空字符串。 但是,這適用於我的示例winform應用程序。

任何線索爲什麼這種行爲是..和任何調整可用來獲取確切的文本框自動填充數據的WPF應用程序。

回答

8

WPF應用程序不使用Windows的控件和控件的句柄。你可以看到通過使用Spy ++。 WPF Alternatives for Spy++

如果您想自動化WPF應用程序you will need another tool或使用the UI Automation API來構建一個。

+0

我改變了鏈接以指向更好的資源。 –

+0

這是正確的。除此之外,您的$ hWnd變量不應該在ControlGetHandle調用的第一個參數中引用。 –