![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запуск приложения [D6, WinXP]
Morfey COOL © (2002-09-17 12:19:00)Help ! Не могу найти рабочий пример запуска внешнего приложения. Помогите кто может чайнику исходником... ! Спасибо заранее.
andrey_pst (2002-09-17 13:15:00) [1]var
PChTmp : PChar;
si : STARTUPINFO;
pi : PROCESS_INFORMATION;
ExitCodes : DWORD; // коды возврата архиватора (архивация)
...
// свернем контракт в архив RAR:
// выделим память под строку с нулевым символом
PChTmp := StrNew(PChar(ExtractShortPathName(GetCurrentDir) + "\rar.exe a " + fdPath + Label8.Caption + "\" + Label5.Caption + "\fd_" + n_kontrakt + ".rar " + fdPath + Label8.Caption + "\" + Label5.Caption + "\" + n_kontrakt + "\*.xls -df -ep -m5 -ri15:0 -s -rr"));
ZeroMemory(@si, sizeof(si));
si.cb := SizeOf(si);
// запустим Rar.exe
if not CreateProcess( nil, PChTmp, nil, nil, False, 0, nil, nil, si, pi ) then
MessageDlg("ОШИБКА !!!." + #13 + "Не могу запустить архиватор.", mtError, [mbOK], 0);
QFS_SKontr.Last // переходим к последнему контракту
else
begin
WaitForSingleObject(pi.hProcess, INFINITE); // ждем окончания процесса
GetExitCodeProcess(pi.hProcess, ExitCodes); // получаем код возврата
// посмотрим что вернулось:
case ExitCodes of
255 :
begin
MessageDlg("ОШИБКА АРХИВАТОРА № 255 !!!." + #13 + "Процесс архивации прерван пользователем." + #13 +
"Файлы не были полностью заархивированы и отправлены получателю." + #13 +
"Программа будет остановлена." + #13 +
"С вопросами обращайтесь к системному администратору.", mtError, [mbOK], 0);
QFS_SKontr.Last; // переходим к последнему контракту
end;
...
end;
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
StrDispose(PChTmp); // освободим память из под строки с нулевым символом
AL2002 (2002-09-17 12:50:00) [2]ShellExecute(Handle, "open", "c:\Windows\notepad.exe", nil, nil, SW_SHOWNORMAL);
REA (2002-09-17 12:45:00) [3]CreateProcess (сто раз было на форуме) или WinExec
AFrolov (2002-09-17 12:45:00) [4]ShellExecute