Python win32gui.GetClientRect() Examples
The following are 17
code examples of win32gui.GetClientRect().
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
win32gui
, or try the search function
.
Example #1
Source File: win32gui_dialog.py From ironpython2 with Apache License 2.0 | 6 votes |
def OnInitDialog(self, hwnd, msg, wparam, lparam): self.hwnd = hwnd # centre the dialog desktop = win32gui.GetDesktopWindow() l,t,r,b = win32gui.GetWindowRect(self.hwnd) dt_l, dt_t, dt_r, dt_b = win32gui.GetWindowRect(desktop) centre_x, centre_y = win32gui.ClientToScreen( desktop, ( (dt_r-dt_l)//2, (dt_b-dt_t)//2) ) win32gui.MoveWindow(hwnd, centre_x-(r//2), centre_y-(b//2), r-l, b-t, 0) self._SetupList() l,t,r,b = win32gui.GetClientRect(self.hwnd) self._DoSize(r-l,b-t, 1)
Example #2
Source File: windows.py From ATX with Apache License 2.0 | 6 votes |
def rect(self): hwnd = self.hwnd if not self.exclude_border: left, top, right, bottom = win32gui.GetWindowRect(hwnd) else: _left, _top, _right, _bottom = win32gui.GetClientRect(hwnd) left, top = win32gui.ClientToScreen(hwnd, (_left, _top)) right, bottom = win32gui.ClientToScreen(hwnd, (_right, _bottom)) return Rect(left, top, right, bottom)
Example #3
Source File: windows.py From ATX with Apache License 2.0 | 6 votes |
def __init_rect_size(self): hwnd = self.hwnd left, top, right, bottom = win32gui.GetWindowRect(hwnd) if self.exclude_border: _left, _top, _right, _bottom = win32gui.GetClientRect(hwnd) left, top = win32gui.ClientToScreen(hwnd, (_left, _top)) right, bottom = win32gui.ClientToScreen(hwnd, (_right, _bottom)) self._rect = Rect(left, top, right, bottom) self._size = Size(right-left, bottom-top)
Example #4
Source File: game_ctl.py From onmyoji_bot with GNU General Public License v3.0 | 6 votes |
def __init__(self, hwnd, quit_game_enable=1): ''' 初始化 :param hwnd: 需要绑定的窗口句柄 :param quit_game_enable: 程序死掉时是否退出游戏。True为是,False为否 ''' self.run = True self.hwnd = hwnd self.quit_game_enable = quit_game_enable self.debug_enable = False l1, t1, r1, b1 = win32gui.GetWindowRect(self.hwnd) #print(l1,t1, r1,b1) l2, t2, r2, b2 = win32gui.GetClientRect(self.hwnd) # print(l2,t2,r2,b2) self._client_h = b2 - t2 self._client_w = r2 - l2 self._border_l = ((r1 - l1) - (r2 - l2)) // 2 self._border_t = ((b1 - t1) - (b2 - t2)) - self._border_l conf = configparser.ConfigParser() conf.read('conf.ini') self.client = conf.getint('DEFAULT', 'client') if self.client == 1: os.system('adb connect 127.0.0.1:7555') os.system('adb devices')
Example #5
Source File: console.py From eavatar-me with Apache License 2.0 | 6 votes |
def OnInitDialog(self, hwnd, msg, wparam, lparam): self.hwnd = hwnd # centre the dialog desktop = win32gui.GetDesktopWindow() l, t, r, b = win32gui.GetWindowRect(self.hwnd) dt_l, dt_t, dt_r, dt_b = win32gui.GetWindowRect(desktop) centre_x, centre_y = win32gui.ClientToScreen(desktop, ( (dt_r - dt_l) // 2, (dt_b - dt_t) // 2)) win32gui.MoveWindow(hwnd, centre_x - (r // 2), centre_y - (b // 2), r - l, b - t, 0) # self._SetupList() l, t, r, b = win32gui.GetClientRect(self.hwnd) self._DoSize(r - l, b - t, 1)
Example #6
Source File: notice_dlg.py From eavatar-me with Apache License 2.0 | 6 votes |
def OnInitDialog(self, hwnd, msg, wparam, lparam): self.hwnd = hwnd # centre the dialog desktop = win32gui.GetDesktopWindow() l, t, r, b = win32gui.GetWindowRect(self.hwnd) dt_l, dt_t, dt_r, dt_b = win32gui.GetWindowRect(desktop) centre_x, centre_y = win32gui.ClientToScreen(desktop, ((dt_r - dt_l)//2, (dt_b - dt_t)//2)) win32gui.MoveWindow(hwnd, centre_x-(r//2), centre_y-(b//2), r-l, b-t, 0) # self._SetupList() l, t, r, b = win32gui.GetClientRect(self.hwnd) self._DoSize(r-l, b-t, 1)
Example #7
Source File: simpledialog.py From eavatar-me with Apache License 2.0 | 6 votes |
def OnInitDialog(self, hwnd, msg, wparam, lparam): self.hwnd = hwnd # centre the dialog desktop = win32gui.GetDesktopWindow() l, t, r, b = win32gui.GetWindowRect(self.hwnd) dt_l, dt_t, dt_r, dt_b = win32gui.GetWindowRect(desktop) centre_x, centre_y = win32gui.ClientToScreen( desktop, ((dt_r-dt_l)//2, (dt_b-dt_t)//2)) win32gui.MoveWindow(hwnd, centre_x-(r//2), centre_y-(b//2), r-l, b-t, 0) # self._SetupList() l, t, r, b = win32gui.GetClientRect(self.hwnd) self._DoSize(r-l, b-t, 1)
Example #8
Source File: winapi.py From gui-o-matic with GNU Lesser General Public License v3.0 | 6 votes |
def __call__( self, window, hdc, paint_struct ): src_roi = self.src_roi or (0, 0, self.bitmap.size[0], self.bitmap.size[1]) dst_roi = self.dst_roi or win32gui.GetClientRect( window.window_handle ) blend = self.blend or (win32con.AC_SRC_OVER, 0, 255, win32con.AC_SRC_ALPHA ) hdc_mem = win32gui.CreateCompatibleDC( hdc ) prior = win32gui.SelectObject( hdc_mem, self.bitmap.handle ) # Blit with alpha channel blending win32gui.AlphaBlend( hdc, dst_roi[ 0 ], dst_roi[ 1 ], dst_roi[ 2 ] - dst_roi[ 0 ], dst_roi[ 3 ] - dst_roi[ 1 ], hdc_mem, src_roi[ 0 ], src_roi[ 1 ], src_roi[ 2 ] - src_roi[ 0 ], src_roi[ 3 ] - src_roi[ 1 ], blend ) win32gui.SelectObject( hdc_mem, prior ) win32gui.DeleteDC( hdc_mem )
Example #9
Source File: winapi.py From gui-o-matic with GNU Lesser General Public License v3.0 | 6 votes |
def __init__( self, parent ): super( Window.ProgressBar, self ).__init__() rect = win32gui.GetClientRect( parent.window_handle ) yscroll = win32api.GetSystemMetrics(win32con.SM_CYVSCROLL) self.handle = win32gui.CreateWindowEx( 0, commctrl.PROGRESS_CLASS, None, win32con.WS_VISIBLE | win32con.WS_CHILD, rect[ 0 ] + yscroll, (rect[ 3 ]) - 2 * yscroll, (rect[ 2 ] - rect[ 0 ]) - 2*yscroll, yscroll, parent.window_handle, self.registry_id, win32gui.GetModuleHandle(None), None )
Example #10
Source File: win32gui_demo.py From ironpython2 with Apache License 2.0 | 5 votes |
def OnPaint_2(hwnd, msg, wp, lp): dc, ps=win32gui.BeginPaint(hwnd) win32gui.SetGraphicsMode(dc, win32con.GM_ADVANCED) l,t,r,b=win32gui.GetClientRect(hwnd) for x in xrange(25): vertices=( {'x':int(random.random()*r), 'y':int(random.random()*b), 'Red':int(random.random()*0xff00), 'Green':0, 'Blue':0, 'Alpha':0}, {'x':int(random.random()*r), 'y':int(random.random()*b), 'Red':0, 'Green':int(random.random()*0xff00), 'Blue':0, 'Alpha':0}, {'x':int(random.random()*r), 'y':int(random.random()*b), 'Red':0, 'Green':0, 'Blue':int(random.random()*0xff00), 'Alpha':0}, ) mesh=((0,1,2),) win32gui.GradientFill(dc,vertices, mesh, win32con.GRADIENT_FILL_TRIANGLE) win32gui.EndPaint(hwnd, ps) return 0
Example #11
Source File: winapi.py From gui-o-matic with GNU Lesser General Public License v3.0 | 5 votes |
def get_client_region( self ): return win32gui.GetClientRect( self.window_handle )
Example #12
Source File: shell_view.py From Email_My_PC with MIT License | 4 votes |
def _CreateChildWindow(self, prev): # Creates the list view window. assert self.hwnd_child is None, "already have a window" assert self.cur_foldersettings is not None, "no settings" style = win32con.WS_CHILD | win32con.WS_VISIBLE | win32con.WS_BORDER | \ commctrl.LVS_SHAREIMAGELISTS | commctrl.LVS_EDITLABELS view_mode, view_flags = self.cur_foldersettings if view_mode==shellcon.FVM_ICON: style |= commctrl.LVS_ICON | commctrl.LVS_AUTOARRANGE elif view_mode==shellcon.FVM_SMALLICON: style |= commctrl.LVS_SMALLICON | commctrl.LVS_AUTOARRANGE elif view_mode==shellcon.FVM_LIST: style |= commctrl.LVS_LIST | commctrl.LVS_AUTOARRANGE elif view_mode==shellcon.FVM_DETAILS: style |= commctrl.LVS_REPORT | commctrl.LVS_AUTOARRANGE else: # XP 'thumbnails' etc view_mode = shellcon.FVM_DETAILS # Default to 'report' style |= commctrl.LVS_REPORT | commctrl.LVS_AUTOARRANGE for f_flag, l_flag in [ (shellcon.FWF_SINGLESEL, commctrl.LVS_SINGLESEL), (shellcon.FWF_ALIGNLEFT, commctrl.LVS_ALIGNLEFT), (shellcon.FWF_SHOWSELALWAYS, commctrl.LVS_SHOWSELALWAYS), ]: if view_flags & f_flag: style |= l_flag self.hwnd_child = win32gui.CreateWindowEx( win32con.WS_EX_CLIENTEDGE, "SysListView32", None, style, 0, 0, 0, 0, self.hwnd, 1000, 0, None) cr = win32gui.GetClientRect(self.hwnd) win32gui.MoveWindow(self.hwnd_child, 0, 0, cr[2]-cr[0], cr[3]-cr[1], True) # Setup the columns for the view. lvc, extras = win32gui_struct.PackLVCOLUMN(fmt=commctrl.LVCFMT_LEFT, subItem=1, text='Name', cx=300) win32gui.SendMessage(self.hwnd_child, commctrl.LVM_INSERTCOLUMN, 0, lvc) lvc, extras = win32gui_struct.PackLVCOLUMN(fmt=commctrl.LVCFMT_RIGHT, subItem=1, text='Exists', cx=50) win32gui.SendMessage(self.hwnd_child, commctrl.LVM_INSERTCOLUMN, 1, lvc) # and fill it with the content self.Refresh()
Example #13
Source File: explorer_browser.py From ironpython2 with Apache License 2.0 | 4 votes |
def __init__(self): message_map = { win32con.WM_DESTROY: self.OnDestroy, win32con.WM_COMMAND: self.OnCommand, win32con.WM_SIZE: self.OnSize, } # Register the Window class. wc = win32gui.WNDCLASS() hinst = wc.hInstance = win32api.GetModuleHandle(None) wc.lpszClassName = "test_explorer_browser" wc.lpfnWndProc = message_map # could also specify a wndproc. classAtom = win32gui.RegisterClass(wc) # Create the Window. style = win32con.WS_OVERLAPPEDWINDOW | win32con.WS_VISIBLE self.hwnd = win32gui.CreateWindow( classAtom, "Python IExplorerBrowser demo", style, \ 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, \ 0, 0, hinst, None) eb = pythoncom.CoCreateInstance(shellcon.CLSID_ExplorerBrowser, None, pythoncom.CLSCTX_ALL, shell.IID_IExplorerBrowser) # as per MSDN docs, hook up events early self.event_cookie = eb.Advise(wrap(EventHandler())) eb.SetOptions(shellcon.EBO_SHOWFRAMES) rect = win32gui.GetClientRect(self.hwnd) # Set the flags such that the folders autoarrange and non web view is presented flags = (shellcon.FVM_LIST, shellcon.FWF_AUTOARRANGE | shellcon.FWF_NOWEBVIEW) eb.Initialize(self.hwnd, rect, (0, shellcon.FVM_DETAILS)) if len(sys.argv)==2: # If an arg was specified, ask the desktop parse it. # You can pass anything explorer accepts as its '/e' argument - # eg, "::{guid}\::{guid}" etc. # "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}" is "My Computer" pidl = shell.SHGetDesktopFolder().ParseDisplayName(0, None, sys.argv[1])[1] else: # And start browsing at the root of the namespace. pidl = [] eb.BrowseToIDList(pidl, shellcon.SBSP_ABSOLUTE) # and for some reason the "Folder" view in the navigator pane doesn't # magically synchronize itself - so let's do that ourself. # Get the tree control. sp = eb.QueryInterface(pythoncom.IID_IServiceProvider) try: tree = sp.QueryService(shell.IID_INameSpaceTreeControl, shell.IID_INameSpaceTreeControl) except pythoncom.com_error, exc: # this should really only fail if no "nav" frame exists... print "Strange - failed to get the tree control even though " \ "we asked for a EBO_SHOWFRAMES" print exc
Example #14
Source File: explorer_browser.py From Email_My_PC with MIT License | 4 votes |
def __init__(self): message_map = { win32con.WM_DESTROY: self.OnDestroy, win32con.WM_COMMAND: self.OnCommand, win32con.WM_SIZE: self.OnSize, } # Register the Window class. wc = win32gui.WNDCLASS() hinst = wc.hInstance = win32api.GetModuleHandle(None) wc.lpszClassName = "test_explorer_browser" wc.lpfnWndProc = message_map # could also specify a wndproc. classAtom = win32gui.RegisterClass(wc) # Create the Window. style = win32con.WS_OVERLAPPEDWINDOW | win32con.WS_VISIBLE self.hwnd = win32gui.CreateWindow( classAtom, "Python IExplorerBrowser demo", style, \ 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, \ 0, 0, hinst, None) eb = pythoncom.CoCreateInstance(shellcon.CLSID_ExplorerBrowser, None, pythoncom.CLSCTX_ALL, shell.IID_IExplorerBrowser) # as per MSDN docs, hook up events early self.event_cookie = eb.Advise(wrap(EventHandler())) eb.SetOptions(shellcon.EBO_SHOWFRAMES) rect = win32gui.GetClientRect(self.hwnd) # Set the flags such that the folders autoarrange and non web view is presented flags = (shellcon.FVM_LIST, shellcon.FWF_AUTOARRANGE | shellcon.FWF_NOWEBVIEW) eb.Initialize(self.hwnd, rect, (0, shellcon.FVM_DETAILS)) if len(sys.argv)==2: # If an arg was specified, ask the desktop parse it. # You can pass anything explorer accepts as its '/e' argument - # eg, "::{guid}\::{guid}" etc. # "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}" is "My Computer" pidl = shell.SHGetDesktopFolder().ParseDisplayName(0, None, sys.argv[1])[1] else: # And start browsing at the root of the namespace. pidl = [] eb.BrowseToIDList(pidl, shellcon.SBSP_ABSOLUTE) # and for some reason the "Folder" view in the navigator pane doesn't # magically synchronize itself - so let's do that ourself. # Get the tree control. sp = eb.QueryInterface(pythoncom.IID_IServiceProvider) try: tree = sp.QueryService(shell.IID_INameSpaceTreeControl, shell.IID_INameSpaceTreeControl) except pythoncom.com_error, exc: # this should really only fail if no "nav" frame exists... print "Strange - failed to get the tree control even though " \ "we asked for a EBO_SHOWFRAMES" print exc
Example #15
Source File: winapi.py From gui-o-matic with GNU Lesser General Public License v3.0 | 4 votes |
def show_splash_screen(self, height=None, width=None, progress_bar=False, background=None, message='', message_x=0.5, message_y=0.5): # Reset splash window layers # self.splash_window.layers = [] if background: image = PIL.Image.open( self.get_image_path( background ) ) background = Window.CompositorLayer() background.operations.append( Compositor.Blend( image ) ) self.splash_window.layers.append( background ) if width and height: pass elif height and not width: width = height * image.size[0] / image.size[1] elif width and not height: height = width * image.size[1] / image.size[0] else: height = image.size[1] width = image.size[0] if width and height: self.splash_window.set_size( (0, 0, width, height) ) # TODO: position splash text # window_roi = win32gui.GetClientRect( self.splash_window.window_handle ) width = window_roi[2] - window_roi[0] height = window_roi[3] - window_roi[1] text_center = (window_roi[0] + int((window_roi[2] - window_roi[0]) * message_x), window_roi[1] + int((window_roi[3] - window_roi[1]) * message_y)) width_pad = min(window_roi[2] - text_center[0], text_center[0] - window_roi[0]) height_pad = min(window_roi[3] - text_center[1], text_center[1] - window_roi[1]) text_roi = (text_center[0] - width_pad, text_center[1] - height_pad, text_center[0] + width_pad, text_center[1] + height_pad) text_props = { 'rect': text_roi } if message: text_props['text'] = message self.splash_text.set_props( self.splash_window, **text_props ) self.splash_window.layers.append( self.splash_text ) if progress_bar: self.progress_bar = Window.ProgressBar( self.splash_window ) self.progress_bar.set_range( self._progress_range ) self.progress_bar.set_step( 1 ) self.splash_window.center() self.splash_window.set_visibility( True ) self.splash_window.focus()
Example #16
Source File: Screenshot.py From roc with MIT License | 4 votes |
def shot(cls,name= 'playing.png'): hwnd = win32gui.FindWindow(None, cls.processname) # Change the line below depending on whether you want the whole window # or just the client area. left, top, right, bot = win32gui.GetClientRect(hwnd) #left, top, right, bot = win32gui.GetWindowRect(hwnd) w = right - left h = bot - top hwndDC = win32gui.GetWindowDC(hwnd) mfcDC = win32ui.CreateDCFromHandle(hwndDC) saveDC = mfcDC.CreateCompatibleDC() saveBitMap = win32ui.CreateBitmap() saveBitMap.CreateCompatibleBitmap(mfcDC, w, h) saveDC.SelectObject(saveBitMap) # Change the line below depending on whether you want the whole window # or just the client area. #result = windll.user32.PrintWindow(hwnd, saveDC.GetSafeHdc(), 1) result = windll.user32.PrintWindow(hwnd, saveDC.GetSafeHdc(), 0) bmpinfo = saveBitMap.GetInfo() bmpstr = saveBitMap.GetBitmapBits(True) im = Image.frombuffer( 'RGB', (bmpinfo['bmWidth'], bmpinfo['bmHeight']), bmpstr, 'raw', 'BGRX', 0, 1) win32gui.DeleteObject(saveBitMap.GetHandle()) saveDC.DeleteDC() mfcDC.DeleteDC() win32gui.ReleaseDC(hwnd, hwndDC) if result == 1: #PrintWindow Succeeded im.save("playing.png")
Example #17
Source File: shell_view.py From ironpython2 with Apache License 2.0 | 4 votes |
def _CreateChildWindow(self, prev): # Creates the list view window. assert self.hwnd_child is None, "already have a window" assert self.cur_foldersettings is not None, "no settings" style = win32con.WS_CHILD | win32con.WS_VISIBLE | win32con.WS_BORDER | \ commctrl.LVS_SHAREIMAGELISTS | commctrl.LVS_EDITLABELS view_mode, view_flags = self.cur_foldersettings if view_mode==shellcon.FVM_ICON: style |= commctrl.LVS_ICON | commctrl.LVS_AUTOARRANGE elif view_mode==shellcon.FVM_SMALLICON: style |= commctrl.LVS_SMALLICON | commctrl.LVS_AUTOARRANGE elif view_mode==shellcon.FVM_LIST: style |= commctrl.LVS_LIST | commctrl.LVS_AUTOARRANGE elif view_mode==shellcon.FVM_DETAILS: style |= commctrl.LVS_REPORT | commctrl.LVS_AUTOARRANGE else: # XP 'thumbnails' etc view_mode = shellcon.FVM_DETAILS # Default to 'report' style |= commctrl.LVS_REPORT | commctrl.LVS_AUTOARRANGE for f_flag, l_flag in [ (shellcon.FWF_SINGLESEL, commctrl.LVS_SINGLESEL), (shellcon.FWF_ALIGNLEFT, commctrl.LVS_ALIGNLEFT), (shellcon.FWF_SHOWSELALWAYS, commctrl.LVS_SHOWSELALWAYS), ]: if view_flags & f_flag: style |= l_flag self.hwnd_child = win32gui.CreateWindowEx( win32con.WS_EX_CLIENTEDGE, "SysListView32", None, style, 0, 0, 0, 0, self.hwnd, 1000, 0, None) cr = win32gui.GetClientRect(self.hwnd) win32gui.MoveWindow(self.hwnd_child, 0, 0, cr[2]-cr[0], cr[3]-cr[1], True) # Setup the columns for the view. lvc, extras = win32gui_struct.PackLVCOLUMN(fmt=commctrl.LVCFMT_LEFT, subItem=1, text='Name', cx=300) win32gui.SendMessage(self.hwnd_child, commctrl.LVM_INSERTCOLUMN, 0, lvc) lvc, extras = win32gui_struct.PackLVCOLUMN(fmt=commctrl.LVCFMT_RIGHT, subItem=1, text='Exists', cx=50) win32gui.SendMessage(self.hwnd_child, commctrl.LVM_INSERTCOLUMN, 1, lvc) # and fill it with the content self.Refresh()