shell ( explorer.exe
) 将替换%1
为文件名。所以你基本上写:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\txtfile\shell\openwithnotepad]
@="Open with &Notepad"
[HKEY_CLASSES_ROOT\txtfile\shell\openwithnotepad\command]
@="\"C:\\Windows\\System32\\notepad.exe\" \"%1\""
文件名将C:\Windows\System32\notepad.exe
作为命令行参数传递给。例如,如果您打开D:\blah.txt
,则记事本将D:\blah.txt
作为第一个参数接收。
在 C# 中,您基本上使用其中一个Environment.GetCommandLineArgs()
或args
inMain
来检索文件路径。
一个例子:
string[] commandLineArgs = Environment.GetCommandLineArgs();
string fileToOpen = null;
if (commandLineArgs.Length > 1)
{
if (File.Exists(commandLineArgs[1]))
{
fileToOpen = commandLineArgs[1];
}
}
if (fileToOpen == null)
{
// new file
}
else
{
MyEditor.OpenFile(fileToOpen);
}