RusVV |
Отправлено: 11.11.2003, 08:42 |
|
Не зарегистрирован
|
Проблема такая. Написал приладу, которая при определенном действии запускает строку типа
”C:\\winamp\\winanp.exe d:\\mp3\\kuku.mp3“. Причем адрес винампа прописан строго, а адрес песни взят из динамических данных. В случае с kuku.mp3 проблем не возникает. Однако существует куча файлов, в названии которых присутствуют пробелы. К примеру ‘D:\\mp3\\kuku nomer dva.mp3’. Ну а соответственная строка исполнения ”C:\\wiamp\\winanp.exe d:\\mp3\\kuku nomer dva .mp3“ воспринимается винампом как попытка запустить три разных файла (которые , естественно, не находятся).Как можно грамотно исправить такое дело ?
|
|
Roman |
Отправлено: 11.11.2003, 09:31 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 78
|
Это не WinAmp виновник, а (по всей видимости) твоя функция запуска, она разбивает имя файла на само имя и параметры запуска. Попробуй для запуска использовать функцию ShellExecute... |
|
xTrim |
Отправлено: 11.11.2003, 09:31 |
|
Машинист паровоза
Группа: Участник
Сообщений: 208
|
Попробуй "C:\\wiamp\\winanp.exe \"d:\\mp3\\kuku nomer dva .mp3\""
|
|
Георгий |
Отправлено: 11.11.2003, 09:54 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
а ты имя песни кавычками обрами:
winamp "d:\mp3\kuku nomer dva.mp3"
в программе это будет выглядеть так:
"winamp.exe \"d:\\mp3\\kuku nomer dva.mp3\""
надо учиться быстро печатать — пока написал, приконектился, отправил, тут уже и без меня разобрались
Отредактировано Георгий — 11/11/2003, 10:57 |
|
RusVV |
Отправлено: 12.11.2003, 06:46 |
|
Не зарегистрирован
|
Не прокатывает.
Код такой:
char *comname;
strcpy(comname,"C:\\Program Files\\Winamp\\Winamp.exe ");
strcat(comname,(Form1->StringGrid1->Cells[2][tgc.Y]).c_str());
WinExec(comname,SW_RESTORE);
WinExec и ShellExe... работают практически одинаково (винэкс просто немного урезан).
А каким образом закатать символы "" в строку адреса вообще не понятно....Билдер ругается , что не понятен синтаксис |
|
xTrim |
Отправлено: 12.11.2003, 07:03 |
|
Машинист паровоза
Группа: Участник
Сообщений: 208
|
Мы не ищем легких путей, да?
CODE |
AnsiString comname = "C:\\Program Files\\Winamp\\Winamp.exe ";
comname += "\""+Form1->StringGrid1->Cells[2][tgc.Y])+"\"";
WinExec(comname.c_str(),SW_RESTORE);
|
вроде так. a = "\"" значит что в переменной а будет " и все.
|
|