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来创建接口,如果这会产生差异。)
答案 0 :(得分:1)
文档说明必须为PRINTER_ACCESS_ADMINISTER 打开打印机句柄。这样的事情可能有用:
PRINTER_DEFAULTS = {"DesiredAccess":win32print.PRINTER_ACCESS_ADMINISTER}
win32print.OpenPrinter(self.printers[i]['pPrinterName'], PRINTER_DEFAULTS)