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

时间:2011-08-01 19:56:34

标签: python winapi colors sendmessage

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

一般的想法是:

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

格式为CHARFORMAT

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

这在python中是否可行?

1 个答案:

答案 0 :(得分:1)

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

这意味着您唯一的解决方案是使用WriteProcessMemoryCHARFORMAT缓冲区写入目标进程中分配的内存块中。这很可能,但非常麻烦,特别是在Python中。

如果我是你,我会考虑替代解决你的问题。