DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world
Use Python Win32gui Draw Something And Get Info On Some Window Specialized By Points
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()




