Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
7-1076329781
WebErr
2004-02-09 15:29
2004.04.18
Как перегрузить соседний компьютер?


7-1076416013
aleman
2004-02-10 15:26
2004.04.18
Как из программы отключить сеть?


4-1076083261
TankMan
2004-02-06 19:01
2004.04.18
Как сделать дамп процесса из Delphi...


14-1080042117
gty
2004-03-23 14:41
2004.04.18
Как в excel преобразовать столбец в строку?


11-1062831013
dictator
2003-09-06 10:50
2004.04.18
Как реагировать на 2-е колесо мыши?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский