TC官方合作论坛

 找回密码
 立即注册
查看: 1390|回复: 6

现在的版本不支持8字节16进制的数字

[复制链接]
发表于 2016-3-29 21:55:11 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 feskar 于 2016-3-29 21:56 编辑

       目前的版本,十六进制最多只能表示到#7FFFFFFF即十进制的2147483647,但是有时需要输入大于这个数的例如#C01E0001时,却被强制转换为#7FFFFFFF了,请问有没有什么变通的方法?
输入小数是行不通的,例如#C01E0001=3223191553,如果转化成浮点型就是3223191553.0000了,这样拿去调用API会导致程序崩溃的:
  1. dllcall("user32.dll", "long", "PostMessageA", "long", hwnd, "long", WM_KEYUP, "long", key, "double", #C01E0001)
复制代码

回复

使用道具 举报

发表于 2016-3-29 22:09:31 | 显示全部楼层
  1. dllcall("user32.dll", "long", "PostMessageA", "long", hwnd, "long", WM_KEYUP, "long", key, "long", -1071775743)
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-29 23:00:59 | 显示全部楼层

谢谢大神,这个问题困扰我三天了,原来可以这样解决,把C01E0001补位为FFFFFFFFC01E0001,非常感谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-30 07:07:59 | 显示全部楼层

额,大神,昨天晚上我只是大概看了下,没试验,今天发现输入-1071775743也是无效的,只是程序没有崩溃而已,#C01E0001代表的32位二进制是A键弹起:C0表示弹起,1E是A的扫描码,0001表示动作次数,所以如果换成#FFFFFFFFC01E0001,程序还是无效的,请问这里是不是需要传址还是其他才能实现?
回复 支持 反对

使用道具 举报

发表于 2016-3-30 23:30:45 | 显示全部楼层
根据查询扫描码有分按下与弹起... 1E 是按下的扫描码,9E 是弹起的扫描码

  1. dllcall("user32.dll", "long", "PostMessageA", "long", hwnd, "long", WM_KEYUP, "long", key, "long", -1063387135) //#C09E0001
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-31 10:49:50 | 显示全部楼层
本帖最后由 feskar 于 2016-3-31 11:11 编辑
sam7894604 发表于 2016-3-30 23:30
根据查询扫描码有分按下与弹起... 1E 是按下的扫描码,9E 是弹起的扫描码

...

嗯,尽管还是没有实现我的目标,但是还是谢谢大神的帮助,算了,想办法用其他方法实现吧,TC脚本里没办法了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-31 22:55:35 | 显示全部楼层
sam7894604 发表于 2016-3-30 23:30
根据查询扫描码有分按下与弹起... 1E 是按下的扫描码,9E 是弹起的扫描码

...

谢谢大神,问题解决了,问题不光出在这句.....是我脚本的前一句的数据类型有问题,这句最后一个参数#C01E0001可以直接填0
  1. dllcall("user32.dll", "long", "keybd_event", "byte", fn, "byte", fnscan, "int", 0, "int", 0)
复制代码

这里功能键和其扫描码的数据类型应该是"byte",而我之前是用的"long"
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-19 16:56 , Processed in 0.045678 second(s), 22 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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