我需要控制一些沒有API和非常有限的命令行參數的第三方應用程序。 所以我需要使用.net和C#來模擬用戶交互。如何控制沒有API的第三方應用程序?
我需要做的:
- 啓動應用程序(這工作)
- 輸入字符串轉換成相應的編輯 領域
- 按下按鈕
- 額外的獎勵是隱藏應用程序窗口
可以這樣做,怎麼樣?
非常感謝。
編輯: 你怎麼看待AutoIt的工具?
我需要控制一些沒有API和非常有限的命令行參數的第三方應用程序。 所以我需要使用.net和C#來模擬用戶交互。如何控制沒有API的第三方應用程序?
我需要做的:
可以這樣做,怎麼樣?
非常感謝。
編輯: 你怎麼看待AutoIt的工具?
您可以使用White來實現此目的。
它使您能夠以編程方式模擬用戶與Win32,WinForms,WPF,Silverlight和SWT應用程序的交互。我多年前就使用它,它首先可以在WinForms應用程序上自動化一些簡單的煙霧測試,並取得巨大成功。
(警告:這是根據我的使用前一陣子,所以它可能是現在略有不同)
我創造了一些代碼,啓動我的應用程序,按名稱查找一系列的控制。一旦找到,每個控件都可以被操縱(例如輸入文本,點擊按鈕等)。要查找控件的名稱,請使用諸如Spy ++(Win32),UISpy(WinForms)或Snoop(WPF)之類的軟件來檢查正在運行的應用程序。
Theres也是UI自動化API,對於這項任務來說,這將非常容易掀起。 這個鏈接會給你一個支持每種控件類型的想法:UI Automation Control Types。 您可以使用控件名稱,標題或資源ID來獲取其句柄,並執行所需操作。 點擊一個按鈕,可以像抓住把手,一樣簡單:
AutomationElement control = AutomationElement.FromHandle(controlHandle);
InvokePattern ip = (InvokePattern)control.GetCurrentPattern(InvokePattern.Pattern);
ip.Invoke();
我有很好的成功,與此有關的所有.NET窗口,並從原生世界控制99%