[已解决]判断语句为何执行相反结果?
本帖最后由 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()
注明:注册表里的键值没问题~
真不知错在哪?恳请大虾们帮忙~不 然后结果都是:autorun2()
那问题肯定是出在了:
If $var ='Windows 7 Starter' Then
虽然你说这肯定没有问题,不过,个人建议:
你先:
msgbox(0,"",RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion", "ProductName"))
看一下。
然后为了避免空格等不可见的因素:你这样改一下试试呢?
IfStringRegExp ( $var, "Starter" ) then
。。。。。 回复 2# boyhong
和空格没关系,直接stringinstr(RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion", "ProductName"), 'Starter') then
应该就行了(如果依楼主所说注册表没问题的话) 从你的情况,同意2楼的建议,调试一下啊 回复 3# netegg
我知道错在哪了,
$var = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion", "ProductName")
WindowsNT应该是Windows NT,中间是有空格的~~
改完了就OK了
谢各位大侠们~·
页:
[1]