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

时间:2016-06-01 20:17:03

标签: python printing pycharm pywin32

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来创建接口,如果这会产生差异。)

1 个答案:

答案 0 :(得分:1)

文档说明必须为PRINTER_ACCESS_ADMINISTER 打开打印机句柄。这样的事情可能有用:

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