2016-06-01 6 views
0
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 

私がしていることは、プリンタハンドルを開いてプリンタの削除機能を呼び出すことです。ここで私は、私は、関数を実行すると、コンソールには何を得るのです:私は管理者モードでのIDE(Pycharmを実行しようとしましたプリンタを削除しようとしたときにアクセスが拒否されました

uninstall_windowGUI.py", line 57, in on_printer_button_clicked 
win32print.DeletePrinter(pHandle) 
pywintypes.error: (5, 'DeletePrinter', 'Access is denied.') 

、まだ同じ問題を得るに移動する方法上の任意のアイデアは、私は「?私はこれを理解できるまでスタックのm個の一種。(また:私はそれがdiffereceを行う場合、インタフェースを作成するためにはGtkやたGdkを使用しています。)

答えて

1

ドキュメントはプリンタのハンドルがPRINTER_ACCESS_ADMINISTERために開かれなければならないと述べていますこのようなものが動作する可能性があります:

PRINTER_DEFAULTS = {"DesiredAccess":win32print.PRINTER_ACCESS_ADMINISTER} 
win32print.OpenPrinter(self.printers[i]['pPrinterName'], PRINTER_DEFAULTS) 
+0

ありがとう、それはトンを助けた。 PRINTER_ACCESS_ADMINISTERをPRINTER_ALL_ACCESSに置き換えなければならなかったのは、何らかの理由で私はまだ「アクセス拒否」を取得していたからです。 – TheEggSample

関連する問題