在C#中运行驱动程序功能

时间:2017-06-02 10:06:10

标签: c# printing driver printers controlpanel

更新。解决了以下代码

    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();

    }

1 个答案:

答案 0 :(得分:0)

您应该检查快捷方式实际指向的内容。可能,正如例外情况所示,链接目标没有应用程序关联。

您可以在十六进制编辑器中打开.lnk文件以查看其指向的内容,或者,如果我没记错的话,您可以将其拖到记事本窗口中(但是您不能使用文件 - >打开为它将尝试打开链接目标)以查看其内容。

通常对于控制面板链接,您需要使用/ name参数创建control.exe(在%WINDIR%\ system32中找到)的快捷方式,但我认为这仅适用于Microsoft小程序。如果它是第三方驱动程序,则控制面板链接可能只是指向驱动程序安装目录中的某个应用程序。我不熟悉那个特定的驱动程序,但你可以看看它(安装目录)来试图找到你正在寻找的应用程序。