找回密码
 加入
搜索
查看: 2563|回复: 4

[AU3基础] [已解决]判断语句为何执行相反结果?

[复制链接]
发表于 2011-3-5 17:43:01 | 显示全部楼层 |阅读模式
本帖最后由 pdp320921 于 2011-3-9 21:39 编辑
If FileExists(@ProgramFilesDir & "\TOSHIBA\CTest\CTest.exe") Then  
mode()        
Else 
install()
Sleep(1000)
mode()
EndIf

Func install()
...
...
EndFunc

Func mode()
$var = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion", "ProductName")
If        $var ='Windows 7 Starter' Then
    autorun1()
Else 
        autorun2()
EndIf
EndFunc        

Func autorun1()
Run(@ProgramFilesDir & "\TOSHIBA\CTest\CTest.exe")
WinWaitActive("CTest v2.4.0201","")
ControlClick("CTest v2.4.0201","",7)
WinWaitActive("Browse for Folder","Select the Remote Test Path")
Send("{Down}")
Send("{ENTER}")
WinWaitActive("CTest v2.4.0201","Test Mode")
ControlClick("CTest v2.4.0201","",14)
Send("{Down 3}")
Send("{ENTER}")
Send("{TAB 6}")
Sleep(500)
Send("500")
WinWaitActive("CTest v2.4.0201","")
ControlClick("CTest v2.4.0201","",26)
EndFunc

Func autorun2()
Run(@ProgramFilesDir & "\TOSHIBA\CTest\CTest.exe")
WinWaitActive("CTest v2.4.0201","")
ControlClick("CTest v2.4.0201","",7)
WinWaitActive("Browse for Folder","Select the Remote Test Path")
Send("{Down}")
Send("{ENTER}")
WinWaitActive("CTest v2.4.0201","")
Send("{TAB 9}")
Send("500")
WinWaitActive("CTest v2.4.0201","")
ControlClick("CTest v2.4.0201","",26)
EndFunc
我原想是判断系统如果是Win7 Starter版本执行autorun1(),其他版本执行autorun2(),
可程序编译好后在Win7 Starter系统版本的电脑上执行的结果却是autorun2(),在其他版本系统的机器上执行的也是autorun2()
注明:注册表里的键值没问题~

真不知错在哪?恳请大虾们帮忙~不
发表于 2011-3-5 21:07:56 | 显示全部楼层
然后结果都是:autorun2()

那问题肯定是出在了:
If        $var ='Windows 7 Starter' Then

虽然你说这肯定没有问题,不过,个人建议:
你先:
msgbox(0,"",RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion", "ProductName"))

看一下。

然后为了避免空格等不可见的因素:你这样改一下试试呢?

If  StringRegExp ( $var, "Starter" ) then

。。。。。
发表于 2011-3-5 22:15:23 | 显示全部楼层
回复 2# boyhong
和空格没关系,直接stringinstr(RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion", "ProductName"), 'Starter') then
应该就行了(如果依楼主所说注册表没问题的话)
发表于 2011-3-5 22:57:49 | 显示全部楼层
从你的情况,同意2楼的建议,调试一下啊
 楼主| 发表于 2011-3-9 21:39:02 | 显示全部楼层
回复 3# netegg

我知道错在哪了,
$var = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion", "ProductName")

WindowsNT应该是Windows NT,中间是有空格的~~

改完了就OK了

谢各位大侠们~·
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-22 23:22 , Processed in 0.080470 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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