Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


semiono,
У меня так получилось:
Код: Выделить весь код
$aReturn = _FileSearch(@ProgramFilesDir, "Cubase*.exe")
If $aReturn[0] = 0 Then
    Run(@SystemDir & '\Install.cmd', "", @SW_HIDE)
Else
    Run($aReturn[1])
EndIf
Exit

Func _FileSearch($sPath, $sFileMask)
    Local $sOut = StringToBinary("0" & @CRLF, 2), $aOut
    Local $hDir = Run(@ComSpec & ' /U/C DIR "' & $sPath & '\' & $sFileMask & '" /S/B/A-D', @SystemDir, @SW_HIDE, 6)

    While 1
        $sOut &= StdoutRead($hDir, False, True)
        If @error Then ExitLoop
    WEnd

    $aOut = StringRegExp(BinaryToString($sOut, 2), "[^\r\n]+", 3)
    If @error Then Return SetError(1)

    $aOut[0] = UBound($aOut) - 1
    Return $aOut
EndFunc   ;==>_FileSearch
У меня скрипт находит любой Cubase.exe (т.е Cubase.exe, Cubase0.exe, Cubase1.exe , ..., Cubase9.exe). Если находит, запускает первый, который нашел, если не находит, запускает system32\cubase.cmd. Если надо искать не только в Program Files, а на диске, то @ProgramFilesDir поменяйте на @HomeDrive.

PS
Попробовал добавить к цифре в имени Cubase1.exe еще цифры и буквы(только латинские). У меня скрипту все равно, какие символы и сколько их между Cubase и .exe, он все равно его находит и запускает.

PPS
Поправил. Теперь и русские буквы отображаются нормально.

Последний раз редактировалось madmasles, 17-02-2010 в 00:17.

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:46, 12-02-2010 | #5