COMポートからの入力に基づいて2つのサードパーティアプリケーションを切り替える必要があります。つまり、デバイスからCommand1
を受け取ったときに、App1をアクティブ(最前面)ウィンドウにし、デバイスからCommand2
を受け取ったとき、App2をアクティブなウィンドウにします。なぜ私はこれをしたいのですか?このアプリケーションはセルフサービスステーションで動作し、モーションセンサーの入力を監視します。駅の前に誰もいないときにApp2(広告など)を表示する必要があり、誰かが目の前に立っているときにApp1(メインアプリケーションなど)を表示する必要があります。Windows上でアクティブなウィンドウを変更するには?
私は、バックグラウンドで実行され、COMポートの入力を待ち受け、それに応じてアクティブなウィンドウを切り替えるアプリケーションを考えています。ですから、問題は、.NETを使用してアクティブなウィンドウを変更するにはどうすればいいですか? OSはWindows XP Pro SP2ですが、Windows 7でも動作する方が良いでしょう。
FYIでは、ユーザーデスクトップと対話する単純なサービスのようなものはありません。 http://stackoverflow.com/questions/267838/how-can-a-windows-service-execute-a-gui-application –
Windowsサービスは、Windows Vistaから始まるユーザーのデスクトップと対話できません。これはサービスではありません。バックグラウンドアプリケーション(フォームを表示しない標準フォームアプリケーション)を作成するだけです。また、アクティブウィンドウの変更は根本的に壊れています。これは、アプリケーションではなく、ユーザーだけができるべきことです。 Windowsはあらゆる方法であなたと戦うでしょうし、ユーザーはあまり幸せではありません。 –
質問を「背景アプリ」に変更しました。ありがとうございました。また、_why_に関する詳細情報を追加しました。 – MarioVW