递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 917|回复: 8
打印 上一主题 下一主题

[视窗] SetWindowLongPtrA 崩溃问题

[复制链接]

1

主题

9

帖子

37

积分

新手上路

Rank: 1

积分
37
跳转到指定楼层
楼主
发表于 2024-9-14 16:19:31 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
SetWindowLongPtrA (全局.窗口句柄, -4, 取静态方法地址 (NewLong))64位程序 用此方法 程序直接崩溃 我写的不对吗


易语言 用 SetWindowLongA (g_窗口句柄, -4, 到整数 (&NewLong))  一切正常







回复

使用道具 举报

4

主题

114

帖子

348

积分

中级会员

Rank: 3Rank: 3

积分
348
沙发
发表于 2024-9-14 16:21:15 | 只看该作者
听说火山都是用W的。你试试W的崩溃不
回复

使用道具 举报

1

主题

9

帖子

37

积分

新手上路

Rank: 1

积分
37
板凳
 楼主| 发表于 2024-9-14 16:23:16 | 只看该作者
雪很冷 发表于 2024-9-14 16:21
听说火山都是用W的。你试试W的崩溃不

崩溃了......
回复

使用道具 举报

4

主题

114

帖子

348

积分

中级会员

Rank: 3Rank: 3

积分
348
地板
发表于 2024-9-14 16:47:43 | 只看该作者
那就不清楚了。还是请大佬来帮帮你
回复

使用道具 举报

1

主题

9

帖子

37

积分

新手上路

Rank: 1

积分
37
5#
 楼主| 发表于 2024-9-14 16:49:44 | 只看该作者
  1. <火山程序 类型 = "通常" 版本 = 1 />

  2. 方法 启动方法 <公开 类型 = 整数>
  3. {
  4.     主窗口对象.创建主窗口 ()
  5.     全局.进程ID = 进程_取自进程ID_GetCurrentProcessId ()
  6.     调试输出 ("进程ID", 全局.进程ID)
  7.     全局.窗口句柄 = 窗口操作类.进程_ID取窗口句柄 (全局.进程ID, , , , )
  8.     调试输出 ("全局.窗口句柄", 全局.窗口句柄)
  9.     全局.hook句柄 = SetWindowLongPtrW (全局.窗口句柄, -4, 取静态方法地址 (NewLong))


  10.     调试输出 ("全局.hook句柄", 全局.hook句柄)
  11.     变量 要转换的字节集 <类型 = 字节集类>
  12.     变量 结果指针 <类型 = 变整数>
  13.     要转换的字节集 = 文本到字节集 ("______TLKJGJFDZB")
  14.     调试输出 ("要转换的字节集", 要转换的字节集)
  15.     结果指针 = 要转换的字节集.取字节集指针 ()
  16.     调试输出 ("结果指针", 结果指针)
  17.     全局.通信句柄 = RegisterWindowMessageA (结果指针)
  18.     调试输出 ("全局.通信句柄", 全局.通信句柄)
  19.     // SendMessageA (全局.窗口句柄, 全局.通信句柄, -1, 0)


  20.     返回 (1)
  21. }

  22. 方法 NewLong <静态 类型 = 整数>
  23. 参数 窗口句柄 <类型 = 变整数>
  24. 参数 消息值 <类型 = 整数>
  25. 参数 参数一 <类型 = 整数>
  26. 参数 参数二 <类型 = 整数>
  27. {
  28.     如果真 (消息值 == 257)
  29.     {
  30.         调试输出 ("按键A", 参数一)
  31.         如果真 (参数一 == 36 || 参数一 == 33)
  32.         {
  33.             调试输出 ("按键", 参数一)
  34.             全局.分控窗口.可视 = 取反 (全局.分控窗口.可视)

  35.         }

  36.     }
  37.     如果真 (消息值 == 全局.通信句柄)
  38.     {
  39.         如果真 (参数一 == -1)
  40.         {
  41.             调试输出 ("创建窗口")

  42.         }

  43.     }

  44.     返回 ((整数)CallWindowProcW (全局.hook句柄, 窗口句柄, 消息值, 参数一, 参数二))


  45. }
复制代码


回复

使用道具 举报

6

主题

152

帖子

1472

积分

金牌会员

Rank: 6Rank: 6

积分
1472
6#
发表于 2024-9-14 17:09:37 | 只看该作者
大概是你参数3写错了

回复

使用道具 举报

1

主题

9

帖子

37

积分

新手上路

Rank: 1

积分
37
7#
 楼主| 发表于 2024-9-14 17:52:02 | 只看该作者
uuyyhhjj 发表于 2024-9-14 17:09
大概是你参数3写错了

是的,确实是参数1和参数2的问题  ,,,,, 但是get出来的数据 有点不对...不知道为啥  我在研究研究 ,,感谢大哥
回复

使用道具 举报

1

主题

9

帖子

37

积分

新手上路

Rank: 1

积分
37
8#
 楼主| 发表于 2024-9-14 18:07:59 | 只看该作者
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;

回复

使用道具 举报

1

主题

9

帖子

37

积分

新手上路

Rank: 1

积分
37
9#
 楼主| 发表于 2024-9-15 01:58:42 | 只看该作者
已解决 ,不知道什么原因 注入后 get到按键消息  
不注入 直接调试运行  ,get不到按键消息 很奇怪
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-23 00:19 , Processed in 0.101358 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表