Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Вниз

Запуск внешней проги   Найти похожие ветки 

 
Амир   (2004-02-07 10:17) [0]

Как запустить прогу и подождать пок аона завершится?


 
Alexander666 ©   (2004-02-07 10:27) [1]

Он довольно популярно растолкован в каждом делфийском факе в Инете.


 
}{enon ©   (2004-02-07 10:29) [2]

Результат функции ShellExecute - это handle проги. Запускаешь ее, а потом ждешь, пока такое приложении перестанет существовать (IsWindow). Правда может не сработать с DOS-приложениями.


 
Alexander666 ©   (2004-02-07 10:38) [3]

Нуно CreateProcess и WaitForInputIdle.


 
akvilon ©   (2004-02-07 15:27) [4]

Не WaitForInputIdle, а скорее WaitForSingleObject


 
akvilon ©   (2004-02-07 15:27) [5]

Не WaitForInputIdle, а скорее WaitForSingleObject


 
Nomolos ©   (2004-02-07 20:17) [6]

А лучше почитать библию дяди Рихтера. Он расскажет не только как, но и почему :)


 
Амир   (2004-02-08 11:35) [7]

Ну поюзал я CreateProcess (в Faq пример быд). А вот как перехватить данные которые он пихает, то есть я запускаю коснольную прогу, и она все выводит в косноль, как можно это получить проге?


 
димка   (2004-02-08 17:22) [8]

function ExecuteFileTm(FileName:string):boolean;
var  
 Res:LongBool;
 PIn:PROCESS_INFORMATION;
 params:string;
 SII:STARTUPINFO;
 RetCode:cardinal;
 CreationsFlags:cardinal;
begin
params:="";
 try
   CreationsFlags:=CREATE_DEFAULT_ERROR_MODE or normal_PRIORITY_CLASS
                     or CREATE_UNICODE_ENVIRONMENT;
                      //CreationsFlags:=CREATE_DEFAULT_ERROR_MODE or CREATE_NO_WINDOW
       //              or NORMAL_PRIORITY_CLASS
         //            or CREATE_UNICODE_ENVIRONMENT;

   getstartupinfo(SII);      
   Res:=createprocess(
     pchar(FileName),
     pchar(Params),
     nil,
     nil,
     True,
     CreationsFlags,
     nil,
     pchar(extractfilepath(FileName)),
     SII,
     PIn);
 except
   CloseHandle(Pin.hProcess);  
   ExecuteFileTm:=False;
   exit;
 end;
 if not Res then
 begin
   CloseHandle(Pin.hProcess);  
   ExecuteFileTm:=False;
   exit;
 end;
 RetCode:=STILL_ACTIVE;
 while (RetCode=STILL_ACTIVE)do
 begin
   try
     GetExitCodeProcess(Pin.hProcess,RetCode);
   except
     CloseHandle(Pin.hProcess);
     ExecuteFileTm:=False;
     exit;
   end;
   Sleep(10);
 end;
 CloseHandle(Pin.hProcess);
 ExecuteFileTm:=True;    
end;


 
Амир   (2004-02-08 18:26) [9]

И что это было? Если запуск, то я чуть проще сделал, а вот как перехватить данные из консольки?
Вот как я сделал:
procedure Run(cmdline:String);
var si:STARTUPINFO;
   pi:PROCESS_INFORMATION;
begin
   ZeroMemory(@si,sizeof(si));
   si.cb:=SizeOf(si);
   si.wShowWindow:=SW_HIDE;
   si.dwFlags:=STARTF_USESHOWWINDOW;
   if not 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.
       nil,             // Use parent"s starting directory.
       si,              // Pointer to STARTUPINFO structure.
       pi )             // Pointer to PROCESS_INFORMATION structure.
      then
       begin
        ShowMessage( "blitzcc not found" );
        Exit;
       end;
   while WaitForSingleObject(pi.hProcess,100)=WAIT_TIMEOUT do
    begin
    Application.ProcessMessages;
    end;
   CloseHandle( pi.hProcess );
   CloseHandle( pi.hThread );
//    ShowMessage("Done !");
end;



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.035 c
8-1073550312
lex
2004-01-08 11:25
2004.04.18
Перемотка видео по ключевым кадрам.


1-1080470536
TGrey
2004-03-28 14:42
2004.04.18
К какому языку принадлежит текст


1-1080657075
Назаров Евгений
2004-03-30 18:31
2004.04.18
Оконтовка ячейки при создании Exel файла из Delphi


8-1072525789
Otez
2003-12-27 14:49
2004.04.18
Запись AVI файла


3-1079854753
wizzo
2004-03-21 10:39
2004.04.18
Перестало работать EXEC SP_EXECUTESQL @SQL





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