2010-01-12 21 views
36

Tôi đang tìm một thư viện có thể được sử dụng trong mã .NET gốc, giống như bất kỳ hội đồng .NET nào. Mục đích của thư viện phải là tự động hóa Windows (nhấn một nút, chọn một cửa sổ, gửi các phím, ghi lại phát lại &, loại điều đó).Thư viện tự động hóa .NET Windows có ích gì, nếu có.

Vì vậy: thư viện được cho là được sử dụng nguyên gốc trong .NET, nhưng bản thân tự động hóa phải có khả năng nhắm mục tiêu bất kỳ ứng dụng .NET gốc hoặc bản gốc nào có thể nhận đầu vào của người dùng.


Gợi ý cho đến nay:

  • benPearce suggested AutoIt. Nó có một DLL, đó là bản địa Win32 nhưng không phải bản địa .NET và không thể được sử dụng mà không cần sử dụng .NET Interop.
  • Chris Dunaway suggested Global Mouse Keyboard Lib. Điều này đến gần nhất, nhưng không phải là một lib tự động hóa. Nó chỉ giúp thiết lập móc bàn phím và chuột.
  • pm100 suggested Microsoft's WPF UI Automation. Điều này là khá tốt, mặc dù nó không có sẵn nếu bạn phát triển trong .NET 2.0 và nó đòi hỏi WPF phải được cài đặt trên hệ thống. Tuy nhiên, nó có thể tự động hóa mọi thứ từ ứng dụng Win32 sang HTML trong trình duyệt.
  • JasonTrue suggested WebAI from ArtOfTest. Đây là một khung kiểm thử chủ yếu hướng tới các trình duyệt và các ứng dụng web. Thật không may là không phù hợp để sử dụng cho Windows tự động hóa.

Nếu không có gì khác xuất hiện, tôi có thể chọn Tự động hóa giao diện người dùng của Microsoft và nâng cấp bất kỳ dự án nào yêu cầu từ .NET 2.0 đến .NET 3.5, nếu có thể. Nhưng tôi hy vọng cho một khuôn khổ tự động hóa áp dụng rộng rãi hơn (.NET trước 2.0 không cần phải được hỗ trợ).

Trả lời

9

Bạn đã xem the White framework chưa?

+0

Cảm ơn câu trả lời của bạn. Nó có vẻ tốt và phải mất đi nỗi đau của việc sử dụng khung UI của WPF. Tuy nhiên, nó có cùng một nhược điểm như WPF (khi được gọi từ WinForms chẳng hạn), nhưng nó có thể là giải pháp tốt nhất cho đến nay. – Abel

+0

Nếu bạn cũng có các Điều khiển bên ngoài, bạn có thể muốn xác minh rằng chúng có thể được tự động với Màu trắng: Trong trường hợp này, bạn có thể muốn sử dụng http://www.codeplex.com/UIAutomationVerify này. – tobsen

+1

Sau một vài suy nghĩ, tôi quyết định chấp nhận câu trả lời của bạn. Nó không phải là chính xác những gì tôi muốn (nó giới hạn tôi sử dụng WPF khi tôi muốn bao gồm White hoặc MS UI Automation), nhưng nó được cho là cung cấp tốt nhất cho đến nay. Cảm ơn! – Abel

8

riêng xây dựng trong một của microsoft là tốt

http://msdn.microsoft.com/en-us/library/ms747327.aspx

không bị giới hạn WPF như một số dường như để suy nghĩ.

+0

Tôi không biết về sự phát triển mới này. Chắc chắn thú vị, nhưng nó khóa tôi xuống WPF. Xem xét tôi gần như chỉ làm NET 3.5 + phát triển (khi tôi làm. NET dự án, đó là) mà không phải là một vấn đề thực sự mặc dù. – Abel

+0

Tôi không nghĩ rằng điều này khóa bạn vào WPF; đó là thư viện tự động hóa giao diện người dùng chuẩn của Windows và chỉ xảy ra với WPF ngay bây giờ. MS Active Accessibility là lựa chọn tốt nhất của bạn nếu bạn cần làm việc. – JasonTrue

+0

không có gì để làm với wpf. làm việc cho tất cả các ui trong cửa sổ – pm100

7

