2011-02-05 36 views
4

[OK]をクリックすると、Microsoft ExcelやAdobe Acrobat Readerなどのプログラムで、エクスプローラのファイルをクリックして関連するプログラムで開くことができます。それが私のアプリケーションにしたいことです。今、私はWindowsでファイルの関連付けを設定する方法を知っているので、各拡張子のデフォルトプログラムを知ることができます。私の質問は、ファイルをダブルクリックすると、ファイルを開くアプリケーションを取得する方法です。アプリケーションでファイルを開くにはどうすればよいですか?

私はgoogleを使用してウェブを検索しました。私はmsdnサイトを検索しましたが、これを含むいくつかのフォーラムを検索しましたが、これを達成する方法については何も見つかりませんでした。私はそれがメインメソッドのパラメータと関係があると推測していますが、それはちょうど推測です。

誰かが正しい方向に私を指すことができる場合は、私はそこからそれを取ることができます。あなたの助けを前にありがとう。

シェーン

+0

「今、私はそれが各拡張機能のデフォルトのプログラムを知っているように、Windowsでファイルの関連付けを設定する方法を知っています。」これを設定しておけば、ファイル*をダブルクリックしてアプリケーションで開くべきです*。それができない場合は、この設定を行うあなたのコードを投稿し、誰かがなぜそれが動作していないのかを伝えることができるかもしれません。 – ChrisF

答えて

0

ファイル拡張子のレジストリキーを作成する必要があります。 This pageには、どのキーを設定する必要があるのか​​が記述されています(「3.ファイルアソシエーションの作成方法」を参照)。

2

説明したように関連付けを設定してファイルを開くと、ファイルへのファイルパスを含む最初の引数を使用してアプリケーションが起動します。

mainの方法からargsを印刷すると、関連するファイルをクリックしてアプリケーションを開いた後で簡単に試すことができます。 0番目の要素はファイルへのパスでなければなりません。

ここまで正常に到達した場合は、指定したファイルの内容が読み込まれます。私はあなたがそれを行う方法についてここにたくさんのリソースを見つけられると確信しています。

10

Windowsで関連付けを設定すると、コマンドラインでアプリケーションにファイル名が送信されます。

ファイルパスを読み取り、アプリケーションで開くことができるようにするには、アプリケーションmainのイベント引数を読み取る必要があります。

mainメソッドのコマンドライン引数にアクセスする方法については、thisthisを参照してください。

static void Main(string[] args) 
{ 
    System.Console.WriteLine("Number of command line parameters = {0}", args.Length); 

    foreach (string s in args) 
    { 
     System.Console.WriteLine(s); 
    } 
} 
2

私は、これはあなたが探しているものだと思い:

FileInfo fi = new FileInfo(sfd.FileName); //the file you clicked or saved just point 
              //to the right file location to determine 
              //full filename with location info 

// opening file 
ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.FileName = @fi.FullName; 
startInfo.WindowStyle = ProcessWindowStyle.Normal; 

Process process = new Process(); 
process.StartInfo = startInfo; 
process.Start(); 
関連する問題