`
peikona
  • 浏览: 50751 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

Python使用win32api系统钩子

阅读更多

   有这样一个需求:客户的测试程序扫描一个产品的条形码,但是它没有和系统验证的功能(就是从系统里面检查是否可以在此测试位进行测试。比如说有10个测试位,这是第4个,那么就必须前面的3个测试位全部pass后,第4个测试位才能测试,这就是所说的验证。当然还有其他的情况,比如每个产品同一测试位只能测2次,再测第3次系统就应该提示要去维修了)。
   我们碰到的问题是客户给的程序没有验证这一块,让客户改程序也不是很好办。唉,谁让现在的客户那么牛。
   于是我们看看能不能自己搞定。思路是:我们添加一个程序先接收产品的条码,和系统验证之后如果能继续测试,就把条码再写到客户程序的条码文本框里,如果流程错误,提示错误,让操作员修正。
   难点是我们怎么找到客户程序的条码文本框。于是从网上搜索(我们用的是Python,需要先安装pywin32模块)win32api的用法,还好找到了一点,下面给个例子说明一下(在python shell里):
一, 首先import win32gui, win32con
二, 使用win32gui.FindWindow找到目标程序:
win = win32gui.FindWindow(None, 'User Login')
三, 使用win32gui.FindWindowEx找到目标文本框:
tid = win32gui.FindWindowEx(win, None, 'Edit', None)
四, 使用win32gui.SendMessage发送文本到目标文本框:
win32gui.SendMessage(tid, win32con.WM_SETTEXT, None, 'hello')

当然了,可以继续找到下一个文本框:
username = win32gui.FindWindowEx(win, tid, 'Edit', None)

只是还没找到给字符串加回车的功能,在记事本里可以实现,不知道为什么在这里不行。如果各位大侠有知道的希望不吝赐教。
目前先研究到这里。以防忘记所以记在这里,以备以后使用。
更新:已经找到发送回车的方法:
win32gui.SendMessage(tid, win32con.WM_SETTEXT, None, ‘hello')
win32gui.PostMessage(tid, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
win32gui.PostMessage(tid, win32con.WM_KEYUP, win32con.VK_RETURN, 0)

 

  • 大小: 24.8 KB
  • 大小: 28.1 KB
  • 大小: 30.1 KB
分享到:
评论
1 楼 hamo2008 2009-07-02  
字符串中的回车时 换行+回车 (\r\n)

相关推荐

    python3.6-win32api库

    Python 3.6-win32api库是针对Python 3.6版本的一个特定扩展库,主要为Windows平台提供系统级别的API接口。这个库通常对于开发需要与Windows操作系统深度交互的应用程序,比如桌面应用或者需要执行系统操作的脚本,...

    api钩子的实现--用Detours拦截Win32API函数

    api钩子的实现--用Detours拦截Win32API函数

    pywin32-219.win32-py3.4.zip

    PyWin32是一个Python扩展模块,它提供了对Microsoft Windows操作系统API的访问,使得Python程序员能够轻松地进行系统级别的编程。PyWin32-219.win32-py3.4.zip这个压缩包是为了兼容Python 3.4版本而特别构建的,因为...

    Python库 | frida-12.2.20-py2.7-win32.egg

    **Python库 | frida-12.2.20-py2.7-win32.egg** `frida` 是一个强大的动态代码插桩工具,主要用于逆向工程、调试和安全分析。它允许用户在运行时对应用程序进行交互式脚本编程,提供了灵活的JavaScript API来挂钩和...

    svn-python-1.5.2.win32-py2.5.zip

    Python接口,如"svn-python-1.5.2.win32-py2.5.zip"中包含的,是用于与SVN进行交互的一种方式,它为Python程序员提供了方便的API来实现各种SVN操作。 Python的SVN库,通常被称为`svnhook`或`pysvn`,是用Python编写...

    Python库 | mercurial-6.0-cp310-cp310-win32.whl

    标题中的“mercurial-6.0-cp310-cp310-win32.whl”是指Mercurial库的一个特定版本,版本号为6.0,针对Python 3.10编译,并且适用于Windows 32位操作系统。Mercurial是一款分布式版本控制系统,用于跟踪代码更改,它...

    PyPI 官网下载 | PyHook3-1.6.1-cp35-win32.whl

    描述中的"PyHook3-1.6.1-cp35-win32.whl"是该库的特定版本,适用于Python 3.5(cp35)且为32位(win32)系统的预编译二进制文件,即wheel格式的包。 Wheel是一种Python的包分发格式,它优化了安装过程,使得Python...

    pysnoop:与 Python (win32) 挂钩的 API

    PySnoop通过使用Windows API函数,如`CreateRemoteThread`和`VirtualAllocEx`,在目标进程中创建一个Python环境。它利用Python的动态性,使得可以在运行时动态地修改目标进程的行为。API挂钩是通过拦截API调用,然后...

    pyHook-1.5.1.win32-py2.7

    这个版本“1.5.1”是该库的一个稳定版本,而“win32-py2.7”表明它是为32位Windows系统设计,并且兼容Python 2.7版本。 在描述中,“pyHook-1.5.1.win32-py2.7”同样是强调了库的名称、版本以及它所支持的平台和...

    注册全局热键RegisterHotKey

    一个注册全局热键的例子,利用API函数RegisterHotKey注册热键,使用简单方便,但是在一个软件系统中,热键肯定是需要修改的,而且还有其他需要输入的界面,单个键如A若被注册为热键...若需要单键热键建议使用键盘钩子。

    sendkeys.zip

    `pyhook3`是Python中的一个库,它允许我们创建全局钩子来监听系统的键盘和鼠标事件。这个库是`pyhook`的一个更新版本,专门为Python 3设计,因为原版`pyhook`只支持Python 2。通过`pyhook3`,我们可以在程序运行时...

    qHooK:qHooK 是一个非常简单的 Python 脚本(依赖于 pydbg),它在任何进程中挂钩用户定义的 Win32 API,然后在进程运行时进行监控,最后准备一个包含各种有趣信息的 CSV 报告,这可以帮助逆向工程师追踪分析未知的漏洞利用样本外壳代码

    钩子qHooK 是一个非常简单直接的 python 脚本(依赖于 pydbg),它在任何进程中挂钩用户定义的 Win32 API,然后在进程运行时进行监控,最后准备一个包含各种有趣信息的 CSV 报告,这可以帮助逆向工程师追踪/分析未知...

    pyhook win64

    "pyhook win64"是一个专门针对64位操作系统设计的Python库,主要用来处理Windows系统的键盘和鼠标事件。PyHook允许程序员注册全局钩子,从而监控系统中的所有键盘和鼠标活动,这对于开发某些需要此类功能的应用程序...

    Python库 | frida-12.5.3-py2.7-win-amd64.egg

    `frida-12.5.3-py2.7-win-amd64.egg` 是一个针对Python 2.7版本、适用于Windows 64位系统的Frida库的特定版本。Frida是一个强大的动态代码插桩工具,它允许开发者在运行时对应用程序进行交互式脚本编写,从而实现...

    Python库 | frida-10.6.41-py2.7-win-amd64.egg

    5. **执行和控制**: 通过Frida的Python API,你可以控制插桩脚本的执行,如钩子函数的触发、数据的捕获等。 6. **结果处理**: 处理由插桩脚本收集的数据,例如输出到控制台、保存到文件或者进一步分析。 **应用...

    屏幕截图(全局键盘钩子示例)

    实现全局键盘钩子,主要涉及Win32 API中的`SetWindowsHookEx`函数,它需要指定一个钩子类型(在这种情况下是`WH_KEYBOARD_LL`,表示低级键盘钩子)以及一个回调函数,该函数将在键盘事件发生时被调用。 标题中提到...

    使用Python打造一款间谍程序的流程分析

    总结来说,使用Python打造间谍程序的过程涉及到对Win32API的深入理解,熟练运用`ctypes`库进行系统调用,以及掌握Hook技术的基本原理。在实践中,这种技能可用于系统监控、调试或其他合法目的,但需谨慎处理以确保...

    Pyhook2.7.rar

    其次,pywin32是Python对Windows API的接口,提供了对Windows系统服务的访问。这个库对于pyHook来说是必不可少的,因为pyHook依赖于pywin32来与Windows操作系统进行交互,如注册和处理系统级钩子。pywin32-217.win32...

    pyHook-1.5.1

    这个库是基于pywin32库构建的,pywin32是Python对Microsoft Windows API的封装,使得Python开发者可以方便地访问和操作Windows系统功能。 **1. pyHook库的核心功能** pyHook的主要功能在于监听和处理全局键盘和鼠标...

    SQLAlchemy-2.0.0-cp39-cp39-win32.whl

    SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)...SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。

Global site tag (gtag.js) - Google Analytics