gpt4 book ai didi

c++ - Hook WM_SETTEXT 后更改字符串

转载 作者:行者123 更新时间:2023-11-28 08:30:55 35 4
gpt4 key购买 nike

我已经使用 WH_CALLWNDPROC 在 WM_SETTEXT 消息上设置了一个钩子(Hook)。

在钩子(Hook)程序中

CWPSTRUCT* info = (CWPSTRUCT*) lParam;
wchar_t *wsz = NULL;
switch(info->message)
{
case WM_SETTEXT:
wsz = (wchar_t *) info->lParam;
//info->lParam = (LPARAM) L"Hello";
//SendMessage(info->hWnd,WM_SETTEXT,0,(LPARAM)L"HEllo");
//SetWindowText(info->hWnd,L"Hello");


break;
}

是否可以像上面的代码那样更改字符串。我尝试使用像

这样的 API
SendMessage(info->hWnd,WM_SETTEXT,0,(LPARAM)L"HEllo");
SetWindowText(info->hWnd,L"Hello");

但它们都不起作用。这里的想法是 Hook WM_SETTEXT 消息并在它到达目标窗口之前更改字符串。

最佳答案

不,WH_CALLWNDPROC 不允许您修改消息,CallWndProc 的文档直接说明了这一点。

WH_GETMESSAGE 允许您修改消息。请参阅 GetMsgProc 的文档.但是,这可能无法满足您的需求,因为它仅使用 GetMessage() 或 PeekMessage() 检索并发送消息直接调用 WndProc 而不是使用消息队列。

做你想做的事情的方法是使用 WH_CBT Hook 并为 HCBT_CREATEWND 事件列出。然后在创建窗口时对其进行子类化并处理 WM_SETTEXT 消息。

关于c++ - Hook WM_SETTEXT 后更改字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2163899/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com