mirror of
https://github.com/samba-team/samba.git
synced 2025-06-24 15:17:06 +03:00
46 lines
1013 B
Python
Executable File
46 lines
1013 B
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import sys
|
|
from gtkdictbrowser import GtkDictBrowser, hex_string
|
|
import gtk
|
|
import spoolss
|
|
import string
|
|
|
|
class printerdata:
|
|
def __init__(self, host):
|
|
host = string.replace(host, "/", "\\")
|
|
self.hnd = spoolss.openprinter(host)
|
|
|
|
def keys(self):
|
|
return self.hnd.enumprinterdata().keys()
|
|
|
|
def __getitem__(self, key):
|
|
return self.hnd.getprinterdata(key)['data']
|
|
|
|
# Initialise printerdata dictionary
|
|
|
|
if len(sys.argv) != 2:
|
|
print "Usage: gprinterdata <printer>"
|
|
print "where <printer> is a UNC printer name."
|
|
sys.exit(1)
|
|
|
|
try:
|
|
t = printerdata(sys.argv[1])
|
|
except:
|
|
print "gprinterdata: error opening %s" % sys.argv[1]
|
|
sys.exit(1)
|
|
|
|
# Create interface
|
|
|
|
db = GtkDictBrowser(t)
|
|
db.register_get_value_text_fn("", hex_string)
|
|
db.build_ui('gprinterdata')
|
|
|
|
# Override Python's handling of ctrl-c so we can break out of the
|
|
# gui from the command line.
|
|
|
|
import signal
|
|
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
|
|
|
gtk.mainloop()
|