更新。解决了以下代码
private void Nozzle_Click(object sender, EventArgs e)
{
if (File.Exists("C:\\Nozzle.lnk"))
{
Process.Start("explorer.exe", "C:\\Nozzle.lnk");
}
}
我正在编写C#程序,其中一个要求是能够在驱动程序中运行特定功能。 为此扩展 - 它是Epson L800打印机和打印机的打印机驱动程序。该功能被称为'喷嘴检查'。现在,如果我进入控制面板并导航到喷嘴检查'然后我可以创建它的快捷方式并将其放在C:/ Drive上。 我的假设是我可以在C#中运行该快捷方式......但它不起作用,我得到以下错误......
未处理的类型' System.ComponentModel.Win32Exception'发生在System.dll中 附加信息:没有应用程序与此操作的指定文件相关联
我能够使用相同的代码运行其他快捷方式,因此必须与必须通过控制面板。这是我的代码:
private void Nozzle_Click(object sender, EventArgs e)
{
Process proc = new Process();
proc.StartInfo.FileName = @"C:\\Nozzle.lnk";
proc.Start();
}
答案 0 :(得分:0)
您应该检查快捷方式实际指向的内容。可能,正如例外情况所示,链接目标没有应用程序关联。
您可以在十六进制编辑器中打开.lnk文件以查看其指向的内容,或者,如果我没记错的话,您可以将其拖到记事本窗口中(但是您不能使用文件 - >打开为它将尝试打开链接目标)以查看其内容。
通常对于控制面板链接,您需要使用/ name参数创建control.exe(在%WINDIR%\ system32中找到)的快捷方式,但我认为这仅适用于Microsoft小程序。如果它是第三方驱动程序,则控制面板链接可能只是指向驱动程序安装目录中的某个应用程序。我不熟悉那个特定的驱动程序,但你可以看看它(安装目录)来试图找到你正在寻找的应用程序。