python win32api.shellexecute_socket send函数

python win32api.shellexecute_socket send函数记事本的主窗口中还有一个窗口,您需要向它发送消息。您可以使用MicrosoftSpy++工具查看此“隐藏”窗口,也可以获取所有子窗口,如下所示:defcallback(hwnd,hwnds):ifwin32gui.IsWindowVisible(hwnd)andwin32gui.IsWindowEnabled(hwnd):hwnds[win32gui.GetClassName(hwnd…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

记事本的主窗口中还有一个窗口,您需要向它发送消息。您可以使用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中阅读有关按位操作的更多信息。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • python中的set(),zip()以及map()函数

    python中的set(),zip()以及map()函数set、zip和map函数均为python的内置函数。(1)set()用法:set(interable)用来创建一个无序不重复元素的集合。可以对其进行集合的一系列操作,例如求差集、并集和补集,利

  • jediscluster工具类_cannot get jedis connection

    jediscluster工具类_cannot get jedis connectionRedis集群是没法执行批量操作命令的,如mget,pipeline等。这是因为redis将集群划分为16383个哈希槽,不同的key会划分到不同的槽中。原生JedisCluster对批量操作的限制是mgetmset必须在一个槽;四种批量优化的方法1、串行mget在for循环中执行一条条的get; 需要n次网络时间;2、串行IO在客户端对所有key做CR…

  • mysql和sqlyog安装_MySQL与sqlyog安装教程图文详解[通俗易懂]

    mysql和sqlyog安装_MySQL与sqlyog安装教程图文详解[通俗易懂]1.MySQL1.1MySQL安装mysql-5.5.27-winx64下载(1)欢迎安装(2)协议接受(3)安装模式选择Typical:表示一般常用的组件都会被安装,默认情况下安装到C:ProgramFilesMySQLMySQLServer5.5下。Complete:表示会安装所有的组件。此套件会占用比较大的磁盘空间。Custom:表示用户可以选择要安装的组件,可以更改默认按照的路径…

  • PHP验证二代身份证

    PHP验证二代身份证functionvalidation_filter_id_card($id_card){ if(strlen($id_card)==18){ returnidcard_checksum18($id_card); }elseif((strlen($id_card)==15)){ $id_card=idcard_15to18($id_card); return

  • 如何使用python读取txt文件中的数据

    如何使用python读取txt文件中的数据参考:如何使用python读取文本文件中的数字?python读取txt各个数字python读取文本文件内容转化为python的listpython:如何将txt文件中的数值数据读入到list中,且在list中存在的格式为float类型或者其他数值类型python.txt文件读取及数据处理总结利用Python读取txt文档的方法Python之读取TXT文件的三种方法python…

  • pycharm-professional-2021.12.13激活【2021.10最新】

    (pycharm-professional-2021.12.13激活)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html23EQQJJI0G-eyJsaWN…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号