Tôi đã sử dụng AutoIt trong quá khứ với thành công.

+0

Trông khá giống với thứ tôi cần (và nó cũng đổ chuông). Tx – Abel

+0

Đánh tôi với nó! :) Có, tôi sẽ nói kiểm tra AutoItX, đó là một cách để sử dụng chức năng AutoIt từ một DLL. –

+0

Vì tôi thực sự yêu cầu một. Lib: Tôi không imm. xem cách nó có thể được sử dụng từ bên trong .NET. Bạn có thể hiển thị một ví dụ hoặc chỉ cho một ví dụ về cách nó có thể được gọi từ .NET không? – Abel

1

Tôi đã sử dụng WebAii from ArtOfTest với một mức độ hợp lý của thành công trong việc tự động hóa thử nghiệm tích hợp cho một ứng dụng Silverlight. Nó cũng hỗ trợ các ứng dụng WinForms và Web.

Tự động hóa giao diện người dùng của Microsoft, người kế thừa Trợ năng hoạt động, có thể thực hiện gần như tất cả tự động hóa giao diện người dùng Windows mà bạn cần.

+0

Đúng nếu tôi sai, nhưng không phải là trình duyệt- tự động hóa? Tôi thực sự đang tìm kiếm tự động hóa Windows.Thú vị để giữ, mặc dù đối với các loại dự án khác :) – Abel

+0

Bạn nói đúng, nó chắc chắn tập trung hơn vào tên miền đó, nhưng nó cũng cho thấy điều khiển Win32. Microsoft UI Automation làm việc cho hầu hết các tự động hóa mà không phải tương tác với các trình duyệt. http://en.wikipedia.org/wiki/Microsoft_UI_Automation – JasonTrue

2

This library khá thú vị và khá đơn giản. Có lẽ nó sẽ giúp bạn.

+0

Điều đó chắc chắn thú vị! Không thực sự là một lib tự động cho mỗi se, nhưng nó chắc chắn có thể sử dụng và lên đến nhiệm vụ đó có vẻ như. Tôi sẽ xem xét kỹ hơn. – Abel

1

Làm thế nào về CSharpScript, đây là một article về nó trên Codeproject, và đây là link đến trang web chính. Hơn nữa, nó là quen thuộc C#, kịch bản có thể được sử dụng để tự động hóa bất cứ điều gì.

Hy vọng điều này sẽ giúp, Trân trọng, Tom.

+0

Điều đó trông giống như một dự án hứa hẹn có giá trị của nó, nhưng là một ngôn ngữ kịch bản, làm thế nào nó có thể được áp dụng cho tự động hóa của "bất kỳ" ứng dụng Windows? – Abel

+0

Tôi sẽ không định nghĩa nó như một ngôn ngữ kịch bản, mã C# có thể được sử dụng như một chương trình theo đúng nghĩa của nó, nếu bạn nghĩ về Windows Scripting Host, hoặc thậm chí AutoIt, thậm chí sử dụng p/gọi trong mã, đó là sự linh hoạt của nó. – t0mm13b

2

Nếu bạn chưa nhìn thấy nó nêu ra, và một thư viện thương mại là chấp nhận được, bạn có thể kiểm tra Ranorex:

http://www.ranorex.com/

tôi đã sử dụng Ranorex 1.5 khá một chút để viết C# tiện ích giao diện người dùng tự động hóa nhỏ. Nó khá hiệu quả! Phát triển dường như nhanh hơn so với sử dụng MS UI Automation API trực tiếp, vì Ranorex có rất nhiều phương thức tiện lợi hữu ích đã có sẵn.

Tôi chưa sử dụng Ranorex 2 nhiều lắm.

Trong Ranorex 1.5, cũng có hỗ trợ cho phát triển Win32 truyền thống trong C++, nhưng tôi đã không sử dụng nó. Theo tôi biết, vẫn có sẵn trong Ranorex 2.

Tôi không thể nói với chất lượng của bản ghi/hỗ trợ phát lại trong Ranorex vì tôi chưa bao giờ sử dụng tính năng đó.

Một điểm cộng cuối cùng: Nhóm hỗ trợ của họ thực sự phản hồi và hữu ích bất cứ khi nào tôi gửi qua email cho họ.

Các vấn đề liên quan