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)