![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как запустить программу через командную строку с параметрами?
vvavva © (2009-05-11 11:08:00)как запустить программу через командную строку с параметрами?
как программно запустить CONV3DS.EXE с пораметрами и указанным файлом?
чтоб сконвертировал , то что нужно!
желательно код делфи!
у меня есть код но чёт я ни так делаю!? и в итоге ничего не выходит!
//Выполнить команду в командной строке
function ExecAndWait(const ExeName, Params: string; out ExitCode: Cardinal; Timeout: Cardinal = MaxInt): boolean;
var
sui: TStartupInfo;
pi: TProcessInformation;
begin
ZeroMemory(@sui, SizeOf(sui));
sui.cb := SizeOf(sui);
Win32Check(CreateProcess(PChar(ExeName), PChar(Params), nil, nil, False, 0, nil,
nil, sui, pi));
try
CloseHandle(pi.hThread);
Result := WaitForSingleObject(pi.hProcess, Timeout) = WAIT_OBJECT_0;
if Result then
Win32Check(GetExitCodeProcess(pi.hProcess, ExitCode));
finally
CloseHandle(pi.hProcess);
end;
end;
procedure ExecCommandLine(const Cmd: string);
var
Dummy: Cardinal;
begin
ExecAndWait(GetEnvironmentVariable('ComSpec'), '/C ' + Cmd, Dummy);
end;
//Пример
procedure TForm1.Button1Click(Sender: TObject);
begin
ExecCommandLine('rd /S /Q "c:\test"'); // удаляем папку c:\test со всеми подпапками
end;
я запускаю так
ExecCommandLine(
'"E:\Convektor\CONV3DS.EXE" -x aP4.3DS'
);
CONV3DS кажись появляется но конвертации не происходит!
через ПУСК-ВЫПОЛНИТЬ- "E:\Convektor\CONV3DS.EXE" -x aP4.3DS всё ок!
ХЕЛП! ПЛИЗ!
Германн (2009-05-12 01:12:00) [1]
> Игорь Шевченко © (11.05.09 22:14) [7]
Было.
И-нет - "всемирная помойка"!
А где ты думаешь автор "надыбал" сию реализацию функции ExecAndWait?
Игорь Шевченко (2009-05-11 22:14:00) [2]
> E:\Convektor
слово какое-то знакомое. Был уже на нашей памяти "конвектор форматов" небезызвестный
Юрий Зотов (2009-05-11 18:43:00) [3]> vvavva © (11.05.09 15:58) [3]
А ожидание завершения? Или не нужно?
Anatoly Podgoretsky (2009-05-11 16:15:00) [4]Кстати это не одно и тоже, что ExecAndWait - работает по разному.
Anatoly Podgoretsky (2009-05-11 16:13:00) [5]Это и есть полное имя E:\Convektor\aP4.3DS, только разбитое на две части.
vvavva (2009-05-11 15:58:00) [6]вот рабочая версия!
ShellExecute(0 //Handle родительского окна, в который будут передаваться сообщения запускаемого приложения.
,PChar('open') //По умолчанию open, если указать nil.
,PChar('E:\Convektor\CONV3DS.EXE') //имя файла или документа, интернет ссылка, e-mail адрес
,PChar('-x aP4.3DS') //параметры, передаваемые приложению в командной строке.
,PChar('E:\Convektor\') //каталог по умолчанию куда бут выложен результат
,SW_SHOWNORMAL //стиль окна
);
пока что всем спасибо !
Anatoly Podgoretsky (2009-05-11 15:22:00) [7]aP4.3DS надо указать полное имя.
Юрий Зотов (2009-05-11 11:36:00) [8]Попробуйте так:
CreateProcess(nil, PChar(CommandLine), ...)
и в CommandLine передавайте полную командную строку:
E:\Convektor\CONV3DS.EXE" -x aP4.3DS