我想使用Detours 3.0来挂钩FindWindowA和FindWindowW。这两个函数成功挂钩,我可以看到请求的类和窗口标题。但是,当我尝试访问任何字有些像Hook FindWindow
if (lpWindowName[0] == buf)
或类似的东西:
wcscpy(buf, lpWindowName);
memcpy(buf, lpWindowName, sizeof(lpWindowName));
我得到错误(钩状程序exeption)。我不能要这个字符串的任何访问,但我能读懂它使用
http://s017.radikal.ru/i421/1201/73/54fa9046a46c.png我不明白什么......有错误码。我使用此代码:
int filter(DWORD code, struct _EXCEPTION_POINTERS *ep) {
char buf[MAX_PATH] = {0};
sprintf(buf,"Exception code: %d", code);
MessageBox(NULL,buf,"Error",MB_OK);
return EXCEPTION_EXECUTE_HANDLER;
}
HWND __stdcall Mine_FindWindowW(LPCWSTR a0,
LPCWSTR a1)
{
__try
{
if (a1[0] == L'a')
return NULL;
}
__except(filter(GetExceptionCode(), GetExceptionInformation())){
}
HWND rv = 0;
__try {
rv = Real_FindWindowW(a0, a1);
} __finally {
};
return rv;
}
而且字符串没有损坏。所有的工作......为什么不能检查或直接访问这两个参数?
这将是一个杀手捅。您必须发送WM_SETTEXT消息。 –
WM_SETTEXT? o_O – user922871