Форум: "Основная";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];
Вниззапуск Найти похожие ветки
← →
Ag2002 (2002-11-20 18:22) [0]Подскажите пожалуйста как запустить, внешние приложение, только так чтобы оно не закрывалось по завершению моей программы, а продолжало работу, если можно пример !!!
← →
Marcus (2002-11-20 18:40) [1]А почему ты решил, что оно должно закрыться? Это ж не дочернее окно, а автономное приложение. ShellExecute, WinExec, CreateProcess - кого хочешь выбирай
← →
Ag2002 (2002-11-20 18:43) [2]На сколько мне известно CreateProcess самое лучшие !!!
Если можно пример !!!
А вот ShellExecute - закрывет тотже експлорер !!!
← →
Marcus (2002-11-20 18:51) [3]function MyCreateProcess(const AppName: string; const CmdLine: string; WorkDir: PChar): boolean;
var
si: STARTUPINFO;
pi: PROCESS_INFORMATION;
begin
ZeroMemory(@si, SizeOf(si));
si.cb := SizeOf(si);
si.dwFlags := STARTF_USESHOWWINDOW;
si.wShowWindow := SW_SHOWNORMAL;
Result := CreateProcess(nil, PChar(Format(""%s" "%s"", [AppName, CmdLine])), nil, nil, FALSE,
NORMAL_PRIORITY_CLASS, nil, WorkDir, si, pi);
CloseHandle(pi.hProcess);
end;
← →
Ag2002 (2002-11-21 10:46) [4]AppName - должно быть имя exe файла
WorkDir - католог где он находится ?
а CmdLine можно оставлять пустым да ?
← →
Ag2002 (2002-11-22 14:39) [5]Помогите выходит большой "бок", с использованием выше указаной функции или в моей пороги !!!
Я храню список файлов которые хочу запусать в комоненте ListView, по нажатию на кнопку я хочу запустить файл который выделен у меня в ListView:
...
s := trim(ListView1.Selected.Caption);
s1 := ExtractFilePath(s);
if not MyCreateProcess(ExtractFileName(s),"",Pchar(s1)) then showmessage("Файл незапущен!!!");
...
но почему-то всегда запускается файл который занесён в список последним ?почему, проверял по шагово всё в функцию передаётся правельно и имя фалй и путь ? в чем глюк ?
← →
Ag2002 (2002-11-22 17:50) [6]rt
← →
KoluChi (2002-11-22 17:56) [7]MyCreateProcess?
← →
Marcus (2002-11-22 18:07) [8]В функцию CreateProcess можно передать AppName - путь к экзешнику, CmdLine - его параметры ком. строки. Если AppName = nil, то CmdLine путь к exe и через пробел параметры. WorkingDir можно оставить пустым, воспримет текущий каталог как рабочий. Это все, если файл - исполняемый, а если документ, то сначала нужно найти для него экзешник FindExecutable, а затем подсунуть в CreateProcess. А чем тебе ShellExecute не угодила? Удобней же
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c