python ctypes 回调函数_Python ctypes:从不调用SetWindowsHookEx回调函数

我正在尝试用

Python编写一个程序,该程序知道何时显示警报框/对话框.它正在处理多个监视器,我希望它在任务栏图标闪烁,弹出错误/通知等时在辅助监视器上显示可视化.

我甚至幸运地找到了一个从Python访问SetWindowsHookEx函数的例子. (这个特定的例子使用鼠标信号,但我可以改变常量来监听不同的消息).

http://www.python-forum.org/pythonforum/viewtopic.php?f=2&t=11154

但是,上面的例子不起作用.无论我点击鼠标,都不会调用回调函数,鼠标中键不会导致程序退出.

这个例子来自2009年(pre windows 7?),但我不知道这是不是问题.

所以,我的问题是,任何人都可以找到代码工作的原因,或者2.告诉我另一种方法来实现我正在做的事情(最好是在Python中,尽管如果必要的话我会去其他语言).

编辑:是否有可能做我想要的WMI?我不太了解WMI,但我知道它确实有很好的Python界面.

最佳答案 除了WH_KEYBOARD_LL和WH_MOUSE_LL之外,Windows挂钩必须在Windows注入每个应用程序进程的DLL中实现.因此,您不能简单地在程序中实现回调并期望Windows运行它.

我可以想出两种方法来解决这个问题:

>在C或C中编写实现钩子过程的DLL,并通过某种形式的进程间通信通知主程序.然后在主程序中加载此DLL并将其模块句柄和该DLL中实现的钩子过程传递给SetWindowsHookEx.

> SetWinEventHook函数可以为您提供所需的内容. WinEvent挂钩可以在主程序中实现.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值