我正在开发一个打开文件扩展名的应用程序。我要做的第一件事是检查打开的文件路径。这段代码完全适用于某些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的计算机完全没有参数会导致什么?
答案 0 :(得分:1)
这可能是用户权利问题。您应该尝试创建应用程序的快捷方式,并将要打开的文件作为第一个参数传递。右键单击快捷方式,然后选择以管理员身份运行。如果有效则您知道这是权利问题。您可以将exe设置作为管理员运行。默认情况下,Windows shell不以管理员身份运行。因此,如果将exe设置为以管理员身份运行,则不允许shell将参数传递给它。如果希望shell能够向其传递参数,则必须右键单击exe并选择不以管理员身份运行。这件事发生在我之前。这只是一个建议。我会将其作为评论发布,但我认为描述可能对于单个评论来说太长了。
答案 1 :(得分:0)
查看此thread
我相信你应该在Windows 7 PC上运行一个提升的ftype和assoc命令,以告诉发送什么作为参数。