Python win32con.COLOR_WINDOW Examples
The following are 26
code examples of win32con.COLOR_WINDOW().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
win32con
, or try the search function
.
Example #1
Source File: notice_dlg.py From eavatar-me with Apache License 2.0 | 6 votes |
def _RegisterWndClass(self): message_map = {} wc = win32gui.WNDCLASS() wc.SetDialogProc() # Make it a dialog class. wc.hInstance = self.hinst wc.lpszClassName = self.className wc.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW wc.hCursor = win32gui.LoadCursor(0, win32con.IDC_ARROW) wc.hbrBackground = win32con.COLOR_WINDOW + 1 wc.lpfnWndProc = message_map # could also specify a wndproc. wc.cbWndExtra = win32con.DLGWINDOWEXTRA + struct.calcsize("Pi") try: self.classAtom = win32gui.RegisterClass(wc) except win32gui.error, err_info: if err_info.winerror != winerror.ERROR_CLASS_ALREADY_EXISTS: raise
Example #2
Source File: console.py From eavatar-me with Apache License 2.0 | 6 votes |
def _RegisterWndClass(self): message_map = {} wc = win32gui.WNDCLASS() wc.SetDialogProc() # Make it a dialog class. wc.hInstance = self.hinst wc.lpszClassName = self.className wc.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW wc.hCursor = win32gui.LoadCursor(0, win32con.IDC_ARROW) wc.hbrBackground = win32con.COLOR_WINDOW + 1 wc.lpfnWndProc = message_map # could also specify a wndproc. wc.cbWndExtra = win32con.DLGWINDOWEXTRA + struct.calcsize("Pi") try: self.classAtom = win32gui.RegisterClass(wc) except win32gui.error, err_info: if err_info.winerror != winerror.ERROR_CLASS_ALREADY_EXISTS: raise
Example #3
Source File: win32gui_taskbar.py From ironpython2 with Apache License 2.0 | 6 votes |
def __init__(self): msg_TaskbarRestart = win32gui.RegisterWindowMessage("TaskbarCreated"); message_map = { msg_TaskbarRestart: self.OnRestart, win32con.WM_DESTROY: self.OnDestroy, win32con.WM_COMMAND: self.OnCommand, win32con.WM_USER+20 : self.OnTaskbarNotify, } # Register the Window class. wc = win32gui.WNDCLASS() hinst = wc.hInstance = win32api.GetModuleHandle(None) wc.lpszClassName = "PythonTaskbarDemo" wc.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW; wc.hCursor = win32api.LoadCursor( 0, win32con.IDC_ARROW ) wc.hbrBackground = win32con.COLOR_WINDOW wc.lpfnWndProc = message_map # could also specify a wndproc. # Don't blow up if class already registered to make testing easier try: classAtom = win32gui.RegisterClass(wc) except win32gui.error, err_info: if err_info.winerror!=winerror.ERROR_CLASS_ALREADY_EXISTS: raise # Create the Window.
Example #4
Source File: win32gui_demo.py From ironpython2 with Apache License 2.0 | 6 votes |
def TestSetWorldTransform(): wc = win32gui.WNDCLASS() wc.lpszClassName = 'test_win32gui_1' wc.style = win32con.CS_GLOBALCLASS|win32con.CS_VREDRAW | win32con.CS_HREDRAW wc.hbrBackground = win32con.COLOR_WINDOW+1 wc.lpfnWndProc=wndproc_1 class_atom=win32gui.RegisterClass(wc) hwnd = win32gui.CreateWindow(wc.lpszClassName, 'Spin the Lobster!', win32con.WS_CAPTION|win32con.WS_VISIBLE, 100,100,900,900, 0, 0, 0, None) for x in xrange(500): win32gui.InvalidateRect(hwnd,None,True) win32gui.PumpWaitingMessages() time.sleep(0.01) win32gui.DestroyWindow(hwnd) win32gui.UnregisterClass(wc.lpszClassName, None)
Example #5
Source File: win32gui_demo.py From ironpython2 with Apache License 2.0 | 6 votes |
def TestGradientFill(): wc = win32gui.WNDCLASS() wc.lpszClassName = 'test_win32gui_2' wc.style = win32con.CS_GLOBALCLASS|win32con.CS_VREDRAW | win32con.CS_HREDRAW wc.hbrBackground = win32con.COLOR_WINDOW+1 wc.lpfnWndProc=wndproc_2 class_atom=win32gui.RegisterClass(wc) hwnd = win32gui.CreateWindowEx(0, class_atom,'Kaleidoscope', win32con.WS_CAPTION|win32con.WS_VISIBLE|win32con.WS_THICKFRAME|win32con.WS_SYSMENU, 100,100,900,900, 0, 0, 0, None) s=win32gui.GetWindowLong(hwnd,win32con.GWL_EXSTYLE) win32gui.SetWindowLong(hwnd, win32con.GWL_EXSTYLE, s|win32con.WS_EX_LAYERED) win32gui.SetLayeredWindowAttributes(hwnd, 0, 175, win32con.LWA_ALPHA) for x in xrange(30): win32gui.InvalidateRect(hwnd,None,True) win32gui.PumpWaitingMessages() time.sleep(0.3) win32gui.DestroyWindow(hwnd) win32gui.UnregisterClass(class_atom,None)
Example #6
Source File: __init__.py From pyrexecd with MIT License | 6 votes |
def initialize(klass): WM_RESTART = win32gui.RegisterWindowMessage('TaskbarCreated') klass.WM_NOTIFY = win32con.WM_USER+1 klass.WNDCLASS = win32gui.WNDCLASS() klass.WNDCLASS.hInstance = win32gui.GetModuleHandle(None) klass.WNDCLASS.lpszClassName = 'Py_'+klass.__name__ klass.WNDCLASS.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW; klass.WNDCLASS.hCursor = win32gui.LoadCursor(0, win32con.IDC_ARROW) klass.WNDCLASS.hIcon = win32gui.LoadIcon(0, win32con.IDI_APPLICATION) klass.WNDCLASS.hbrBackground = win32con.COLOR_WINDOW klass.WNDCLASS.lpfnWndProc = { WM_RESTART: klass._restart, klass.WM_NOTIFY: klass._notify, win32con.WM_CLOSE: klass._close, win32con.WM_DESTROY: klass._destroy, win32con.WM_COMMAND: klass._command, } klass.CLASS_ATOM = win32gui.RegisterClass(klass.WNDCLASS) klass._instance = {} return
Example #7
Source File: check_external_drive.py From BrainDamage with Apache License 2.0 | 6 votes |
def __init__(self): message_map = { win32con.WM_DEVICECHANGE : self.onDeviceChange } wc = win32gui.WNDCLASS () hinst = wc.hInstance = win32api.GetModuleHandle (None) wc.lpszClassName = "DeviceChangeDemo" wc.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW; wc.hCursor = win32gui.LoadCursor (0, win32con.IDC_ARROW) wc.hbrBackground = win32con.COLOR_WINDOW wc.lpfnWndProc = message_map classAtom = win32gui.RegisterClass (wc) style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU self.hwnd = win32gui.CreateWindow ( classAtom, "Device Change Demo", style, 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, 0, 0, hinst, None )
Example #8
Source File: was.py From WAS with GNU General Public License v3.0 | 6 votes |
def __init__(self): message_map = { win32con.WM_DEVICECHANGE: self.onDeviceChange } wc = win32gui.WNDCLASS() hinst = wc.hInstance = win32api.GetModuleHandle(None) wc.lpszClassName = "DeviceChangeDemo" wc.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW wc.hCursor = win32gui.LoadCursor(0, win32con.IDC_ARROW) wc.hbrBackground = win32con.COLOR_WINDOW wc.lpfnWndProc = message_map classAtom = win32gui.RegisterClass(wc) style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU self.hwnd = win32gui.CreateWindow( classAtom, "Device Change Demo", style, 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, 0, 0, hinst, None )
Example #9
Source File: dialog_base.py From dragonfly with GNU Lesser General Public License v3.0 | 6 votes |
def _dialog_register_windowclass(cls, instance, name): if not cls._dialog_registered_windowclass: wc = win32gui.WNDCLASS() wc.SetDialogProc() wc.hInstance = instance wc.lpszClassName = name wc.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW wc.hCursor = win32gui.LoadCursor( 0, win32con.IDC_ARROW ) wc.hbrBackground = win32con.COLOR_WINDOW + 1 wc.lpfnWndProc = {} # C code: wc.cbWndExtra = DLGWINDOWEXTRA + sizeof(HBRUSH) + (sizeof(COLORREF)); wc.cbWndExtra = win32con.DLGWINDOWEXTRA + struct.calcsize("Pi") cls._dialog_atom = win32gui.RegisterClass(wc) cls._dialog_registered_windowclass = True return cls._dialog_atom #-----------------------------------------------------------------------
Example #10
Source File: fontdemo.py From ironpython2 with Apache License 2.0 | 5 votes |
def OnPrepareDC (self, dc, printinfo): # Set up the DC for forthcoming OnDraw call self.SetScrollSizes(win32con.MM_TEXT, (100,100)) dc.SetTextColor (win32api.RGB(0,0,255)) dc.SetBkColor (win32api.GetSysColor (win32con.COLOR_WINDOW)) dc.SelectObject (self.font) dc.SetTextAlign (win32con.TA_CENTER | win32con.TA_BASELINE)
Example #11
Source File: shell.py From eavatar-me with Apache License 2.0 | 5 votes |
def register_wnd_class(self, message_map): # Register the Window class. window_class = win32gui.WNDCLASS() self.hinst = window_class.hInstance = win32gui.GetModuleHandle(None) window_class.lpszClassName = self.window_class_name window_class.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW window_class.hCursor = win32gui.LoadCursor(0, win32con.IDC_ARROW) window_class.hbrBackground = win32con.COLOR_WINDOW window_class.lpfnWndProc = message_map # could also specify a wndproc. return win32gui.RegisterClass(window_class)
Example #12
Source File: simpledialog.py From eavatar-me with Apache License 2.0 | 5 votes |
def _RegisterWndClass(self): message_map = {} wc = win32gui.WNDCLASS() wc.SetDialogProc() # Make it a dialog class. wc.hInstance = self.hinst wc.lpszClassName = self.className wc.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW wc.hCursor = win32gui.LoadCursor(0, win32con.IDC_ARROW) wc.hbrBackground = win32con.COLOR_WINDOW + 1 wc.lpfnWndProc = message_map # could also specify a wndproc. # C code: wc.cbWndExtra = DLGWINDOWEXTRA + sizeof(HBRUSH) + # (sizeof(COLORREF)); wc.cbWndExtra = win32con.DLGWINDOWEXTRA + struct.calcsize("Pi") # py.ico went away in python 2.5, load from executable instead this_app = win32api.GetModuleHandle(None) try: # python.exe and pythonw.exe wc.hIcon = win32gui.LoadIcon(this_app, 1) except win32gui.error: # pythonwin's icon wc.hIcon = win32gui.LoadIcon(this_app, 135) try: self.classAtom = win32gui.RegisterClass(wc) except win32gui.error, err_info: if err_info.winerror != winerror.ERROR_CLASS_ALREADY_EXISTS: raise
Example #13
Source File: window.py From eavatar-me with Apache License 2.0 | 5 votes |
def _register_wnd_class(self, message_map): # Register the Window class. window_class = win32gui.WNDCLASS() self.hinst = window_class.hInstance = win32gui.GetModuleHandle(None) window_class.lpszClassName = self.window_class_name window_class.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW window_class.hCursor = win32gui.LoadCursor(0, win32con.IDC_ARROW) window_class.hbrBackground = win32con.COLOR_WINDOW window_class.lpfnWndProc = message_map # could also specify a wndproc. return win32gui.RegisterClass(window_class)
Example #14
Source File: helloapp.py From ironpython2 with Apache License 2.0 | 5 votes |
def __init__(self): # The window.Wnd ctor creates a Window object, and places it in # self._obj_. Note the window object exists, but the window itself # does not! window.Wnd.__init__(self, win32ui.CreateWnd()) # Now we ask the window object to create the window itself. self._obj_.CreateWindowEx(win32con.WS_EX_CLIENTEDGE, \ win32ui.RegisterWndClass(0, 0, win32con.COLOR_WINDOW + 1), \ 'Hello World!', win32con.WS_OVERLAPPEDWINDOW, \ (100, 100, 400, 300), None, 0, None) # The application object itself.
Example #15
Source File: formatter.py From ironpython2 with Apache License 2.0 | 5 votes |
def _ReformatStyle(self, style): assert style.stylenum is not None, "Unregistered style." #print "Reformat style", style.name, style.stylenum scintilla=self.scintilla stylenum = style.stylenum # Now we have the style number, indirect for the actual style. if style.aliased is not None: style = self.styles[style.aliased] f=style.format if style.IsBasedOnDefault(): baseFormat = self.GetDefaultFormat() else: baseFormat = f scintilla.SCIStyleSetFore(stylenum, f[4]) scintilla.SCIStyleSetFont(stylenum, baseFormat[7], baseFormat[5]) if f[1] & 1: scintilla.SCIStyleSetBold(stylenum, 1) else: scintilla.SCIStyleSetBold(stylenum, 0) if f[1] & 2: scintilla.SCIStyleSetItalic(stylenum, 1) else: scintilla.SCIStyleSetItalic(stylenum, 0) scintilla.SCIStyleSetSize(stylenum, int(baseFormat[2]/20)) scintilla.SCIStyleSetEOLFilled(stylenum, 1) # Only needed for unclosed strings. ## Default style background to whitespace background if set, ## otherwise use system window color bg = style.background if bg == CLR_INVALID: bg = self.styles[STYLE_DEFAULT].background if bg == CLR_INVALID: bg = win32api.GetSysColor(win32con.COLOR_WINDOW) scintilla.SCIStyleSetBack(stylenum, bg)
Example #16
Source File: threadedgui.py From ironpython2 with Apache License 2.0 | 5 votes |
def OnPrepareDC (self, dc, printinfo): # Set up the DC for forthcoming OnDraw call dc.SetTextColor (win32api.RGB(0,0,255)) dc.SetBkColor (win32api.GetSysColor (win32con.COLOR_WINDOW)) dc.SelectObject (self.font) dc.SetTextAlign (win32con.TA_CENTER | win32con.TA_BASELINE)
Example #17
Source File: threadedgui.py From ironpython2 with Apache License 2.0 | 5 votes |
def Create(self, title, style, rect, parent): classStyle = win32con.CS_HREDRAW | win32con.CS_VREDRAW className = win32ui.RegisterWndClass(classStyle, 0, win32con.COLOR_WINDOW+1, 0) self._obj_ = win32ui.CreateWnd() self._obj_.AttachObject(self) self._obj_.CreateWindow(className, title, style, rect, parent, win32ui.AFX_IDW_PANE_FIRST) self.HookMessage (self.OnSize, win32con.WM_SIZE) self.HookMessage (self.OnPrepareToClose, WM_USER_PREPARE_TO_CLOSE) self.HookMessage (self.OnDestroy, win32con.WM_DESTROY) self.timerid = timer.set_timer (100, self.OnTimer) self.InvalidateRect()
Example #18
Source File: taskbar_widget.py From termite-visualizations with BSD 3-Clause "New" or "Revised" License | 4 votes |
def __init__(self, iconPath=None): self.iconPath = iconPath self.status = [] msg_TaskbarRestart = \ win32api.RegisterWindowMessage('TaskbarCreated') message_map = { msg_TaskbarRestart: self.OnRestart, win32con.WM_DESTROY: self.OnDestroy, win32con.WM_COMMAND: self.OnCommand, win32con.WM_USER + 20: self.OnTaskbarNotify, } # Register the Window class. wc = win32gui.WNDCLASS() hinst = wc.hInstance = win32api.GetModuleHandle(None) wc.lpszClassName = 'web2pyTaskbar' wc.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW wc.hCursor = win32gui.LoadCursor(0, win32con.IDC_ARROW) wc.hbrBackground = win32con.COLOR_WINDOW wc.lpfnWndProc = message_map # could also specify a wndproc. classAtom = win32gui.RegisterClass(wc) # Create the Window. style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU self.hwnd = win32gui.CreateWindow( classAtom, 'web2pyTaskbar', style, 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, 0, 0, hinst, None, ) win32gui.UpdateWindow(self.hwnd) self.SetServerStopped()
Example #19
Source File: utils.py From QuLab with MIT License | 4 votes |
def _WindowsShutdownBlocker(title='Python script'): """ Block Windows shutdown when you do something important. """ from ctypes import CFUNCTYPE, c_bool, c_uint, c_void_p, c_wchar_p, windll import win32con import win32gui def WndProc(hWnd, message, wParam, lParam): if message == win32con.WM_QUERYENDSESSION: return False else: return win32gui.DefWindowProc(hWnd, message, wParam, lParam) CALLBACK = CFUNCTYPE(c_bool, c_void_p, c_uint, c_void_p, c_void_p) wc = win32gui.WNDCLASS() wc.style = win32con.CS_GLOBALCLASS | win32con.CS_VREDRAW | win32con.CS_HREDRAW wc.lpfnWndProc = CALLBACK(WndProc) wc.hbrBackground = win32con.COLOR_WINDOW + 1 wc.lpszClassName = "block_shutdown_class" win32gui.RegisterClass(wc) hwnd = win32gui.CreateWindow(wc.lpszClassName, title, win32con.WS_OVERLAPPEDWINDOW, 50, 50, 100, 100, 0, 0, win32gui.GetForegroundWindow(), None) win32gui.ShowWindow(hwnd, win32con.SW_HIDE) windll.user32.ShutdownBlockReasonCreate.argtypes = [c_void_p, c_wchar_p] windll.user32.ShutdownBlockReasonCreate.restype = c_bool windll.user32.ShutdownBlockReasonCreate( hwnd, "Important work in processing, don't shutdown :-(") yield windll.user32.ShutdownBlockReasonDestroy.argtypes = [c_void_p] windll.user32.ShutdownBlockReasonDestroy.restype = c_bool windll.user32.ShutdownBlockReasonDestroy(hwnd) win32gui.DestroyWindow(hwnd) win32gui.UnregisterClass(wc.lpszClassName, None)
Example #20
Source File: gui_win.py From ComicStreamer with Apache License 2.0 | 4 votes |
def __init__(self, apiServer): self.apiServer = apiServer self.icon = AppFolders.imagePath("trout.ico") self.hover_text = "ComicStreamer" self.on_quit = self.bye menu_options = ( ('Show ComicStreamer UI', None, self.show), ) menu_options = menu_options + (('Quit', None, self.QUIT),) self._next_action_id = self.FIRST_ID self.menu_actions_by_id = set() self.menu_options = self._add_ids_to_menu_options(list(menu_options)) self.menu_actions_by_id = dict(self.menu_actions_by_id) del self._next_action_id self.default_menu_index = 1 self.window_class_name = "ComicStreamerTrayIcon" message_map = {win32gui.RegisterWindowMessage("TaskbarCreated"): self.restart, win32con.WM_DESTROY: self.destroy, win32con.WM_COMMAND: self.command, win32con.WM_USER+20 : self.notify,} # Register the Window class. window_class = win32gui.WNDCLASS() hinst = window_class.hInstance = win32gui.GetModuleHandle(None) window_class.lpszClassName = self.window_class_name window_class.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW; window_class.hCursor = win32gui.LoadCursor(0, win32con.IDC_ARROW) window_class.hbrBackground = win32con.COLOR_WINDOW window_class.lpfnWndProc = message_map # could also specify a wndproc. classAtom = win32gui.RegisterClass(window_class) # Create the Window. style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU self.hwnd = win32gui.CreateWindow(classAtom, self.window_class_name, style, 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, 0, 0, hinst, None) win32gui.UpdateWindow(self.hwnd) self.notify_id = None self.refresh_icon()
Example #21
Source File: winapi.py From gui-o-matic with GNU Lesser General Public License v3.0 | 4 votes |
def __init__(self, title, style, size = (win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT), messages = {}): '''Setup a window class and a create window''' self.layers = [] self.module_handle = win32gui.GetModuleHandle(None) self.systray = False self.systray_map = { win32con.WM_RBUTTONDOWN: self._show_menu } # Setup window class # self.window_class_name = self._make_window_class_name() self.message_map = { win32con.WM_PAINT: self._on_paint, win32con.WM_CLOSE: self._on_close, win32con.WM_COMMAND: self._on_command, self._notify_event_id: self._on_notify, } self.message_map.update( messages ) self.window_class = win32gui.WNDCLASS() self.window_class.style = win32con.CS_HREDRAW | win32con.CS_VREDRAW self.window_class.lpfnWndProc = self.message_map self.window_class.hInstance = self.module_handle self.window_class.hCursor = win32gui.LoadCursor( None, win32con.IDC_ARROW ) self.window_class.hbrBackground = win32con.COLOR_WINDOW self.window_class.lpszClassName = self.window_class_name self.window_classHandle = win32gui.RegisterClass( self.window_class ) self.window_handle = win32gui.CreateWindow( self.window_class_name, title, style, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, size[ 0 ], size[ 1 ], None, None, self.module_handle, None )
Example #22
Source File: systray.py From OpenBazaar-Installer with MIT License | 4 votes |
def __init__(self, icon, hover_text, menu_options, on_quit=None, default_menu_index=None, window_class_name=None, ): self.icon = icon self.hover_text = hover_text self.on_quit = on_quit menu_options = menu_options + (('Quit', None, self.QUIT),) self._next_action_id = self.FIRST_ID self.menu_actions_by_id = set() self.menu_options = self._add_ids_to_menu_options(list(menu_options)) self.menu_actions_by_id = dict(self.menu_actions_by_id) del self._next_action_id self.default_menu_index = (default_menu_index or 0) self.window_class_name = window_class_name or "SysTrayIconPy" message_map = {win32gui.RegisterWindowMessage("TaskbarCreated"): self.restart, win32con.WM_DESTROY: self.destroy, win32con.WM_COMMAND: self.command, win32con.WM_USER + 20: self.notify, } # Register the Window class. window_class = win32gui.WNDCLASS() hinst = window_class.hInstance = win32gui.GetModuleHandle(None) window_class.lpszClassName = self.window_class_name window_class.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW window_class.hCursor = win32gui.LoadCursor(0, win32con.IDC_ARROW) window_class.hbrBackground = win32con.COLOR_WINDOW window_class.lpfnWndProc = message_map # could also specify a wndproc. classAtom = win32gui.RegisterClass(window_class) # Create the Window. style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU self.hwnd = win32gui.CreateWindow(classAtom, self.window_class_name, style, 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, 0, 0, hinst, None) win32gui.UpdateWindow(self.hwnd) self.notify_id = None self.refresh_icon() win32gui.PumpMessages()
Example #23
Source File: tray.py From MouseTracks with GNU General Public License v3.0 | 4 votes |
def __init__(self, menu_options, program_name='Python Taskbar', window_name=None): self.logger = logging.getLogger("tray") self.cache = {} self._commands = {'OnMenuOpen': [], 'OnMenuClose': [], 'OnWindowHide': [], 'OnWindowRestore': []} self.program_name = program_name try: self.console_hwnd = WindowHandle(parent=False, console=True) except NameError: self.console_hwnd = None self._refresh_menu(menu_options) if window_name is None: window_name = program_name #Set up callbacks msg_TaskbarRestart = win32gui.RegisterWindowMessage('TaskbarCreated') message_map = { msg_TaskbarRestart: self.OnRestart, win32con.WM_DESTROY: self.OnDestroy, win32con.WM_COMMAND: self.OnCommand, TRAY_EVENT: self.OnTaskbarNotify, } #Register the Window class. wc = win32gui.WNDCLASS() hinst = wc.hInstance = win32api.GetModuleHandle(None) wc.lpszClassName = window_name wc.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW wc.hCursor = win32api.LoadCursor(0, win32con.IDC_ARROW) wc.hbrBackground = win32con.COLOR_WINDOW wc.lpfnWndProc = message_map # could also specify a wndproc. #Don't blow up if class already registered to make testing easier try: classAtom = win32gui.RegisterClass(wc) except (win32gui.error, err_info): if err_info.winerror!=winerror.ERROR_CLASS_ALREADY_EXISTS: raise #Create the Window. style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU self.hwnd = win32gui.CreateWindow(wc.lpszClassName, window_name, style, \ 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, \ 0, 0, hinst, None) win32gui.UpdateWindow(self.hwnd) self._set_icon() self.logger.info('Window created.')
Example #24
Source File: SysTrayIcon.py From LIFX-Control-Panel with MIT License | 4 votes |
def __init__(self, icon, hover_text, menu_options, on_quit=None, default_menu_index=None, window_class_name=None, ): self.logger = logging.getLogger("root.SysIcon") self.icon = icon self.hover_text = hover_text self.on_quit = on_quit menu_options = menu_options + (('Quit', None, self.QUIT),) self._next_action_id = self.FIRST_ID self.menu_actions_by_id = set() self.menu_options = self._add_ids_to_menu_options(list(menu_options)) self.menu_actions_by_id = dict(self.menu_actions_by_id) del self._next_action_id self.default_menu_index = (default_menu_index or 0) self.window_class_name = window_class_name or "SysTrayIconPy" message_map = {win32gui.RegisterWindowMessage("TaskbarCreated"): self.restart, win32con.WM_DESTROY: self.destroy, win32con.WM_COMMAND: self.command, win32con.WM_USER + 20: self.notify, } # Register the Window class. window_class = win32gui.WNDCLASS() hinst = window_class.hInstance = win32gui.GetModuleHandle(None) window_class.lpszClassName = self.window_class_name window_class.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW; window_class.hCursor = win32gui.LoadCursor(0, win32con.IDC_ARROW) window_class.hbrBackground = win32con.COLOR_WINDOW window_class.lpfnWndProc = message_map # could also specify a wndproc. classAtom = win32gui.RegisterClass(window_class) # Create the Window. style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU self.hwnd = win32gui.CreateWindow(classAtom, self.window_class_name, style, 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, 0, 0, hinst, None) win32gui.UpdateWindow(self.hwnd) self.notify_id = None self.refresh_icon() win32gui.PumpMessages()
Example #25
Source File: desktopmanager.py From ironpython2 with Apache License 2.0 | 4 votes |
def new_icon(hdesk,desktop_name): """ Runs as a thread on each desktop to create a new tray icon and handle its messages """ global id id=id+1 hdesk.SetThreadDesktop() ## apparently the threads can't use same hinst, so each needs its own window class windowclassname='PythonDesktopManager'+desktop_name wc = win32gui.WNDCLASS() wc.hInstance = win32api.GetModuleHandle(None) wc.lpszClassName = windowclassname wc.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW | win32con.CS_GLOBALCLASS wc.hCursor = win32gui.LoadCursor( 0, win32con.IDC_ARROW ) wc.hbrBackground = win32con.COLOR_WINDOW wc.lpfnWndProc = icon_wndproc windowclass = win32gui.RegisterClass(wc) style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU hwnd = win32gui.CreateWindow(windowclass, 'dm_'+desktop_name, win32con.WS_SYSMENU, 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, 0, 0, wc.hInstance, None) win32gui.UpdateWindow(hwnd) flags = win32gui.NIF_ICON | win32gui.NIF_MESSAGE | win32gui.NIF_TIP notify_info = (hwnd, id, flags, win32con.WM_USER+20, hicon, 'Desktop Manager (%s)' %desktop_name) window_info[hwnd]=notify_info ## wait for explorer to initialize system tray for new desktop tray_found=0 while not tray_found: try: tray_found=win32gui.FindWindow("Shell_TrayWnd",None) except win32gui.error: traceback.print_exc time.sleep(.5) win32gui.Shell_NotifyIcon(win32gui.NIM_ADD, notify_info) win32gui.PumpMessages()
Example #26
Source File: win32gui_devicenotify.py From ironpython2 with Apache License 2.0 | 4 votes |
def TestDeviceNotifications(dir_names): wc = win32gui.WNDCLASS() wc.lpszClassName = 'test_devicenotify' wc.style = win32con.CS_GLOBALCLASS|win32con.CS_VREDRAW | win32con.CS_HREDRAW wc.hbrBackground = win32con.COLOR_WINDOW+1 wc.lpfnWndProc={win32con.WM_DEVICECHANGE:OnDeviceChange} class_atom=win32gui.RegisterClass(wc) hwnd = win32gui.CreateWindow(wc.lpszClassName, 'Testing some devices', # no need for it to be visible. win32con.WS_CAPTION, 100,100,900,900, 0, 0, 0, None) hdevs = [] # Watch for all USB device notifications filter = win32gui_struct.PackDEV_BROADCAST_DEVICEINTERFACE( GUID_DEVINTERFACE_USB_DEVICE) hdev = win32gui.RegisterDeviceNotification(hwnd, filter, win32con.DEVICE_NOTIFY_WINDOW_HANDLE) hdevs.append(hdev) # and create handles for all specified directories for d in dir_names: hdir = win32file.CreateFile(d, winnt.FILE_LIST_DIRECTORY, winnt.FILE_SHARE_READ | winnt.FILE_SHARE_WRITE | winnt.FILE_SHARE_DELETE, None, # security attributes win32con.OPEN_EXISTING, win32con.FILE_FLAG_BACKUP_SEMANTICS | # required privileges: SE_BACKUP_NAME and SE_RESTORE_NAME. win32con.FILE_FLAG_OVERLAPPED, None) filter = win32gui_struct.PackDEV_BROADCAST_HANDLE(hdir) hdev = win32gui.RegisterDeviceNotification(hwnd, filter, win32con.DEVICE_NOTIFY_WINDOW_HANDLE) hdevs.append(hdev) # now start a message pump and wait for messages to be delivered. print "Watching", len(hdevs), "handles - press Ctrl+C to terminate, or" print "add and remove some USB devices..." if not dir_names: print "(Note you can also pass paths to watch on the command-line - eg," print "pass the root of an inserted USB stick to see events specific to" print "that volume)" while 1: win32gui.PumpWaitingMessages() time.sleep(0.01) win32gui.DestroyWindow(hwnd) win32gui.UnregisterClass(wc.lpszClassName, None)