![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
не запускается скрипт [D7, XP, 2003]
cyberspy85 © (2009-09-14 22:44:00)Необходимо запустить скрипт с параметром (полное имя файла)
var
CurrentFilename, ScriptString: string;
//ArgMessages.js скрипт получающий в качестве параметра строку
//CurrentFilename
ScriptString:= 'Wscript.exe ArgMessages.js ' + CurrentFilename;
winexec(PAnsiChar(ScriptString), SW_SHOWNORMAL);
не хочет работать, а вот если в winexec указывать явно:
winexec('Wscript.exe ArgMessages.js Myfile.txt ', SW_SHOWNORMAL), то работает нормально.
Подскажите пожалуйста, что нужно сделать чтобы скрипт запускался а в качестве параметра принимал переменую с именем файла.
cyberspy85 (2009-09-15 11:58:00) [21]так... тому кто понял по существу вопроса будут предложения?
sniknik (2009-09-15 11:51:00) [22]> Извини не совсем понял что хотел сказать, в целом задача такая:
> 1. Определяется имя файла
> ...
да плевать что там у тебя определяется, раз оно не работает то описание ЧТО ты делаешь абсолютно бессмысленно без того КАК ты это делаешь.
> ну понятно что путь просто вместо него многоточие
кому понятно?
> чтоб меньше писать
а объяснять потом и запутывать/путаться ответах авторы которых тебя не понимают? плюс такие которые попытаются объяснить (я например), что в итоге может свести всю ветку к просто флуду.
неужели это лучше чем сразу привести ТО ЧТО ЕСТЬ, а не то, о чем нужно догадываться (и каждого в догадках будет разный результат).
неужели нельзя сразу показать значение переменной, и вообще не запутывать кучей переменных? написать например вот так -
winexec('Wscript.exe ArgMessages.js C:\Myfile.txt ', SW_SHOWNORMAL);
работает
varнет
ScriptString: string;
...
ScriptString:= 'Wscript.exe ArgMessages.js C:\Myfile.txt ';
winexec(PAnsiChar(ScriptString), SW_SHOWNORMAL);
или раз уж хочется с "пятой ногой"
varнет
CurrentFilename, ScriptString: string;
...
CurrentFilename:= 'C:\Myfile.txt ';
ScriptString:= 'Wscript.exe ArgMessages.js '+CurrentFilename;
winexec(PAnsiChar(ScriptString), SW_SHOWNORMAL);
и все! никаких недопониманий...
зачем в вопросах использовать переменные которые во первых не относятся к вопросу, во вторых со значением не определенным тут же в вопросе (ведь ясно же что на них в первую очередь и будут грешить - ламер их неправильно определил... ).
p.s. хотя что то мне подсказывает, если этот вопрос задать правильно, то он как бы сам собой решится...
cyberspy85 (2009-09-15 11:21:00) [23]
> Кстати WinExec используть или ламеры, или новички, которые
> справку не читают из принципа.
ламеры не ламеры ветка (начинающим) сюда и пишу, пробовал ShellExecute(Aplication.Handle,'open','Wscript.exe ArgMessages.js 12345 32424',nil,nil, SW_NORMAL); CreateProcess < вообще не запускается скрипт
работает только winexec
> Мы чего будем гадать, или ты приведешь результат в ScriptStringЯ
> как понимаю, что ты проверяешь разные строки вывода, в одном
> случае далеко не 'Wscript.exe ArgMessages.js Myfile.txt
> '
Извини не совсем понял что хотел сказать, в целом задача такая:
1. Определяется имя файла
2. Формируется строка запуска скрипта,и это имя предается в качестве параметра
3. Строка запуска подставляется через переменную в winexec
4. Запускается скрипт (и импортирует этот файлик в другое приложение посредством Automation)
> > CurrentFilename:= 'C:\....\Myfile.txt'Опять ерунда написана,
> сомневаюсь, что есть папка с именем ....
C:\.... смущает, ну понятно что путь просто вместо него многоточие чтоб меньше писать и файл Myfile.txt на месте
Anatoly Podgoretsky (2009-09-15 10:34:00) [24]
> CurrentFilename:= 'C:\....\Myfile.txt'
Опять ерунда написана, сомневаюсь, что есть папка с именем ....
Anatoly Podgoretsky (2009-09-15 10:31:00) [25]> cyberspy85 (14.09.2009 22:44:00) [0]
Кстати WinExec используть или ламеры, или новички, которые справку не читают из принципа.
Anatoly Podgoretsky (2009-09-15 10:30:00) [26]> cyberspy85 (14.09.2009 22:44:00) [0]
Мы чего будем гадать, или ты приведешь результат в ScriptString
Я как понимаю, что ты проверяешь разные строки вывода, в одном случае далеко не 'Wscript.exe ArgMessages.js Myfile.txt '
cyberspy85 (2009-09-15 10:29:00) [27]попробовал CurrentFilename:= '"C:\....\Myfile.txt"'
не то, тут сам скрипт не запускается даже если убрать CurrentFilename, для начала бы сделать чтоб скрипт запускался, потом с параметрами пробовать
AIK (2009-09-15 10:18:00) [28]
> cyberspy85 © (15.09.09 10:02) [5]
> нет все с кавычками: т.е.
> CurrentFilename:= 'C:\....\Myfile.txt'
Я имел в виду:
CurrentFilename:= ' "C:\....\Myfile.txt "'
cyberspy85 (2009-09-15 10:13:00) [29]"'Wscript.exe ArgMessages.js 12345 32424' + CurrentFilename+";
ну так вообще ощибку выдает
[DCC Error] Unit1.pas(603): E2038 Illegal character in input file: '"' (#$22)
brother (2009-09-15 10:06:00) [30]> PAnsiChar(ScriptString),
смущает
cyberspy85 (2009-09-15 10:05:00) [31]что-то видимо теряется при преобразовании PAnsiChar(ScriptString), пробовал StrNew тоже самое
brother (2009-09-15 10:05:00) [32]> ScriptString:= 'Wscript.exe ArgMessages.js ' + CurrentFilename;
попробуй: ScriptString:= ''Wscript.exe ArgMessages.js ' + CurrentFilename + '';
cyberspy85 (2009-09-15 10:02:00) [33]нет все с кавычками: т.е.
CurrentFilename:= 'C:\....\Myfile.txt'
сам скрипт не запускается
ScriptString:= 'Wscript.exe ArgMessages.js ' + CurrentFilename;
winexec(PAnsiChar(ScriptString), SW_SHOWNORMAL);
а вот если в winexec указывать явно:
winexec('Wscript.exe ArgMessages.js Myfile.txt ', SW_SHOWNORMAL), то работает нормально.(извиняюсь за повтор)
AIK (2009-09-15 08:45:00) [34]
> пути обычно содержат
... пробелы :)
AIK (2009-09-15 08:36:00) [35]
>... а в качестве параметра принимал переменую с именем файла.
Осмелюсь предположить что твоя ошибка в том что передавая имя файла с путями ты забываешь передавать его в кавычках так как пути обычно содержат
cyberspy85 (2009-09-15 07:25:00) [36]да именно так, с учетом пути до файла с:\.....\Myfile.txt
TIF (2009-09-15 03:31:00) [37]> (полное имя файла)
> Myfile.txt
Что есть полное имя файла? Случайно не с учётом ли пути до файла?
То есть что передаётся в CurrentFilename? "Myfile.txt" или "C:\12 и 34\Myfile.txt"?