Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Use Python Win32gui Draw Something And Get Info On Some Window Specialized By Points

DZone's Guide to

Use Python Win32gui Draw Something And Get Info On Some Window Specialized By Points

·
Free Resource

import win32gui
from re import match
def draw_line():
    print 'x1,y1,x2,y2?'
    s=raw_input()
    if match('\d+,\d+,\d+,\d+',s):
        x1,y1,x2,y2=s.split(',')
        x1=int(x1)
        y1=int(y1)
        x2=int(x2)
        y2=int(y2)
        hwnd=win32gui.WindowFromPoint((x1,y1))
        hdc=win32gui.GetDC(hwnd)
        x1c,y1c=win32gui.ScreenToClient(hwnd,(x1,y1))
        x2c,y2c=win32gui.ScreenToClient(hwnd,(x2,y2))
        win32gui.MoveToEx(hdc,x1c,y1c)
        win32gui.LineTo(hdc,x2c,y2c)
        win32gui.ReleaseDC(hwnd,hdc)
    main()
def draw_point():
    print 'x,y,color?'
    s=raw_input()
    if match('\d+,\d+,\d+',s):
        x,y,color=s.split(',')
        x=int(x)
        y=int(y)
        color=int(color)
        hwnd=win32gui.WindowFromPoint((x,y))
        hdc=win32gui.GetDC(hwnd)
        x1,y1=win32gui.ScreenToClient(hwnd,(x,y))
        win32gui.SetPixel(hdc,x1,y1,color)
        win32gui.ReleaseDC(hwnd,hdc)
    main()
def get_pixel_col():
    print 'x,y?'
    s=raw_input()
    if match('\d+,\d+',s):
        x,y=s.split(',')
        x=int(x)
        y=int(y)
        hwnd=win32gui.WindowFromPoint((x,y))
        hdc=win32gui.GetDC(hwnd)
        x1,y1=win32gui.ScreenToClient(hwnd,(x,y))
        color=win32gui.GetPixel(hdc,x1,y1)
        win32gui.ReleaseDC(hwnd,hdc)
        print color
    main()
def get_current_pos_info():
    x,y=win32gui.GetCursorPos()
    hwnd=win32gui.WindowFromPoint((x,y))
    hdc=win32gui.GetDC(hwnd)
    x1,y1=win32gui.ScreenToClient(hwnd,(x,y))
    print x,y,win32gui.GetPixel(hdc,x1,y1)
    win32gui.ReleaseDC(hwnd,hdc)
    main()
def main():
    print ('''l. draw line
p. draw point
g. get pixel color
c. get current mouse position's info''')
    s=raw_input()
    if s.lower()=='l':
        draw_line()
    if s.lower()=='p':
        draw_point()
    if s.lower()=='g':
        get_pixel_col()
    if s.lower()=='c':
        get_current_pos_info()
main()
Topics:

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}