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)
关于python - 尝试删除打印机时访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37578005/