SetWindowLongPtrA 崩溃问题
SetWindowLongPtrA (全局.窗口句柄, -4, 取静态方法地址 (NewLong))64位程序 用此方法 程序直接崩溃 我写的不对吗易语言 用 SetWindowLongA (g_窗口句柄, -4, 到整数 (&NewLong))一切正常
听说火山都是用W的。你试试W的崩溃不 雪很冷 发表于 2024-9-14 16:21
听说火山都是用W的。你试试W的崩溃不
崩溃了......
那就不清楚了。还是请大佬来帮帮你 <火山程序 类型 = "通常" 版本 = 1 />
方法 启动方法 <公开 类型 = 整数>
{
主窗口对象.创建主窗口 ()
全局.进程ID = 进程_取自进程ID_GetCurrentProcessId ()
调试输出 ("进程ID", 全局.进程ID)
全局.窗口句柄 = 窗口操作类.进程_ID取窗口句柄 (全局.进程ID, , , , )
调试输出 ("全局.窗口句柄", 全局.窗口句柄)
全局.hook句柄 = SetWindowLongPtrW (全局.窗口句柄, -4, 取静态方法地址 (NewLong))
调试输出 ("全局.hook句柄", 全局.hook句柄)
变量 要转换的字节集 <类型 = 字节集类>
变量 结果指针 <类型 = 变整数>
要转换的字节集 = 文本到字节集 ("______TLKJGJFDZB")
调试输出 ("要转换的字节集", 要转换的字节集)
结果指针 = 要转换的字节集.取字节集指针 ()
调试输出 ("结果指针", 结果指针)
全局.通信句柄 = RegisterWindowMessageA (结果指针)
调试输出 ("全局.通信句柄", 全局.通信句柄)
// SendMessageA (全局.窗口句柄, 全局.通信句柄, -1, 0)
返回 (1)
}
方法 NewLong <静态 类型 = 整数>
参数 窗口句柄 <类型 = 变整数>
参数 消息值 <类型 = 整数>
参数 参数一 <类型 = 整数>
参数 参数二 <类型 = 整数>
{
如果真 (消息值 == 257)
{
调试输出 ("按键A", 参数一)
如果真 (参数一 == 36 || 参数一 == 33)
{
调试输出 ("按键", 参数一)
全局.分控窗口.可视 = 取反 (全局.分控窗口.可视)
}
}
如果真 (消息值 == 全局.通信句柄)
{
如果真 (参数一 == -1)
{
调试输出 ("创建窗口")
}
}
返回 ((整数)CallWindowProcW (全局.hook句柄, 窗口句柄, 消息值, 参数一, 参数二))
}
大概是你参数3写错了
uuyyhhjj 发表于 2024-9-14 17:09
大概是你参数3写错了
是的,确实是参数1和参数2的问题,,,,, 但是get出来的数据 有点不对...不知道为啥我在研究研究 ,,感谢大哥
2625756, 274, 61536, 32900657
2625756, 16, 0, 0
2625756, 144, 0, 0
2625756, 70, 0, 885196310336
2625756, 71, 0, 885196310336
2625756, 134, 0, 0
2625756, 127, 2, 0
2625756, 6, 0, 0
2625756, 878, 0, 885196306504
2625756, 28, 0, 6948
2625756, 273, 33554533, 332208
2625756, 2, 0, 0
目前能获取到很多消息,,,唯独没看见按键消息
//按下一个键
WM_KEYUP = 257;
//释放一个键
WM_CHAR = 258;
//按下某键,并已发出WM_KEYDOWN, WM_KEYUP消息
WM_DEADCHAR = 259;
裂 已解决 ,不知道什么原因 注入后 get到按键消息
不注入 直接调试运行,get不到按键消息 很奇怪
页:
[1]