前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python win32api.shellexecute_socket send函数

python win32api.shellexecute_socket send函数

作者头像
全栈程序员站长
发布2022-11-10 16:00:52
6010
发布2022-11-10 16:00:52
举报
文章被收录于专栏:全栈程序员必看

记事本的主窗口中还有一个窗口,您需要向它发送消息。您可以使用Microsoft Spy++工具查看此“隐藏”窗口,也可以获取所有子窗口,如下所示:def callback(hwnd, hwnds):

if win32gui.IsWindowVisible(hwnd) and win32gui.IsWindowEnabled(hwnd):

hwnds[win32gui.GetClassName(hwnd)] = hwnd

return True

hwnds = {}

win32gui.EnumChildWindows(whndl, callback, hwnds)

我们正在查找的窗口具有“Edit”类名,它是记事本唯一启用且可见的子窗口。所以你的代码是这样工作的:import win32api, win32con, win32gui, win32ui, win32service, os, time

def f_click(pycwnd):

x=300

y=300

lParam = y <<15 | x

pycwnd.SendMessage(win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, lParam);

pycwnd.SendMessage(win32con.WM_LBUTTONUP, 0, lParam);

def get_whndl():

whndl = win32gui.FindWindowEx(0, 0, None, ‘NB.txt – Notepad’)

return whndl

def make_pycwnd(hwnd):

PyCWnd = win32ui.CreateWindowFromHandle(hwnd)

return PyCWnd

def send_input_hax(pycwnd, msg):

f_click(pycwnd)

for c in msg:

if c == “\n”:

pycwnd.SendMessage(win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)

pycwnd.SendMessage(win32con.WM_KEYUP, win32con.VK_RETURN, 0)

else:

pycwnd.SendMessage(win32con.WM_CHAR, ord(c), 0)

pycwnd.UpdateWindow()

whndl = get_whndl()

def callback(hwnd, hwnds):

if win32gui.IsWindowVisible(hwnd) and win32gui.IsWindowEnabled(hwnd):

hwnds[win32gui.GetClassName(hwnd)] = hwnd

return True

hwnds = {}

win32gui.EnumChildWindows(whndl, callback, hwnds)

whndl = hwnds[‘Edit’]

pycwnd = make_pycwnd(whndl)

msg = “It works !\n”

send_input_hax(pycwnd,msg)

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

>>> y = 300

>>> lParam = y << 15 | x

>>> lParam & 0x7FFF # x

0: 300

>>> lParam >> 15 # y

1: 300

您可以在Wikipedia和Python Wiki中阅读有关按位操作的更多信息。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183175.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档