打开文件(双击)不向 C# applitacion 发送参数

Open File (double click) not sending arguments to C# applitacion

我正在开发一个可以打开文件扩展名的应用程序。我做的第一件事是检查打开的文件路径。这段代码在某些 PC 上运行良好,但在另一台 PC 上无法正常运行 运行 Windows 7. 这是代码:

if (args.Length > 0)
{
    if (!args[0].EndsWith(".myext1") && !args[0].EndsWith(".myext2"))
    {
        MessageBox.Show("error.");
        Application.Exit();
    }
 }
 else
 {
     MessageBox.Show("Select File.");
     OpenFileDialog open = new OpenFileDialog();
     if (open.ShowDialog() == DialogResult.OK)
         this.FilePath = open.FileName;
  }

在这种情况下,它直接转到 'else' 语句,即没有参数。

正如我所说,这段代码在大多数情况下都能完美运行,所以我的问题是,是什么导致这台计算机 运行 windows 7 在双击打开时绝对不发送任何参数?

可能是用户权限问题。您应该尝试创建应用程序的快捷方式并将要打开的文件作为第一个参数传递。右键单击快捷方式并选择 运行 作为管理员。如果可行,那么您就知道这是供股。您可能以管理员身份将 exe 设置为 运行。默认情况下,windows shell 未作为管理员 运行ning。因此,如果 exe 以管理员身份设置为 运行,则不允许 shell 向其传递参数。如果您希望 shell 能够向其传递参数,则必须右键单击该 exe 并选择不以管理员身份 运行。这件事发生在我身上。这只是一个建议。我会把它作为评论发布,但我认为描述对于单个评论来说可能太长了。

看看这个thread

我相信你应该 运行 在 Windows 7 PC 上使用一个提升的 ftype 和 assoc 命令来告诉发送什么作为参数。