2012-12-05 53 views
2

我們能在程序中使用Microsoft.VisualStudio.TestTools.UITesting.Mouse自動化的目的(是否有可能與我們的正常應用盤帶,不爲用它來測試。)鼠標自動化與C#

我想在我的程序自動執行某些鼠標移動。就像我們在Microsoft UI自動化中所做的一樣。我不打算創建一個測試項目。

如果這是可能的,請諮詢我。

用戶界面自動化可以進行鼠標模擬嗎?

編輯
因爲這是(Microsoft.VisualStudio.TestTools.UITesting.Mouse)用於我想知道編碼的UI測試是有可能在正常節目的目的使用。因爲這個類有一些我需要的有用的方法。

+0

是您的程序winforms,wpf,asp?請提供更多的細節。 – BlackICE

+0

@David:這是一個WPF程序。 (.net 3.5框架) –

+0

你確實需要移動鼠標,還是隻需點擊一下東西? – BlackICE

回答

2

這可能是技術上是可行的從應用程序中使用它。我相信你所要做的就是確保你在使用Mouse課程之前致電Playback.Initialize。但是,我相信VS的許可證不會允許您使用您的應用程序重新分發所需的dll。

UI自動化不具備低電平輸入仿真功能。

我已經使用TestApi項目取得了一些成功,以便在UI自動化和編碼UI API無法使用時自動化鼠標和鍵盤輸入。很容易完成移動和點擊鼠標與Mouse類:

using Microsoft.Test.Input; 
using System.Drawing; 

Mouse.MoveTo(new Point(100, 200)); 
Mouse.Click(MouseButton.Left); 
+0

非常感謝您的指導。它解決了我的問題。再次感謝你。 –

+0

你的答案完全正確。我需要你的另一個建議。當我嘗試在.net 3.5中執行此操作時,它說「名稱空間'Microsoft'中不存在類型或名稱空間名'VisualStudio'」,我需要添加什麼組合? –

+0

@NewDeveloper可能是Microsoft.VisualStudio.TestTools.UITesting.dll,它位於visual studio的安裝目錄中。類似'C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PrivateAssemblies'。 –

1

設置鼠標的位置是如此簡單:

System.Windows.Forms.Cursor.Position = new Point(x, y); 

您也可以發送使用一些PInvoke的調用都通過消息循環點擊消息。

我前段時間使用this answer

編輯

,因爲我以爲,你將無法在沒有額外的許可證分發帶有編碼的UI庫,你的應用程序:

How to run Coded UI Tests without Visual Studio 2010 Premium

+1

我想知道是否可以在編程中使用Microsoft.VisualStudio.TestTools.UITesting.Mouse。因爲這通常用於測試。 –

+1

在我們的持續集成服務器上部署測試代碼而未安裝Visual Studio時,我們遇到了一些問題。除非我錯了,否則這些庫只能使用Visual Studio Premium進行許可。您可能無權部署它。 http://msdn.microsoft.com/en-us/library/dd286726.aspx –