尝试卸下打印机时访问被拒绝


def on_printer_button_clicked(self, button):
    for i in range(len(self.printer_buttons)):
        if button == self.printer_buttons[i]:
            pHandle = win32print.OpenPrinter(self.printers[i]['pPrinterName'])
    win32print.DeletePrinter(pHandle)
    return

所以我所做的只是打开打印机句柄并调用函数删除打印机,如您所见。 以下是我在运行函数时在控制台中得到的内容:

uninstall_windowGUI.py", line 57, in on_printer_button_clicked
win32print.DeletePrinter(pHandle)
pywintypes.error: (5, 'DeletePrinter', 'Access is denied.')

我尝试在管理员模式下运行IDE(Pycharm),但仍然遇到同样的问题。 关于如何继续前进的任何想法? 在我弄清楚这一点之前,我有点卡住了。 (另外:我正在使用 Gtk 和 Gdk 来创建界面,如果这会产生差异。

文档指出必须打开打印机句柄才能PRINTER_ACCESS_ADMINISTER。像这样的东西可能会起作用:

PRINTER_DEFAULTS = {"DesiredAccess":win32print.PRINTER_ACCESS_ADMINISTER} 
win32print.OpenPrinter(self.printers[i]['pPrinterName'], PRINTER_DEFAULTS)

最新更新