尝试删除打印机时访问被拒绝

Access denied when attempting to remove printer

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)