已完成-求教,如何将重复执行的代码,简单调用?
本帖最后由 pzypdl2006 于 2016-3-5 14:54 编辑在写程序的时候有时,一段执行代码会被重复使用,那应该怎么精简呢?
能不能像变量一样,创建一个变量,使变量的值为重复的代码
然后再次使用重复的代码时候,就直接引用变量呢??
例如:
shellExecute("1.reg")
sleep(1000)
If WinActive("注册表编辑器") Then
ControlClick("注册表编辑器","是(&Y)","Button1")
sleep(1000)
ControlClick("注册表编辑器","确定","Button1")
sleep(5000)
shellExecute("2.reg")
sleep(1000)
If WinActive("注册表编辑器") Then
ControlClick("注册表编辑器","是(&Y)","Button1")
sleep(1000)
ControlClick("注册表编辑器","确定","Button1")
sleep(5000)
shellExecute("3.reg")
sleep(1000)
If WinActive("注册表编辑器") Then
ControlClick("注册表编辑器","是(&Y)","Button1")
sleep(1000)
ControlClick("注册表编辑器","确定","Button1")
sleep(5000)
其中
sleep(1000)
If WinActive("注册表编辑器") Then
ControlClick("注册表编辑器","是(&Y)","Button1")
sleep(1000)
ControlClick("注册表编辑器","确定","Button1")
sleep(5000)
这段代码为重复使用的代码! Local $file = ["1.reg","2.reg","3.reg"]
For $i = 0 To 2
_Hanshu($file[$i])
Next
Func _Hanshu($filename)
shellExecute($filename)
sleep(1000)
If WinActive("注册表编辑器") Then
ControlClick("注册表编辑器","是(&Y)","Button1")
sleep(1000)
ControlClick("注册表编辑器","确定","Button1")
sleep(5000)
EndIf
EndFunc楼主的代码执行没错误吗?只有IF,你的endif呢???? 回复 2# ap112
在论坛里给你endif了 回复 2# ap112
在论坛里给你endif了
那如果重复的代码是出现在不连续的代码行列中,比如像遇到这样的重复代码就调用一下!
For $i = 1 To 2
ShellExecute($i & ".reg")
Sleep(1000)
If WinActive("注册表编辑器") Then
ControlClick("注册表编辑器", "是(&Y)", "Button1")
Sleep(1000)
ControlClick("注册表编辑器", "确定", "Button1")
Sleep(5000)
EndIf
Next
本帖最后由 xlj310 于 2015-10-7 15:20 编辑
其实你这个还可以更简单,虽然你没有问。我懂这方面就可以告诉你。
如果你的1.reg和2.reg……里的内容较多,做成reg文件当然比较好。如果较简单,则可以直接用Au3写注册表代码。下面有示例的!
如果做成.reg文件后想要导入,可以先加入一句,将注册表修改一下,就不会弹出确认提示了。
RegWrite("HKEY_CLASSES_ROOT\regfile\shell\open\command", "", "REG_SZ", 'regedit.exe /s "%1"')
For $i = 1 To 2
ShellExecute($i & ".reg")
Next
这样代码就很简洁了。 谢谢,又学了一招 回复 6# xlj310
注册表文件不需要改动吧?直接把RegWrite()那句卸载au3文件里是吗? 回复 6# xlj310
是在au3文件的开始写入RegWrite.
搞定了谢谢哦!
???
Func 函数
设置后,在运行的过程中;
发现有的机器能很快调用,有的机器却调用很慢?不知道什么原因? 我是来学习的
页:
[1]