Что нового

Как "открыть с помощью", если путь к программе переменная?

Вовчик55

Новичок
Сообщения
57
Репутация
0
В этой теме понял как запустить какой-либо тип файла в программе, которая не ассоциирована в Windows
Вот так всё замечательно запускается
Код:
Run('"C:\Program Files (x86)\Winamp\Winamp.exe" "C:\Imperio - Atlantis (Radio Mix).flac"')


Но что делать например в таком случае, когда путь к программе заранее неизвестен (переменная):
Код:
FileOpen("C:\1\Путь к программам.txt")
$Winamp=FileReadLine("C:\1\Путь к программам.txt", 1)
FileClose("C:\1\Путь к программам.txt")
Run($Winamp & "C:\Imperio - Atlantis (Radio Mix).flac")

В одинарные кавычки переменную и файл песни нельзя брать (тогда вообще не запускается винамп), а если так как привел выше то запускается лишь винамп но не проигрывает песню
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Вовчик55,
1. Вы неправильно используете функции
Код:
FileOpen()
FileClose()

2. С кавычками:
Код:
$sWinamp = 'C:\Program Files (x86)\Winamp\Winamp.exe'
$sFile = 'C:\Imperio - Atlantis (Radio Mix).flac'

$sRun = '"' & $sWinamp & '" "' & $sFile & '"'
ConsoleWrite($sRun & @LF)
;or
$sRun_1 = """" & $sWinamp & """ """ & $sFile & """"
ConsoleWrite($sRun_1 & @LF)
 
Автор
Вовчик55

Вовчик55

Новичок
Сообщения
57
Репутация
0
Re: Как \"открыть с помощью\", если путь к программе переменная?

madmasles сказал(а):
Вы неправильно используете функции
А подскажите в чём у меня ошибка?


Добавлено:
Сообщение автоматически объединено:

Кстати так:
Код:
$sWinamp = 'C:\Program Files (x86)\Winamp\Winamp.exe'
$sFile = 'C:\Imperio - Atlantis (Radio Mix).flac'

$sRun = '"' & $sWinamp & '" "' & $sFile & '"'
ConsoleWrite($sRun & @LF)
;or
$sRun_1 = """" & $sWinamp & """ """ & $sFile & """"
ConsoleWrite($sRun_1 & @LF)


Вообще ничего не запускается
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Вовчик55 [?]
А подскажите в чём у меня ошибка?
Ткните по имени функции в моем предыдущем сообщении и внимательно прочитайте справку.
Вообще ничего не запускается
Я бы очень удивился, если бы запустилось что-либо. :smile:
Это пример использования кавычек.
 
Автор
Вовчик55

Вовчик55

Новичок
Сообщения
57
Репутация
0
madmasles, спасибо! Вот так работает:
Код:
FileOpen("C:\1\Путь к программам.txt")
$Winamp=FileReadLine("C:\1\Путь к программам.txt", 1)
FileClose("C:\1\Путь к программам.txt")

$sFile = 'C:\Imperio - Atlantis (Radio Mix).flac'

Run('"' & $Winamp & '" "' & $sFile & '"')


Так я и не понял на какую ошибку вы намекаете в FileOpen/FileClose, если то, что не поставил 0 после указания файла, так он вроде и так ставится по умолчанию, подумал что можно и не писать (тем более в приведённом коде - всё работает). Если в чём-то серьёзная ошибка - подскажите?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Вовчик55 [?]
Так я и не понял на какую ошибку вы намекаете в FileOpen/FileClose
Справку почитать что мешает?

FileOpen/Close здесь по сути и не нужен:

Код:
$Winamp = FileReadLine("C:\1\Путь к программам.txt", 1)
$sFile = 'C:\Imperio - Atlantis (Radio Mix).flac'

Run('"' & $Winamp & '" "' & $sFile & '"')
 
Автор
Вовчик55

Вовчик55

Новичок
Сообщения
57
Репутация
0
CreatoR, а разве никаких конфликтов не будет? У меня просто этот файл в программе по несколько раз открывается, закрывается для записи, для чтения...
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Вовчик55 [?]
а разве никаких конфликтов не будет?
Будет если перед чтением ты открываешь файл.

У меня просто этот файл в программе по несколько раз открывается
Неправильно он открывается, в справку из принципа не заглядываешь?

Код:
$hFile = FileOpen('Файл.txt', 0) ;Открываем в режиме чтения и назначаем переменной $hFile указатель на открытый файл
$sLine = FileReadLine($hFile, 1) ;Используем указатель на файл для чтения первой строки (а не имя файлы как ты это делаешь)
FileClose($hFile) ;Закрываем открытый файл (опять же, указатель закрываем, а не имя файла)
 
Верх