原来如此! 用户右键单击其计算机上的任何文件,并自定义选项打开我的程序,在Form_load上我要求用户选择一个文件,但我希望该文件是他们打开程序的文件。
private void Form1_Load(object sender, System.EventArgs e)
{
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
source = openFileDialog1.FileName;
}
else
{
Application.Exit();
}
}
我怎么能实现这个目标?
答案 0 :(得分:1)
当您的程序与任何文件扩展名相关联时,Windows将通过命令行参数传递文件名,以便您可以检查它们:
private void Form1_Load(object sender, System.EventArgs e) {
String[] data = Environment.GetCommandLineArgs();
// 0th parameter is executable itself, we want the 1st parameter
if (data.Length > 1)
openFileDialog1.FileName = data[1];
if (openFileDialog1.ShowDialog() == DialogResult.OK) {
source = openFileDialog1.FileName;
}
else
Application.Exit();
}
答案 1 :(得分:0)
如果您询问'发送给' Windows上下文菜单中的菜单 - >您应该将应用程序放在特殊文件夹中,如下所述:How-to geek: Customize the Send To Menu in Windows 10, 8, 7, or Vista,您将收到完整路径,包括文件名作为函数args
中Main()
的第一个参数