首页 > 编程知识 正文

qpython,sendmessage用法

时间:2023-05-04 14:49:53 阅读:30498 作者:3365

的主窗口中也有需要发送消息的窗口。 可以使用Microsoft Spy工具显示此“隐藏”窗口,也可以检索所有子窗口,如下所示: defcallback(HWND,hwnds ) :

if win32 GUI.iswindowvisible (hwnd ) and win32 GUI.iswindowenabled (hwnd ) :

hwnds [ win32 GUI.getclass name (hwnd ) ]=hwnd

返回真

hwnds={}

win32 GUI.enumchildwindows (whn dl,callback,hwnds )。

我们要查找的窗口包含" Edit "类名。 这是记事本中启用的,是唯一可以显示的子窗口。 所以你的代码是这样工作的。 导入win32ui API、win32con、win32gui、win32ui、win32服务、操作系统、time

deff_click(pycwnd ) :

x=300

y=300

lParam=y 15 | x

py cwnd.sendmessage (win32 con.WM _ lbuttondown,win32con.MK_LBUTTON,lParam );

py cwnd.sendmessage (win32 con.WM _ lbuttonup,0,lParam );

def get_whndl () :

whn dl=win32 GUI.findwindowex (0,0,None,' NB.txt - Notepad ' )

return whndl

efmake_pycwnd(hwnd ) :

py cwnd=win32 ui.createwindowfromhandle (hwnd ) ) ) )。

return PyCWnd

efsend_input_hax(pycwnd,msg ) :

f_click(pycwnd ) )。

for c in msg:

if c=='n':

py cwnd.sendmessage (win32 con.WM _ keydown,win32con.VK_RETURN,0 ) ) )。

py cwnd.sendmessage (win32 con.WM _ keyup,win32con.VK_RETURN,0 ) ) ) )。

else:

py cwnd.sendmessage (win32 con.WM _ char,ord(c ),0 ) ) ) ) ) ) )

pycwnd.UpdateWindow (

whndl=get_whndl ()

defcallback(HWND,hwnds ) :

if win32 GUI.iswindowvisible (hwnd ) and win32 GUI.iswindowenabled (hwnd ) :

hwnds [ win32 GUI.getclass name (hwnd ) ]=hwnd

返回真

hwnds={}

win32 GUI.enumchildwindows (whn dl,callback,hwnds )。

whndl=hwnds['Edit']

pycwnd=make_pycwnd(whndl )

MSg=' it工作! n '

send_input_hax(pycwnd,msg ) )。

lParam是int。 我们在这里看到的技巧是允许在一个参数中传递多个值。 假设需要将两个数字传递给只接受一个参数的函数。 可以将它们作为两位数发送,并在函数内进行分割。 同样,位移位(lt; lt; 和按位或(|)的操作也可以在客户情况下翻转。 x=300

y=300

lParam=y 15 | x

lParam0x7FFF # x

0: 300

lParam 15 # y

1: 300

有关逐位操作的详细信息,请参见维基和Python Wiki。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。