Форум: "Основная";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
ВнизЗапуск внешнего bat файла Найти похожие ветки
← →
СержК (2004-04-02 14:05) [0]Уважаемые мастера, подскажите(синтаксис) как запустить файл.bat с помощью ShellExecute.
Что-то у меня и не ругается и работать не хочет. Если можно - пример.
← →
[BAD]Angel © (2004-04-02 14:07) [1]используй лучше WinExec(path, sw_hide или sw_show);
← →
Defunct © (2004-04-02 14:19) [2]WinExec("start my.bat", zzz);
← →
ssk (2004-04-02 14:19) [3]>СержК
ругается и работать не хочет.
покажи свою строку вызова
>[BAD]Angel
наоборот, ShellExecute лучше
← →
СержК (2004-04-02 14:20) [4]Спасибо. Сейчас попробую.
← →
Anatoly Podgoretsky © (2004-04-02 14:22) [5]лучше не используй WinExec
← →
СержК (2004-04-02 14:23) [6]Я пытался сделать вот так:
ShellExecute(Handle, nil, "my.bat", nil, nil, SW_HIDE);
← →
ssk (2004-04-02 14:24) [7]первый nil замени на "open"
← →
[BAD]Angel © (2004-04-02 14:24) [8]>ssk
winexec("cmd.exe", sw_hide);
запускается сеанс MS DOS, но он скрыт! если нажать CTRL+SHIFT+ESC то cmd.exe можно обнаружить в списке процессов.
А чем лучше ShellExecute можно узнать?
← →
[BAD]Angel © (2004-04-02 14:25) [9]>Anatoly Podgoretsky ©
почему не использовать WinExec?
← →
panov © (2004-04-02 14:26) [10]Слюшай...
читай
ssk (02.04.04 14:19) [3]
Anatoly Podgoretsky © (02.04.04 14:22) [5]
и попробуй вот это
//Функция для создания нового процесса
//Параметры:
// aCommand: Строка для выполнения исполняемого файла(полный путь)
// aShow: Показывать/не показывать окно нового процесса
// aWaitExit: Ожидать/не ожидать завершения процесса
function ExecCmd(const aCommand: String;const aShow, aWaitExit: Boolean): Boolean;
var
pi:PROCESS_INFORMATION;
si:STARTUPINFO;
cmdLine,Path: String;
begin
ZeroMemory(@si,sizeof(si));
si.cb:=SizeOf(si);
si.dwFlags := STARTF_FORCEONFEEDBACK+STARTF_USESHOWWINDOW;
if aShow then si.wShowWindow := SW_SHOWNORMAL else si.wShowWindow := SW_HIDE;
Path := ExtractFilePath(aCommand);
cmdLine := aCommand;
Result :=
CreateProcess( nil, // No module name (use command line).
PChar(cmdLine), // Command line.
nil, // Process handle not inheritable.
nil, // Thread handle not inheritable.
False, // Set handle inheritance to FALSE.
0, // No creation flags.
nil, // Use parent"s environment block.
PChar(Path), // Use parent"s starting directory.
si, // Pointer to STARTUPINFO structure.
pi ); // Pointer to PROCESS_INFORMATION structure.
if Result then
begin
CloseHandle(pi.hThread);
if aWaitExit then WaitForSingleObject( pi.hProcess, infinite );
CloseHandle(pi.hProcess);
end;
end;
← →
Anatoly Podgoretsky © (2004-04-02 14:27) [11]Написано в справке, и вожможности совсем другие, чем у ShellExecute
← →
[BAD]Angel © (2004-04-02 14:30) [12]правильно! по возможностям ШЕЛЛ функциональнее, но Вин проще и меньше ресурсов ест
← →
СержК (2004-04-02 14:31) [13]ShellExecute (Handle, "open", "C:\My.bat", nil, nil, SW_HIDE);
ShellExecute (Handle, "open", "C:\My.bat", nil, nil, SW_HIDE);
WinExec("C:My.bat", sw_hide);
Ни один из вариантов bat файл не запускает.
← →
[BAD]Angel © (2004-04-02 14:32) [14]слэшь забыл в ВинЕкзеке :)
← →
СержК (2004-04-02 14:33) [15]Извиняюсь опечатался
ShellExecute (Handle, nil, "C:\My.bat", nil, nil, SW_HIDE);
ShellExecute (Handle, "open", "C:\My.bat", nil, nil, SW_HIDE);
WinExec("C:My.bat", sw_hide);
Ни один из вариантов bat файл не запускает.
← →
[BAD]Angel © (2004-04-02 14:34) [16]все запускается обоими способами... только SW_HIDE поменяй на SW_SHOW :)
← →
Anatoly Podgoretsky © (2004-04-02 14:37) [17][BAD]Angel © (02.04.04 14:30) [12]
Еше раз читай справку.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.032 c