![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
CreateProcess, ShellExecute, WinExec [Win95/98]
balepa © (2006-04-04 14:38:00)Есть ли какая-то разница между этими функциями в рамках моей задачи: Нужно просто запустить .exe'шник и передать туда commandline. В данный момент использую WinExec (руководствовался тем что у нее параметров меньше чем у всех остальных :)).
balepa (2006-05-12 15:05:00) [1]
> Zhekacoder (07.05.06 20:20) [8]
А при чем тут ?
Eraser (2006-05-11 23:46:00) [2]
> Zhekacoder (07.05.06 20:20) [8]
>
> Ну после CreateProcess можно еще WaitForSingleObject
эт не то.. WaitForSingleObject с аргументом - дескриптором процесса, ждёт завершение работы этого самого процесса.
Сергей М. (2006-05-11 17:00:00) [3]
> Как быть?
Привести тип string к типу PAnsiChar.
var
PAnsiCharData: PAnsiChar;
StringData: String;
..
PAnsiCharData := PAnsiChar(StringData);
Sibiryak (2006-05-11 16:42:00) [4]Прошу прощения за вторжение. Не могу решить задачу. Нужно запускать экзешник с кучей динамических параметров, которые зависят от результатов действий программы ранее. Т.е. четко строку типа 'c:\program.exe' я для функции WinExec сформировать не могу. А при подстановке переменной string , содержащей путь к файлу и текущие параметры в WinExec не дает результата по причине несовместимости string и AnsiChar. Как быть? Подскажите плиз...
Dstr (2006-05-07 21:11:00) [5]По-любому вызов любой функции приведет к одной(Например, CreateProcessA,использующая Ansii код,перегоняет все к ТолстойСтроке(WideChat)и вызывает в свою очередь CreateProcessW,CreateProcessW в свою очередь вызывает ряд функций из NativeApi выполняя необходимые преобразования,заполняя StartupInfo и тд,и вызывает опять же из NativeApi какуе нить функцию запуска ексешника,а NativeApi мош вызовет эшо ченить, и так фсе функции WinApi а про не Api(Делфийные и тд) ваще запарешся говорить
Zhekacoder (2006-05-07 20:20:00) [6]Ну после CreateProcess можно еще WaitForSingleObject Добавить
Джо (2006-04-04 16:39:00) [7]Да, возможно, я поторопился с выводами. Действительно, CreateProcess не ждет полной инициализации процесса. А WinExec дожидается выполнения GetMessage в создаваемом процессе. Иногда, наверное, это может оказаться существенным.
Leonid Troyanovsky (2006-04-04 15:20:00) [8]
> Джо © (04.04.06 15:11) [5]
> А когда не "как"? Обе функции все равно, очевидно, вызывают
> один и тот же загрузчик исполнимых файлов. А функции эти
WinExec делает еще WaitForInputIdle, IMHO.
--
Regards, LVT.
Джо (2006-04-04 15:11:00) [9]> [4] balepa © (04.04.06 14:51)
> Когда как.
А когда не "как"? Обе функции все равно, очевидно, вызывают один и тот же загрузчик исполнимых файлов. А функции эти не более чем интерфейс к нему.
balepa (2006-04-04 14:51:00) [10]
> Джо © (04.04.06 14:49) [3]
Когда как.
Джо (2006-04-04 14:49:00) [11]Скорость самого запуска — величина крайне несущественная, чтобы о ней задумываться ;)
balepa (2006-04-04 14:45:00) [12]
> Сергей М. © (04.04.06 14:41) [1]
thx
А то я весь изнервничался :)
В скорости запуска приложения (.exe'шника) ?
Сергей М. (2006-04-04 14:41:00) [13]В рамках твоей задачи разницы никакой нет.