1

私はC#を初めて使用しますが、学習は早いです。私はこれに対するさまざまな答えを見てきましたが、それらが適しているかどうかはわかりません。

システムトレイにサイトを配置し、InternetExplorerで特定のアクションが実行されたときに実行されるac#アプリを作成するというビジネス要件があります。このアクション(今のところ)は、AboutInternetExplorerウィンドウのオープニングです。このウィンドウが開いているかどうかを常に監視してからコードを実行するアプリが必要です。例として、aboutウィンドウを閉じてメッセージボックスを表示します。

システムトレイパーツを機能させることができましたが、ウィンドウが存在することを監視するにはどうすればよいですか?

編集コメントのいくつかの質問に答えるために:私たちは仕事でIEでのみ実行される予約システムを使用しています、私たちは手動プロセスのセクションを自動化する方法を探しています、これを行うために私たちは私たちが持つことができると考えています次のプロセス:予約に移動し、[ヘルプ]> [バージョン情報]をクリックすると、システムトレイアプリがウィンドウを閉じ、コードを実行してデータベースを更新します。それはほとんどそれです。

私は次のいくつかを見てきました: ウィンドウがオンになっているかどうかを確認して閉じる 方法c#:別のアプリケーションウィンドウが私のマシンで開いているかどうかを確認する方法(つまり、開いているすべてのウィンドウを繰り返す)?

実行中のプロセスを調べて、関連するプログラムのプロパティをチェックして、ウィンドウ名が正しいかどうかを確認する必要があることを理解していると思いますか?私はそれを(最終的に)機能させることができると確信していますが、それは私が立ち往生している部分を開くのを待っていました、C#には待機がありますか、それともウィンドウが開いていることを常にチェックする関数を書く必要がありますか?

編集

@Adrianの答えは、私が望んでいたように見えるので、受け入れました。しかし、すべてのコメントを読んだ後、私はマネージャーのところに行き、これについて話し合いました。次に、右クリックメニューのテキストボックスを使用して、ユーザーが自分でC#アプリに予約番号を入力するようにします。皆さんありがとう。

4

2 に答える 2

0

おそらくFindWindowExAPI呼び出しを使用する必要があります

コード例については、こちらをご覧ください。

http://www.pinvoke.net/default.aspx/user32/findwindowex.html

次に、SendMessageを使用してウィンドウを閉じます。

http://www.pinvoke.net/default.aspx/user32/SendMessage.html

ただし、セキュリティ上の理由から、他のアプリケーションからキャプチャ/使用できるイベントに制限されます。アプリが特にそのような相互作用を許可しない限り。

于 2012-05-08T08:13:14.890 に答える
0

あなたができることはAutoItを使うことです。これは、統合用の.NETクラスライブラリも提供するフリーウェアのデスクトップ自動化ツールです。これにより、特定のウィンドウが開くまで確認して待つことができます。

このツールはここからダウンロードできます: https ://www.autoitscript.com

于 2015-11-24T00:00:34.163 に答える