All GUI toolkits can handle the "click here" part. Which one are you using ?
to apply water marks, use PIL:
http://www.pythonware.com/products/pil
</F>
If you use TkInter, use also these:
http://www.pythonware.com/library/tkinter/introduction/index.htm
http://infohost.nmt.edu/tcc/help/pubs/tkinter/
For mouse click position, this might be helpful:
http://www.pythonware.com/library/tkinter/introduction/events-and-bindings.htm
Won't be easy - a toolkit (like tkinter) will only cpature your mous
events that are directed towards it's own windows. You might be able to
convince your program to collect mouse-events outside for a short period
of time - like snapshot programs do - but that will reqiure pretty
complicated, OS-dependant coding. Certainly way more complicated than
loading an image using tkinter. Better tell us what's giving you a hard
time there.
Diez
That is my exact problem. I want to have the mouse event captured from
another application window. In this case an image window opened in Paint
Shop Pro that by the way uses Python to make scripts. I would like to be
able to click on the image and get the X,Y positions. I have been able to
get the X,Y from Tkinter own window as you say. Once I have those positions
I can use them in a Paint Shop Pro script.
Thanks for your reply. Do you have any advise as to how I can do what I am
trying or is it, in a practical matter, impossible.
S
"Diez B. Roggisch" <de...@nospam.web.de> wrote in message
news:3tds08F...@uni-berlin.de...
As I said - it certainly is doable. But I fear not in tkinter "as is"
(you can use tk still for your _own_ gui), and not without deeper
knowledge of the windows event system. Then mark hammond's win32
extensions are a starting point. And you should search for example code
on MSDN or something like that (obviously _not_ in python), to get a
starting point.
Regards,
Diez
PUL = POINTER(c_ulong)
class KeyBdInput(Structure):
_fields_ = [("wVk", c_ushort),
("wScan", c_ushort),
("dwFlags", c_ulong),
("time", c_ulong),
("dwExtraInfo", PUL)]
class HardwareInput(Structure):
_fields_ = [("uMsg", c_ulong),
("wParamL", c_short),
("wParamH", c_ushort)]
class MouseInput(Structure):
_fields_ = [("dx", c_long),
("dy", c_long),
("mouseData", c_ulong),
("dwFlags", c_ulong),
("time",c_ulong),
("dwExtraInfo", PUL)]
class Input_I(Union):
_fields_ = [("ki", KeyBdInput),
("mi", MouseInput),
("hi", HardwareInput)]
class Input(Structure):
_fields_ = [("type", c_ulong),
("ii", Input_I)]
class POINT(Structure):
_fields_ = [("x", c_ulong),
("y", c_ulong)]
def Click(x,y):
orig = POINT()
windll.user32.GetCursorPos(byref(orig))
windll.user32.SetCursorPos(x,y)
FInputs = Input * 2
extra = c_ulong(0)
ii_ = Input_I()
ii_.mi = MouseInput( 0, 0, 0, 2, 0, pointer(extra) )
ii2_ = Input_I()
ii2_.mi = MouseInput( 0, 0, 0, 4, 0, pointer(extra) )
x = FInputs( ( 0, ii_ ), ( 0, ii2_ ) )
windll.user32.SendInput(2, pointer(x), sizeof(x[0]))
return orig.x, orig.y