2

Notepad++ プラグインを作成しており、新しいファイル用に新しいタブを作成する必要があります。ドキュメントでこれをカバーするものを見つけることができませんでした。

私が最も近いのは次のとおりです。

IntPtr curScintilla = PluginBase.GetCurrentScintilla();
IntPtr documentPtr = Win32.SendMessage(curScintilla, SciMsg.SCI_CREATEDOCUMENT, 1, 1);
Win32.SendMessage(curScintilla, SciMsg.SCI_SETDOCPOINTER, 0, documentPtr);

しかし、これは現在のタブで機能します(新しいドキュメントを作成し、現在のタブをそのタブに向けていると思います)。

http://www.scintilla.org/ScintillaDoc.htmlの「複数のビュー」セクションを読んでいましたが、上記よりも先に進むことができません。私は通常、C# や Windows で作業することはないので、明らかな何かが欠けている可能性があります。例として既存のプラグインを調べてみましたが、それらのほとんどは C# ではなく C++ で記述されているようです。

任意のガイダンスをいただければ幸いです。

ありがとう。

4

2 に答える 2

1

私はシンチラを経験していません。しかし、私は単純なアプローチを使用しました。これを作成に使用しました。メッセージを送信するための詳細情報を探す必要があるかもしれません。

開始する前に、ディレクトリにファイルが存在しない場合は作成します。それ以外の場合は、ユーザーの確認を求めます。

プロセスの引数は、最初と次のタブとは異なる必要があります。

File.Create(yourNewFile); //or yourNextNewFile in case of second, third, so on..
Process notepadPlus = new Process();

notepadPlus.StartInfo.FileName = "notepad++.exe";

最初のファイルの使用 (新しいセッションを持つ新しいインスタンス - 古いタブなし):

notepadPlus.StartInfo.Arguments = @"-multiInst -nosession yourNewFile";

次のファイルでは次のように使用します (新しいタブのみが作成されます):

notepadPlus.StartInfo.Arguments = @"yourNextNewFile";

/* Start the process */
notepadPlus.Start();
于 2013-05-08T08:44:47.680 に答える