非数组变量使用下标 错误在哪?
#Region ;**** 参数创建于 ACNWrapper_GUI ****#PRE_Outfile=111111111.exe
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
$hSearch = FileFindFirstFile(@DesktopDir & "\*.lnk")
While 1
$sFile = FileFindNextFile($hSearch)
$FilePath = FileGetShortcut(@DesktopDir & '\' & $sFile)
If $FilePath = 'C:\1.exe' Then
IF Not StringInStr(FileGetAttrib(@DesktopDir & '\' & $sFile), 'H') Then
FileSetAttrib(@DesktopDir & '\' & $sFile, '+H')
EndIf
EndIf
sleep(100)
Wend
出错。。 有一个程序一运行 就会不断的在桌面建立随机名快捷方式! $hSearch = FileFindFirstFile(@DesktopDir & "\*.lnk")
While 1
$sFile = FileFindNextFile($hSearch)
If @error Then ExitLoop;;;;;;;
$FilePath = FileGetShortcut(@DesktopDir & '\' & $sFile)
If Not StringCompare($FilePath, "C:\Program Files\Tencent\QQ2011beta\Bin\QQ.exe") Then
IF Not StringInStr(FileGetAttrib(@DesktopDir & '\' & $sFile), "H") Then
FileSetAttrib(@DesktopDir & '\' & $sFile, "+H")
EndIf
EndIf
sleep(100)
Wend $hSearch = FileFindFirstFile(@DesktopDir & "\*.lnk")
While 1
$sFile = FileFindNextFile($hSearch)
If @error Then ExitLoop;;;;;;;
$FilePath = FileGetShortcut(@DesktopDir & '\' & $sFile)
;If Not StringCompare($FilePath, "C:\Program Files\Tencent\QQ2011beta\Bin\QQ.exe") Then
If $FilePath = "C:\Program Files\Tencent\QQ2011beta\Bin\QQ.exe" Then
IF Not StringInStr(FileGetAttrib(@DesktopDir & '\' & $sFile), "H") Then
FileSetAttrib(@DesktopDir & '\' & $sFile, "+H")
EndIf
EndIf
sleep(100)
Wend
;;;$FilePath = "C:\Program Files\Tencent\QQ2011beta\Bin\QQ.exe"
;;;这样也是可以的
;;;问题应该是由于 FileFindNextFile出错时 $sFile 不是文件名 而是空字符串
;;;进一步导致FileGetShortcut出错,返回值 不是数组 由于某种未知原因,$FilePath 不是数组 lz先查查桌面目录里有没有lnk文件吧,看看是@DesktopDir还是@DesktopCommonDir
或者在中间加一句if isarray($filepath) then msgbox来确定下数组到底返回的对不对,在考虑后续步骤
页:
[1]