2012-01-05 30 views
0

私はアプリケーションを持っていて、メディアセンターがフルスクリーンで起動していて、このタイルを開いたときにバックグラウンドでアプリケーションを開きます。 これをメディアセンターで開くにはどうしたらいいですか? C#でコーディングさフォアスクリーンでバッチファイルを実行するにはどうすればいいですか

+0

ザッツおそらくあなたがアプリケーションではなく、バッチファイルからコーディングする必要があるもの。 –

+0

コマンドラインで実行可能パスを受け入れる汎用アプリケーションを作成することもできます。ドットネットでは、Processクラスを使用してアプリケーションを起動し、プロセスIDを取得できます。その後、ウィンドウを前面に持ってくるためにウィンドウAPIを使用することができます。利点は、このコードを再利用できることと、起動しているアプリケーションコードを変更する必要がないことです。 – Aphelion

+0

これはどのように行われますか?私のwpfアプリケーションで – Letoir

答えて

0

迅速なアプローチは次のようになります。この例では、勿論エラー処理及び引数の検証を必要とすること

using System; 
using System.Runtime.InteropServices; 
using System.Diagnostics; 

namespace Example 
{ 
    class Program 
    { 
     [DllImport("USER32.DLL")] 
     public static extern bool SetForegroundWindow(IntPtr hWnd); 

     static void Main(string[] args) 
     { 
      Process process = Process.Start(args[0]); 
      if (process != null) SetForegroundWindow(process.Handle); 
     } 
    } 
} 

注意。オプションで、必要に応じて作業フォルダのサポートを開発することができます。

アプリケーションを起動するために、あなたのバッチで、次の行を使用し

Example.exe "c:\sample\path\app.exe" 
+0

私は静的なvoidメイン(文字列[] args)を持っていない? – Letoir

+1

この例は、コンソールアプリケーションテンプレートで開発する必要のある「ヘルパー」実行可能ファイルの例です。これをWPFアプリケーションに実装する場合は、コードを使用する必要がありますが、WPFアプリケーションの起動メソッドに配置する必要があります。 dllimportとsetforegroundウィンドウの使い方は同じですが、プロセスIDを新しいプロセスではなく現在のプロセスから取得する必要があります。 – Aphelion

関連する問題