尝试删除打印机时访问被拒绝
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)
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)