Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Запуск внешнего 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.027 c
3-1079453414
DataBase
2004-03-16 19:10
2004.04.18
Сортировка в DBGridEh


1-1080894120
IrviS
2004-04-02 12:22
2004.04.18
Как сделать для кнопки свойство ShortCut Ctrl + "+"


11-1063290916
Igit
2003-09-11 18:35
2004.04.18
Не собирается в .dpr


3-1079599268
owl_of_fear
2004-03-18 11:41
2004.04.18
Thread and ADOQuery


1-1081024810
Arturchik
2004-04-04 00:40
2004.04.18
А как закрывая окно крестиком выполнить что-нибудь?