Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

не запускается скрипт [D7, XP, 2003]


Страницы:   1 2

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"?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо