脚本执行与暂停 CPU占用过高!
HotKeySet("{F7}","dangong")HotKeySet("{F9}","zanting")
HotKeySet("{F10}","tuichu")
Dim$n=1
While 1
Sleep(100)
WEnd
Func zanting()
$n = 0
While 1
If $n = 1 Then
$n = 0
ExitLoop
EndIf
WEnd
EndFunc
Func dangong()
While 1
$n = 1
If $n = 1 Then
Sleep(100)
Send("s")
EndIf
WEnd
EndFunc
Func tuichu()
$re = MsgBox(1,"提示","确定要退出模拟键盘连续键击吗?")
If $re = 1 Then
Exit
Else
MsgBox(4096,"温馨提示","脚本目前处于暂停状态!",1)
Send("{F9}")
EndIf
EndFunc不知道其他的暂停办法怎么用?望大大们给予指点! 本帖最后由 apibits 于 2011-3-29 11:20 编辑
Global $T_time ,$T_Send
$T_time = 100;文字发送时间(毫秒)
$T_Send = "s";文本内容
HotKeySet("{F7}","_CMDStart")
HotKeySet("{F9}","_CMDPause")
HotKeySet("{F10}","_CMDExit")
While 1
Sleep(1000)
WEnd
;~ AdlibRegister() 如果希望程序启动就发送按键.则在这里注册
Func _CMDStart();启动事件响应
AdlibRegister( "_TxtSend",$T_time)
EndFunc
Func _CMDPause();暂停事件响应
AdlibUnRegister("_TxtSend")
EndFunc
Func _CMDExit();退出事件响应
$re = MsgBox(1,"提示","确定要退出模拟键盘连续键击吗?")
If $re = 1 Then
Exit
Else
MsgBox(4096,"温馨提示","脚本目前处于暂停状态!",1)
Call("_CmdPause")
EndIf
EndFunc
Func _TxtSend()
Send($T_Send)
EndFunc
看看我这个...用的是AdlibRegister() 函数....这函数很方便的..而且也不会狂吃CPU {:face (197):}
回复 2# apibits
您这个的确不错! 那要是再设置一个热键F8 发送“W”字符,暂停键同时也用F9 ,应该怎么做呢? 本帖最后由 apibits 于 2011-3-29 12:47 编辑
回复 3# xuanfeng1234567
那要是这样的话....那就再添加喽. = =
代码中被!-!括起来的部分为新添加的 {:face (396):} ...不知道还有没有高人有更方便的办法 = =
另外你看看和上次的代码有什么相似的?dou shi chong fu de ....
Global $T_time ,$T_Send,!$T_Send2!
$T_time = 100;文字发送时间(毫秒)
$T_Send = "s";文本内容
!$T_Send2 = "w"!
HotKeySet("{F7}","_CMDStart")
HotKeySet("{F9}","_CMDPause")
HotKeySet("{F10}","_CMDExit")
!HotKeySet("{F8}","_CMDwww")!
While 1
Sleep(1000)
WEnd
;~ AdlibRegister() 如果希望程序启动就发送按键.则在这里注册
Func _CMDStart();启动事件响应
AdlibRegister( "_TxtSend",$T_time)
EndFunc
!Func _CMDwww(); 都是随便打的函数名,表介意...!
!AdlibRegister( "_TxtSend2",$T_time)!
!EndFunc !
Func _CMDPause();暂停事件响应
AdlibUnRegister("_TxtSend")
!AdlibUnRegister("_TxtSend2")!
EndFunc
Func _CMDExit();退出事件响应
$re = MsgBox(1,"提示","确定要退出模拟键盘连续键击吗?")
If $re = 1 Then
Exit
Else
MsgBox(4096,"温馨提示","脚本目前处于暂停状态!",1)
Call("_CmdPause")
EndIf
EndFunc
Func _TxtSend()
Send($T_Send)
EndFunc
!Func _TxtSend2()!
!Send($T_Send2)!
!EndFunc!
While 1
_winapi_exmptyworkingset()
Sleep(1000)
WEnd 回复 4# apibits
但是又出现问题了!
ssssssssswswswswswswswswswswswswswswswswswswF7F8F9 发送的字符
wwwwwwwwwwwwwwwwwswswswswswswswswswswsw F9F8F7 发送的字符
本意是: F7只发送S
F8只发送W
F9暂停 本帖最后由 netegg 于 2011-3-29 13:51 编辑
adlib用的时候在每次重新调用时要重新定义变量,换句话说,如果不涉及多个adlib还好办,如果是的话,运行一次register,就要运行一遍unregister 回复 7# netegg
那netegg大大能否指点迷津,给个完整的例子呢?谢谢了 回复 8# xuanfeng1234567
你说的是资源占用的问题还是发送的问题 资源占用还有发送的问题!嘿嘿 资源占用前面告诉你了,发送按钮,做sleep(1000)的延迟(要不就是100,忘了,是系统里的一个数,大概延迟一下) adlib用的时候在每次重新调用时要重新定义变量,换句话说,如果不涉及多个adlib还好办,如果是的话,运行一 ...
netegg 发表于 2011-3-29 13:50 http://www.autoitx.com/images/common/back.gif
对的...ADLIB这东西怕多...要是弄几个还行..多了工作量就恐怖了..
另外对于CPU高的解决办法就是Sleep
程序执行过程中的延时 想知道全局暂停应该怎么设啊? 啥叫全局暂停
页:
[1]