5

C# でファイル エディターを作成しました。ツールバーの [開く] ボタンを使用してファイルを開くことができます。また、正しいファイル タイプをプログラムに関連付けたので、拡張子が *.nlp のファイルをクリックすると、プログラムが正しく開きます。 、しかしファイル自体は開きません(まだ実装していないので、これは非常に論理的です)

今私の質問です、どうすればそのようなことを実装できますか? クリックしたときにファイルを開いてロードしたい。

(ところで、ファイルは単なるプレーンテキストなので、特別なことは何もありません。それが重要な場合は、Windows用です)

4

3 に答える 3

5

Windows では、ファイルの関連付けは次のレジストリに保存され、管理されます。HKEY_CLASSES_ROOT

以下を手動で実行するか、最終的に小さなセットアップ プログラムを作成して、正しいエントリをレジストリに書き込むことができます。

拡張機能を登録してから、このドキュメントで説明されているようなプログラムに関連付ける必要があります。このドキュメントも参照してください。レジストリは次のようになります。

HKEY_CLASSES_ROOT
   .nlp
      (Default) = YourProgID//can by anything you want
   YourProgID
      shell
         open
            command
               (Default) = yourapp.exe %1

さて、あなたの答えの%1鍵はコマンドキーにあります。これは開かれたファイル名で、引数としてアプリに渡されます。

そう :

static void Main(string[] args)
{
   // args will contain your filename
}
于 2012-06-05T06:22:03.040 に答える
2

ファイル名は、引数としてアプリケーションに渡されます。

public static void Main(string[] args)
{
  if ( args != null && args.Length > 0 )
  {
    string filename = args[0];
    if ( File.Exists ( filename ) )
    {
      //Open file 
    }
  }
}
于 2012-06-05T06:19:12.313 に答える
2

ファイルの関連付けを直接管理するための .Net API はないようですが、レジストリ クラスを使用して、必要なキーの読み取りと書き込みを行うことができます。

HKEY_CLASSES_ROOT の下に、ファイル拡張子 (例: ".txt") に設定された名前でキーを作成する必要があります。このキーのデフォルト値を、「Acme.TextFile」などのファイル タイプの一意の名前に設定します。次に、HKEY_CLASSES_ROOT の下に別のキーを作成し、名前を「Acme.TextFile」に設定します。「DefaultIcon」というサブキーを追加し、キーのデフォルト値を、このファイル タイプに使用するアイコンを含むファイルに設定します。「シェル」と呼ばれる別の兄弟を追加します。「シェル」キーの下に、エクスプローラーのコンテキスト メニューから使用できるようにする各アクションのキーを追加し、各キーのデフォルト値を実行可能ファイルへのパスに設定し、その後にスペースと「%1」を付けてパスを表します選択したファイルに。

たとえば、.txt ファイルと EmEditor の間の関連付けを作成するレジストリ ファイルの例を以下に示します:

Windows レジストリ エディタ バージョン 5.00

[HKEY_CLASSES_ROOT\.txt]
@="emeditor.txt"

[HKEY_CLASSES_ROOT\emeditor.txt]
@="Text Document"

[HKEY_CLASSES_ROOT\emeditor.txt\DefaultIcon]
@="%SystemRoot%\\SysWow64\\imageres.dll,-102"

[HKEY_CLASSES_ROOT\emeditor.txt\shell]

[HKEY_CLASSES_ROOT\emeditor.txt\shell\open]

[HKEY_CLASSES_ROOT\emeditor.txt\shell\open\command]
@="\"C:\\Program Files\\EmEditor\\EMEDITOR.EXE\" \"%1\""

[HKEY_CLASSES_ROOT\emeditor.txt\shell\print]

[HKEY_CLASSES_ROOT\emeditor.txt\shell\print\command]
@="\"C:\\Program Files\\EmEditor\\EMEDITOR.EXE\" /p \"%1\""

@X-Cubedの功績

于 2012-06-05T06:14:44.757 に答える