【问题标题】:The operation was canceled by the user. (Exception from HRESULT: 0x800704C7)该操作已被用户取消。 (来自 HRESULT 的异常:0x800704C7)
【发布时间】:2011-04-27 07:09:03
【问题描述】:

我在尝试添加打印机驱动程序时收到此错误。

操作已被用户取消。 (HRESULT 异常:0x800704C7)

我在这里做错了吗?

Public Function AddDriver(ByVal DriverName As String, ByVal InfFile As String) As Boolean
    Try
        Dim PRNADMIN As New PRNADMINLib.PrintMaster

        Dim Drv As New PRNADMINLib.Driver
        Drv.ModelName = DriverName
        Drv.InfFile = InfFile
        PRNADMIN.DriverAdd(Drv)
        Return True
    Catch ex As Exception
        MessageBox.Show(ex.Message, frmMain.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
        Return False
    End Try
End Function

c#版本来了

public bool AddDriver(string DriverName, string InfFile)
{
    try {
    PRNADMINLib.PrintMaster PRNADMIN = new PRNADMINLib.PrintMaster();

    PRNADMINLib.Driver Drv = new PRNADMINLib.Driver();
    Drv.ModelName = DriverName;
    Drv.InfFile = InfFile;
    PRNADMIN.DriverAdd(Drv);
    return true;
} catch (Exception ex) {
    MessageBox.Show(ex.Message, frmMain.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    return false;
}
}

更新:

  1. 应用程序在 app.manifest 中请求管理权限 (requestedExecutionLevel level="requireAdministrator")

  2. 我在 UAC 开启甚至关闭时遇到同样的错误。

  3. 驱动程序未进行数字签名

  4. 如果我手动安装驱动程序,我会收到 Windows 安全警告,默认选项为“不要安装此驱动程序软件”(不幸的是,在运行上述代码时不会收到该消息)。

【问题讨论】:

  • 似乎问题在于安装驱动程序或驱动程序本身的安全性/权利。假设这是一个普通的打印机驱动程序,你能通过控制面板安装驱动程序吗?

标签: c# .net vb.net uac


【解决方案1】:

没有足够的信息来确定确切的原因,但我在执行需要用户输入的操作(接受或取消操作)时偶然发现了同样的错误,但应用程序无法显示该提示(因为它是一个无 GUI 的应用程序),所以默认操作是取消。但是,这很可能与 UAC 有关(您可以通过暂时禁用 UAC 进行测试)。

【讨论】:

    【解决方案2】:

    如果您想强制您的应用程序要求提升权限,用户 App.manifest,如this question 中所述。

    【讨论】:

      【解决方案3】:

      我确定 100%,但看起来当从您的脚本静默运行时,无法显示有关您的驱动程序未进行数字签名的警告,因此默认为取消安装。

      您是否尝试过使用自签名证书对驱动程序进行数字签名?如果它在签名后安装,那么原因是警告。

      【讨论】:

      • 不,实际上我没有尝试使用自签名证书对其进行处理。我会试一试告诉你
      猜你喜欢
      • 2013-05-26
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 2019-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多