0

自動テストを作成したいアプリケーションがあります。自動化されたテストは、オペレーターによるアプリケーションの使用法を模倣します。レビュー用に「凍結」されているため、アプリケーションのソース コードを変更できません。

アプリケーションはポップアップ (メッセージ) ウィンドウを表示し、オペレーターに測定終了後にボタンをクリックするように通知します。メッセージ ウィンドウを閉じてからしばらくすると、ボタンが有効になります。

アプリケーションがこのボタンを有効にするタイミングを検出する方法を知る必要があります。私のこれまでの調査によると、アプリケーションは自動テストを支援するためにカスタム メッセージをブロードキャストする必要があります。しかし、ソースコードを変更することはできません。

また、アプリケーションは、[測定が完了しました] ボタンがクリックされた後にラジオ ボタンを有効にし、測定が有効かどうかを尋ねます。これも検出する必要があります。

概要:

  1. 別のアプリケーションでボタン (コントロール) が有効になったことを検出するにはどうすればよいですか?
  2. 他のアプリケーションのハンドルを取得するにはどうすればよいですか?

Windows NT、Vista、および 7 で MS Visual Express 2010 を使用して C# を使用しています。会社の予算が非常に限られているため、ツールを提案する場合は無料にする必要があります。

4

1 に答える 1

2

FindWindow APIを使用して、タイトルを渡してハンドルを受け取ることができると思います。
次に、子コンポーネントを列挙すると、ボタンを見つけて (名前がわかれば、次回はそれを使用してより迅速に使用できます)、有効な状態を取得できます。AutoITソフトウェア(スクリプト)またはそのロジック
を使用できると思います。

[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern IntPtr FindWindow(string strClassName, int nptWindowName);

EDITED:このリンク
を チェックして、必要なことを行う簡単な方法を見つけてください。 これがお役に立てば幸いです。

于 2011-04-21T17:27:39.063 に答える