2012-05-08 6 views
0

私はC#の新機能ですが、私は早く学習しています。私はこれにさまざまな答えを見てきましたが、私はそれらがスイートかどうか分からない、あるいは多分私はそれらを取得していないだけです。アプリケーションウィンドウが開くのを待ってから何かをやります

私は、システムトレイにサイトを作成して、Internet Explorerで特定の操作が実行されたときに実行するというビジネス要件があります。このアクション(今のところ)は、about Internet Explorerウィンドウのオープンです。私は、このウィンドウが開いているかどうかを確認するためにアプリケーションを必要とし、コードを実行する必要があります。たとえば、ウィンドウを閉じてメッセージボックスを表示します。

私はシステムトレイの一部を稼働させることができました。ウィンドウが存在することをどのように監視するのですか?

EDIT コメントにいくつかの質問に答えるために:私たちはIEのみで実行予約システムを使用仕事で を、私たちはこれを行うには、私たちの手動プロセスの部分を自動化する方法を探している私たちがしています我々は次のプロセスを持つことができると考えています: 予約に行く、ヘルプをクリックすると、システムトレイアプリはウィンドウを閉じ、データベースを更新するコードを実行します。それはかなりです。私は私が実行中のプロセスに目を通すと、それが正しいのウィンドウを持っているかどうかを確認するためにそこに関連するプログラムのプロパティを確認する必要があることを理解考える How to check if window is opned and close it c#: How do check if another application window is open on my machine (i.e., iterate through all open windows)?

は、私は次のいくつかを見て持っていました名?私は仕事を(最終的に)得ることができると確信していますが、それは私が立ち往生している部分を開くためにその窓を待っていたC#waitforを持っていますか、私は常にウィンドウが開いていることを確認する関数を記述する必要がありますか?私はそれは私が望んでいたたく行いますようにそれが見えるようエイドリアンの答え@受け入れている

EDIT

。すべてのコメントを読んだ後、私はマネージャーに行きました。私たちはこれについて議論しました。ここでは、ユーザーが右クリックメニューのテキストボックスを使用してC#Appに予約番号を入力させる方法を説明します。皆さんありがとう。

+0

そして、なぜあなたのアプリケーションは、別の*アプリケーション*で開かれた窓付きの混乱へのアクセス権を持っている必要がありますか? –

+1

何を試しましたか?あなたが見た答えに何が間違っていますか?あなたが見た答えは何ですか?なぜ彼らはあなたのために働かないのですか? –

+1

それは...絶対に*アプリケーションのために私が今まで聞いたことのない最もふさわしい行為です。タスクを自動化するには、クリックするボタンをユーザーに与えます。重要なシステム機能に結び付けないでください。マシン上で実行されているIEのバージョンをITが見なければならないとどうなりますか?彼らは「ヘルプ」 - >「About」に行きます。突然、物事が自動的に予約され始めます。おっと! –

答えて

0

おそらくFindWindowEx API呼び出しを使用したい

は、サンプルコードについてはこちらをご覧ください:

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

その後のSendMessageは、ウィンドウを閉じます。

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

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

+0

あなたが答えの一番下に示唆した問題に加えて、 'FindWindowEx'関数を含む解決法は*一定のポーリングを含む*解決策でもあります。または、重度の性能劣化を防止する。 –

0

あなたができることは、AutoItを使用することです。それは、統合のための.NETクラスライブラリを提供するフリーウェアのデスクトップオートメーションツールです。 これで、特定のウィンドウがかなり簡単に開かれるまでチェックし、待つことができます。

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

関連する問題