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

时间:2015-09-28 18:58:13

标签: c# winforms arguments

我正在开发一个打开文件扩展名的应用程序。我要做的第一件事是检查打开的文件路径。这段代码完全适用于某些PC,但拒绝在运行Windows 7的另一台PC上正常工作。 这是代码:

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的计算机完全没有参数会导致什么?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

查看此thread

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