Use Python Win32gui Draw Something And Get Info On Some Window Specialized By Points
Join the DZone community and get the full member experience.
Join For Free
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()
Python (language)
Opinions expressed by DZone contributors are their own.
Comments