2024-10-02 14:17:32 发布
网友
基本上,我想用python将彩色文本写入另一个应用程序的textbox窗口。在
总体思路是:
win32gui.SendMessage( hwnd, EM_SETCHARFORMAT, SCF_SELECTION, format);
其中format是CHARFORMAT。在
我的问题是EM_SETCHARFORMAT和SCF_选择没有包含在win32con库中(我想),我不确定如何创建CHARFORMAT对象。在
在python中这是可能的吗?在
事实证明,这很难实现。问题是EM_SETCHARFORMAT通过引用传递一个结构。EM_SETCHARFORMAT不是常见的Windows消息之一,它在WM_USER范围内。lParam指向的内存没有跨进程边界进行封送。消息的接收方接收到一个指向内存的指针,该指针只在发送方的进程中有意义。在
EM_SETCHARFORMAT
WM_USER
lParam
这意味着您唯一的解决方案是使用WriteProcessMemory将CHARFORMAT缓冲区写入目标进程中分配的内存块中。这是所有可能的,但相当麻烦,尤其是在Python中。在
WriteProcessMemory
CHARFORMAT
如果我是你,我会考虑另一种解决你问题的办法。在
事实证明,这很难实现。问题是
EM_SETCHARFORMAT
通过引用传递一个结构。EM_SETCHARFORMAT
不是常见的Windows消息之一,它在WM_USER
范围内。lParam
指向的内存没有跨进程边界进行封送。消息的接收方接收到一个指向内存的指针,该指针只在发送方的进程中有意义。在这意味着您唯一的解决方案是使用
WriteProcessMemory
将CHARFORMAT
缓冲区写入目标进程中分配的内存块中。这是所有可能的,但相当麻烦,尤其是在Python中。在如果我是你,我会考虑另一种解决你问题的办法。在
相关问题 更多 >
编程相关推荐