找回密码
 加入
搜索
查看: 3328|回复: 9

[效率算法] 【已解决】请问用AutoIt设置热键响应是不是很耗费CPU资源

  [复制链接]
发表于 2012-5-4 08:24:22 | 显示全部楼层 |阅读模式
本帖最后由 gunziyang 于 2012-5-8 11:32 编辑

我看网上的文章,用HotKeySet()设置热键时,一般的思路是设置一个死循环,然后等待热键,典型代码如下:
HotKeySet("!a", "UserFunction")

While 1
    Sleep(1000)
WEnd

Func UserFunction()
   ;do something
EndFunc
请教大家两个问题:
问题1:这样的话,会不会很消耗CPU资源啊?如果是的话,有什么更有效率的方法吗?
问题2:AHK实现热键的机制是怎么样的 ,与上面的机制比如何?
发表于 2012-5-4 09:19:27 | 显示全部楼层
我也想知道,帮你顶。
发表于 2012-5-4 10:47:40 | 显示全部楼层
不清楚,也想知道答案。。
发表于 2012-5-4 11:51:00 | 显示全部楼层
不会
1. AU3有循环时自动降CPU的功能,当使用了 GUIGetMsg() 时。
2. 你这个例子里 sleep() 可以设置成任意值 例如 100000000000000
发表于 2012-5-4 12:09:44 | 显示全部楼层
我一般都使用事件模式
发表于 2012-5-4 12:53:31 | 显示全部楼层
回复 1# gunziyang
循环加了sleep函数后占用cpu资源很少,这个你可以在进程管理器里面看到。
另外au3的程序为了能够保持运行状态是必须要加循环的,没有循环的话,代码执行完就自动退出了。
发表于 2012-5-5 09:25:03 | 显示全部楼层
用Windows message方式就可以解决了
 楼主| 发表于 2012-5-5 22:22:06 | 显示全部楼层
用Windows message方式就可以解决了
netegg 发表于 2012-5-5 09:25


请问用Windows message的方式是不是必须用GUI的方式?如果不用的话,能不能给出个例子?
发表于 2012-5-6 02:11:43 | 显示全部楼层
回复 8# gunziyang
不一定
发表于 2012-5-6 07:09:59 | 显示全部楼层
While 1

    Sleep(50)

WEnd
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-20 22:52 , Processed in 0.081558 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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