用Python钩住窗口消息

2024-05-14 13:00:14 发布

您现在位置:Python中文网/ 问答频道 /正文

正如您从标题中看到的,我想用Python连接到窗口消息(例如WM_LBUTTONDOWN、WM_DROPFILES等)

我目前正在使用3DS Max,它有钩子支持

经过一些研究,我发现了一些关键字:SetWindowsHookExA,这个函数似乎与我想要做的类似/相同

HHOOK SetWindowsHookExA(
  int       idHook,
  HOOKPROC  lpfn,
  HINSTANCE hmod,
  DWORD     dwThreadId
);
idHook = 'WH_CALLWNDPROC' or 'WH_GETMESSAGE'
dwThreadId = //3DS Max's Thread Id

在我的例子中,hmod是一个用C/C++编译的Dll,它重写了WndProc函数(如果我理解正确的话)

但是我需要写一个DLL,不幸的是,我不能用Python来做这件事 (maybe I can但我觉得这不是正确的方式)

到目前为止,我已经解释了我的发现和我认为的解决方案。我要做的是,当文件被放入外部程序的窗口时,用我的函数imk_覆盖原始行为。
1:例如:打印(“文件已删除”)
2:这是我的3ds max

最后,我似乎还可以将max window子类化,并收听3DS max的WM_DROPFILES(example here


Tags: 文件函数消息标题max钩子wmwh

热门问题