TC官方合作论坛

 找回密码
 立即注册
查看: 1834|回复: 10

[问题] TC如何实现 键盘 按下 弹起 事件{ 求大神 }

[复制链接]
发表于 2015-12-13 10:00:13 | 显示全部楼层 |阅读模式

马上加入TC

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

x
已知 dllcall("user32.dll","long", "GetAsyncKeyState","long",32) 可以实现  按下 弹起操作。。。按下不放的时候 相对来说 比较流畅  但是按1下的时候 有时候 反应 很迟钝

  1. 变量 线程ID,线程ID1,线程ID2
  2. //从这里开始执行
  3. 功能 执行()
  4.    
  5.     //从这里开始你的代码
  6. 结束

  7. //启动_热键操作
  8. 功能 启动_热键()
  9.     线程ID=线程开启("主程序","")
  10.    
  11. 结束

  12. //终止热键操作
  13. 功能 终止_热键()
  14.     线程关闭(线程ID)
  15.    
  16. 结束


  17. 功能 主程序()//线程1函数.
  18.     变量 返回值=0
  19.     循环(真)//循环开始.
  20.         返回值 = dllcall("user32.dll","long", "GetAsyncKeyState","long",32)
  21.         如果(返回值!=0)
  22.             线程ID2=线程开启("按键任务","")//开户线程2,并返回线程句柄.
  23.             等待(3)
  24.         结束
  25.         循环(返回值!=0)//小循环开始.
  26.             返回值 = dllcall("user32.dll","long", "GetAsyncKeyState","long",32)
  27.             等待(3)//一直循环,等待放开空格.
  28.         结束 //小循环结束.
  29.         线程关闭(线程ID2)//关闭线程2.
  30.   
  31.         等待(3)
  32.     结束//循环结束.
  33. 结束


  34. 功能 按键任务()//线程2函数.
  35.     循环(真)
  36.         keypress(70)
  37.         鼠标左键按下()
  38.         鼠标左键弹起()
  39.       
  40.         keypress(71)
  41.         鼠标左键按下()
  42.         鼠标左键弹起()
  43.     结束
  44. 结束
复制代码
求 有没别的办法~~~~~





回复

使用道具 举报

发表于 2015-12-13 10:43:20 来自手机 | 显示全部楼层
【教程1】键盘命令。[精][顶]

项目二:按住和放开目标键,都实现不同的效果。

变量 线程ID

//从这里开始执行

功能 执行()

//在调试输出中查看。

while(10 > 1)

var 返回值 =  dllcall("user32.dll","long", "GetAsyncKeyState","long",65)

traceprint(返回值)

if(返回值 != 0)

traceprint("a键已按下。")

while(返回值 != 0)

sleep(30)

返回值 =  dllcall("user32.dll","long", "GetAsyncKeyState","long",65)

end

traceprint("a键已经弹起。")

end

sleep(100)

end

结束

//启动_热键操作

功能 启动_热键()

线程ID=线程开启("执行","")

结束

//终止热键操作

功能 终止_热键()

线程关闭(线程ID)

结束

转载自:tc简单开发吧 <  贴吧 <  百度
回复 支持 反对

使用道具 举报

发表于 2015-12-13 11:41:07 | 显示全部楼层

测试一下.rar

1.25 KB, 下载次数: 121, 下载积分: 金币 -1 个

回复

使用道具 举报

发表于 2015-12-13 11:47:42 | 显示全部楼层
又修改了一下


测试一下.rar

1.21 KB, 下载次数: 147, 下载积分: 金币 -1 个

回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-13 13:43:30 | 显示全部楼层
剑仙十号 发表于 2015-12-13 10:43
【教程1】键盘命令。[精][顶]

项目二:按住和放开目标键,都实现不同的效果。

跟我这个 是一样的啊。。。按1下 反应速度太慢。。。按着不放 还算比较稳定
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-13 13:45:27 | 显示全部楼层

这个是什么呀
回复 支持 反对

使用道具 举报

发表于 2015-12-13 14:54:09 | 显示全部楼层
言术给你的是一个按下弹起空格键的例子,通过消息路或消息过程可以简单实现消息处理的,TC有这个功能,不必拘泥于API;
当然如果你想鼓捣一下API也未尝不可,不过要麻烦点!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-13 16:50:23 | 显示全部楼层
somyyy 发表于 2015-12-13 14:54
言术给你的是一个按下弹起空格键的例子,通过消息路或消息过程可以简单实现消息处理的,TC有这个功能,不必 ...

实现是 实现了。。如果 跳过这个 窗体。。我如何 取到 空格 按下  弹起 的操作呢。。我在窗体外 按 空格 并不能 激活 啊 只能在窗体内 按才有效果
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-13 16:54:48 | 显示全部楼层

大神。。我如何 在窗体外 激活 空格 按下 弹起操作呢 因为我要做的 是 脚本 最小化。。按空格  F G 键来回切换  并且 鼠标左键 点击。。。执行效率 需要高。。准确性 要求高。。。按着不动的时候  需要 一直 F点击鼠标 左键  G点击鼠标 左键。循环···
回复 支持 反对

使用道具 举报

发表于 2015-12-13 18:06:43 来自手机 | 显示全部楼层
这个方案我倒是有办法实现。
用键盘钩子来做。准确度,精确度非常之高,可以全后台操作。

8楼. 项目4:

做连发的脚本。HOOK的连发教程。

//把代码复制入TC编译器中,覆盖原来的代码即可。X键为连发键,启动F8,终止F9。

//在hookProc子程中,"返回 true" 是函数的返回语句.当执行点遇到"返回 true",表示这个函数已经执行

完成.

//无论"返回 true"到函数结束还有多少代码,一律不管,子函数将返回到主调函数,执行下面一行。

功能 hookProc(code,wPaddr,LP_IPaddr) //HOOK函数的回调函数.

变量 参数2键码状态 = wPaddr

变量 参数3键码 = 地址取值 (LP_IPaddr,"long") //address地址.value,数值.获取地址中的数值.

如果(参数3键码 == 88 && 参 数2键码状态 == 256)//88是检测X的ASCii码,256是按下码.

窗口提交按下(hwndex,88)// 连发码.

等待(3)

窗口提交弹起(hwndex,88)// 连发码.

//api函数"CallNextHookEx"是把 消息传递到下一个子程.如果没有下个子程,则把消息传送到目标窗

口.

//设置"返回 true",执行到这里 马上跳出函数,后面的代码不再执行.

//返回值为0,是把消息传到目 标窗口;返回值为非0,这样按键消息没有传到目标窗口.就是对目标窗口

拦截按键.

返回 真

否则如果(参数3键码 == 88 && 参数2键码状态 == 257)//88是检测X的ascii码,257是弹起码.

窗口发送字符串(hwndex,"X键 已经弹起.")

窗口提交按键(hwndex,13)

//对返回值的理解同上。

返回 真

结束

//函数"CallNextHookEx",是把按 键消息传递到下个子程.

//返回 函数"CallNextHookEx"的 数值,也是把消息传递到下一个子程.如果没有设置下一子程,则把消息

传送到目标窗口.

返回 动态库调用

("user32.dll","long","CallNextHoo kEx","long",h_hook,"long",code,"long",wPaddr,"long",L

(1/3) 下一段  余下全文

【教程1】键盘命令。[精][顶]
转载自:tc简单开发吧 <  贴吧 <  百度
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-10-2 04:05 , Processed in 0.046314 second(s), 26 queries .

Powered by 海安简单软件服务部

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

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