如何使用 python 和 win32 api 将彩色文本写入文本框?

2024-04-06

基本上我想使用 python 将彩色文本写入另一个应用程序的文本框窗口。

总体思路是:

win32gui.SendMessage( hwnd, EM_SETCHARFORMAT, SCF_SELECTION, format);

其中格式是字符格式 http://msdn.microsoft.com/en-us/library/bb787881(VS.85).aspx.

我的问题是 EM_SETCHARFORMAT 和 SCF_SELECTION 未包含在 win32con 库中(我认为),并且我不确定如何创建 CHARFORMAT 对象。

这在Python中可能吗?


事实证明,这是很难实现的。问题是EM_SETCHARFORMAT通过引用传递结构。这EM_SETCHARFORMAT不是常见的 Windows 消息之一,它位于WM_USER范围。所指向的内存lParam没有跨进程边界进行编组。消息的接收者收到一个指向内存的指针,该指针仅在发送者的进程中有意义。

这意味着您唯一的解决方案是使用WriteProcessMemory写出CHARFORMATbuffer 到目标进程中分配的内存块中。这都是可能的,但相当麻烦,尤其是在 Python 中。

如果我是你,我会考虑使用替代解决方案来解决你的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 python 和 win32 api 将彩色文本写入文本框? 的相关文章

随机推荐