Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2010, 14:20   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Пауза, пока не завершится другая программа.

Посылаю ShellExecute c параметром. Как приостановить работу главной программы, пока не отработает запущенная (это конвертор)?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 12.07.2010, 14:32   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

WaitForSingleObject(хендл запущенной проги (открытого файла), INFINITE);
Затормозит твой процесс
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.07.2010, 14:34   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Як хендл получить? FindWindow? А ежели он безформенный?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 12.07.2010, 15:29   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

просто рабочий пример:

Код:
program PackArj;

USES SYSUTILS, Windows;
{$APPTYPE CONSOLE}

var
    S1        : string;
    fResCheck : text;
    fResNeed  : text;



procedure PackFile( sFName, sDestPath : string);
var si:TStartupInfo;
    pi:TProcessInformation;
    cmdline:string;

begin
    ZeroMemory(@si,sizeof(si));
    si.cb:=SizeOf(si);
    cmdline:='C:\UTIL\ARCS\arj.exe a currtest c:\temp\*.htm';
    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
         WriteLn( 'CreateProcess failed. ('+cmdline+')' );
         Exit;
        end;
    WaitForSingleObject( pi.hProcess, INFINITE );
    CloseHandle( pi.hProcess );
    CloseHandle( pi.hThread );
//    WriteLn('Done !');
end;


// тело самой программы - main()
begin

    PackFile('',''); 

    WriteLn('Done.');
    Readln;

end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.07.2010, 15:35   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Благодарю, работает на 100%.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 12.07.2010, 16:15   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
FindWindow? А ежели он безформенный?
В данном случае имеется ввиду хендл открытого процесса
(Вон у Сержа - pi.hProcess)
Хендл это не только номер окошка, Микрососы это словечко втюлили везде.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рестарт и пауза? Alexxx92 Помощь студентам 5 17.05.2010 12:37
Пауза в реальном режиме Doholyan Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 20.12.2009 07:32
сеть Петри! yasper или другая программа! hay20 Помощь студентам 0 18.12.2009 13:27
Программа открыается если есть другая программа. bookkc Паскаль, Turbo Pascal, PascalABC.NET 12 14.10.2009 20:09
Пауза в выполнении программы Иллидан Общие вопросы Delphi 6 24.01.2008 16:56