Главная страница
    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.49 MB
Время: 0.033 c
1-1080734556
SisiusP
2004-03-31 16:02
2004.04.18
Перехват ShortCut через ApplicationEvents?


3-1079530673
DimaF
2004-03-17 16:37
2004.04.18
Firebird


1-1080548862
Хэнк
2004-03-29 12:27
2004.04.18
Можно сделать, чтобы компоненты грабились в bmp файл?


3-1079531068
DimaF
2004-03-17 16:44
2004.04.18
Firebird


3-1079696178
int21h
2004-03-19 14:36
2004.04.18
Права в Paradox





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский