C#から、任意のエディタでテキストファイルを開き、カーソルを特定の行番号に自動的に移動するプロセスを起動したいとします。どのエディタでテキストファイルを開き、カーソルを特定の行番号に自動的に移動するプロセスを起動するには?
私は
Process.Start(@"c:\myfile.txt");
を使用してファイルを開くことができますが、私は、そのファイル内の特定の場所にカーソルを移動する方法がわかりません。ソースコード付き
回答:
はい、私は非常に重く
private void openLog() {
try {
// see if notepad++ is installed on user's machine
var nppDir = (string)Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Notepad++", null, null);
if (nppDir != null) {
var nppExePath = Path.Combine(nppDir, "Notepad++.exe");
var nppReadmePath = Path.Combine(yourDirectory,fileName);
var line = 20;
var sb = new StringBuilder();
sb.AppendFormat("\"{0}\" -n{1}", nppReadmePath, lineNo);
Process.Start(nppExePath, sb.ToString());
} else {
string newPath = @"\\mySharedDrive\notpad++\bin\notepad++.exe";
Process.Start(newPath, @"\\" + filePath + " -n" + lineNo); // take exe from my shared drive
}
} catch (Exception e) {
Process.Start(@"\\" + FilePath); // open using notepad
}
}
私はこれが可能かもしれないと思う唯一の方法は、キーボードドライバ入力のレベルでの自動化で、エディタが押し下げられた矢印ごとに1行下がると仮定しています。そのためには、http://www.autohotkey.com/をご覧ください。 –
メモ帳が無効になっている限り、メモ帳には「go to line」機能があります。それでも、キーボード入力を処理に送る必要があります。もしあなたがnotepad ++を使ってOKならば、http://superuser.com/questions/290409/opening-a-text-file-at-a-certain-line-shortcutをチェックしてください。 Notepad ++は特定の行でそれを開くコマンドライン引数を持っているようです。 –
完全なソースコードを含む最終的なソリューションですか?たぶんNotepad ++とUltraEditを使っているかもしれません。 – Kiquenet