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

标签 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 创建界面,如果这有区别的话。)

最佳答案

文档指出必须为 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/

相关文章:

python - 计算另一列中重复数字的序列 - pandas

python - 删除时序列化模型对象时的AttributeError

C# - 每当测试驱动程序发生打印时弹出我的应用程序

c++ - python 中等效的 C++ 嵌套打印

python - 将pycharm项目导入jupyter笔记本

python - Django 无法导入名称 View

python - SWIG 使 Python 崩溃

c - 尝试从数组中打印出网格,但实际上没有显示任何内容

pycharm - 如何使用pycharm通过编码样式的模板自动缩进选择区域

python - PyCharm 找不到 pytz