Что нового

Преобразовать значение ключа ini-файла содержащего макрос, чтоб читался и запускался путь

DyadyaGenya

Знающий
Сообщения
300
Репутация
10
Доброго времени суток. Не пойму почему при чтении ключа из ini-файла, если значение содержит макрос типа @ProgramFilesDir или @DesktopDir или @ScriptDir или любой аналогичный, то при проверке FileExists() говорит, что такого пути нет. А если в ключе прописано типа: C:\Program Files (x86)\Каталог программы\Программа.exe, то все срабатывает. Хотя если не читать ini-файл, а подставлять @ProgramFilesDir & "\Каталог программы\Программа.exe", то все срабатывает.
Делаю так:
Секция в ini-файле:
Код:
[SektionMayBePathStat]
MayBePathStat1=@DesktopDir & "\Программа.lnk"
MayBePathStat2=@ScriptDir & "\Программа.lnk"
MayBePathStat3=@DesktopCommonDir & "\Программа.lnk"
MayBePathStat4=@ProgramFilesDir & "\Каталог программы\Программа.exe"
MayBePathStat5=C:\Program Files (x86)\Каталог программы\Программа.exe

Дальше получаю и перебираю следующим образом:
Код:
Local $PathIni = @ScriptDir & "\Программа.ini"

Local $aIni = IniReadSection($PathIni, "SektionMayBePathStat")
_ArrayDisplay($aIni)

Local $a = False
For $a=False To True
   If $a = False Then
   For $i = 1 To UBound($aIni)-1
      If FileExists($aIni[$i][1]) Then
         ConsoleWrite("существует такой путь : " & $aIni[$i][1] & @CR)
            $a = True
            ShellExecute($aIni[$i][1])
            ExitLoop
      Else
         ConsoleWrite("Не существует такой путь : " & $aIni[$i][1] & @CR)
      EndIf

   Next
   Else
         $path_0 = "C:"
      $Mask_0 =  "Программа.exe"
      $aReturn = _FileSearch($path_0, $Mask_0)
      ConsoleWrite("поиск проги и полученный путь : " & $aReturn[1] & @CR)       ; или ShellExecute($aReturn[1])
   EndIf
Next
 
Последнее редактирование:

Khaibit

Осваивающий
Сообщения
103
Репутация
25
Код:
FileExists(Execute($aIni[$i][1]))

Код:
ShellExecute(Execute($aIni[$i][1]))
 
Верх