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中阅读有关按位操作的更多信息。

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • [MAC] 编译安装和测试《魔兽世界》模拟服务端 TrinityCore

    2019独角兽企业重金招聘Python工程师标准>>>…

    2022年4月17日
  • Java程序设计(高级及专题)- JDBC「建议收藏」

    Java程序设计(高级及专题)- JDBC「建议收藏」Java程序设计(高级及专题)- JDBC

    2022年4月22日
  • HSQL 学习笔记

    HSQL 学习笔记HSQL学习笔记1.    hsql 学习1.1.    学习目的本文档是针对hSQL 数据库方面的基础学习,为了使项目组成员能够达到使用hSQL 数据库的目的。1.2.    培训对象开发人员1.3.    常用词及符号说明常用词:hsql:一种免费的跨平台的数据库系统E:\hsqldb:表示是在dos 命令窗口下面1.4.    参考信息doc

    2022年9月22日
  • Java 如何抛出异常、自定义异常[通俗易懂]

    一、异常的抛出1、定义:一个方法不处理这个异常,而是调用层次向上传递,谁调用这个方法,这个异常就由谁来处理。2、throw:将产生的异常抛出(强调的是动作),抛出的既可以是异常的引用,也可以是异常对象。(位置:方法体内)3、throws:如果一个方法可能会出现异常,但没有能力处理这种异常,可以在方法声明处用throws子句来声明抛出异常。用它修饰的方法向调用者表明该方法可能会抛出异

    2022年4月14日
  • Oracle 11g安装步骤(超详细)

    Oracle 11g安装步骤(超详细)今天电脑装了win10,需要重新装oracle,这边记录一下重装过程,避免下次浪费时间。1、oracle下载官方下地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html注意Oracle分成两个文件,下载完后,将两个文件解压到同一目录下即可。路径名称中,最好不要出现中文,也不…

    2022年7月25日
  • java 输出_java怎么输出

    java 输出_java怎么输出展开全部java控制台输出由print()和println()来完成最为简单。这两种方法由rintStream(System.out引用32313133353236313431303231363533e78988e69d8331333365643661的对象类型)定义。尽管System.out是一个字节流,用它作为简单程序的输出是可行的。因为PrintStream是从OutputStrea…

    2022年7月7日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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