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

Вниз

Как можно узнать когда закончила запускаться внешняя программа?   Найти похожие ветки 

 
nester   (2004-09-10 10:52) [0]

Добрый день.
Мне необходимо узнать момент когда закончила запускаться запущенная мною внешняя программа(например по ShellExecute).
Т.е. посмотрите например на Adobe Photoshop или Acrobat.
Пока они запускаются у них торчит сплэшскрин, причем довольно долго, и когда наконец запустилсяпоявляется основная форма для работы. Как отловить этот момент когда появилась основная форма?


 
Digitman ©   (2004-09-10 10:58) [1]

в цикле вызывай FindWindow()


 
nester   (2004-09-10 10:59) [2]

Не, не могу, в том то весь и прикол, что я заранее не знаю что за прога которую нужно запустить


 
Digitman ©   (2004-09-10 11:03) [3]


> заранее не знаю что за прога которую нужно запустить


не знаешь ? тогда откуда такая уверенность, что "прога" будет вообще иметь какие-либо формы ?


 
nester   (2004-09-10 11:17) [4]

Знаю что проги предназначены для отображения/редактирования инфы. Я думаю что у них будут формы%)))
Собсна может я и не правильно выразился, мне нужен тот момент когда прога готова работе. Т.е. тот момент когда произошел
Application.Run говоря языком делфи


 
Рамиль ©   (2004-09-10 11:19) [5]

WaitForInputIdle ?


 
nester   (2004-09-10 11:24) [6]

Хмм похоже на правду судя по названию, а мочно немного поподробнее?
P.S. У нас тут прям чат какойто


 
Рамиль ©   (2004-09-10 11:34) [7]

var
 Rlst: LongBool;
 StartUpInfo: TStartUpInfo;
 ProcessInfo: TProcessInformation;
 Error: integer;
begin
 FillChar(StartUpInfo, SizeOf(TStartUpInfo), 0);
 with StartUpInfo do
 begin
   cb := SizeOf(TStartUpInfo);
   dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
   wShowWindow := SW_SHOWNORMAL;
 end;
 Rlst := CreateProcess("C:\Windows\System32\notepad.exe", " c:\readme.txt", nil, nil, false, NORMAL_PRIORITY_CLASS, nil, nil, StartUpInfo, ProcessInfo);
 if Rlst then
 with ProcessInfo do begin
   WaitForInputIdle(hProcess, INFINITE); // ждем завершения инициализации
   CloseHandle(hThread); // закрываем дескриптор процесса
   CloseHandle(hProcess); // закрываем дескриптор потока
 end
else Error := GetLastError;
end;


 
nester   (2004-09-10 11:41) [8]

Ж)))))))) Благодарствую Рамиль


 
Digitman ©   (2004-09-10 11:48) [9]


> nester   (10.09.04 11:24) [6]
> Хмм похоже на правду


эта ф-ция всего лишь проверяет факт создания целевым процессом очереди оконных сообщений, но никоим образом не отражает фак создания этим процессом "формы"


 
nester   (2004-09-10 16:29) [10]

Хмм. Оно сработало так как надо мне, все замечательно, но вот проблемма частенько нужно еще чтобы не ехе-шник запускать, а .doc или .pdf или ... В общем как в ShellExecute(0, "open",PChar("gogogo.doc")...
А для CreateProcess нужен только исполнимый файл, где бы теперь еще узнать как можно по рассширению узнать ассоциированую программу?


 
Polevi ©   (2004-09-12 19:28) [11]

ShellExecuteEx



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

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

Наверх




Память: 0.47 MB
Время: 0.051 c
3-1095068465
Medik
2004-09-13 13:41
2004.10.17
SQL Server2000


14-1095855143
by
2004-09-22 16:12
2004.10.17
Документрирование и "дурно пахнущий код".


4-1094795847
ikivio
2004-09-10 09:57
2004.10.17
Получение информации из HKEY_CURRENT_USER другого пользователя


1-1096532602
awp
2004-09-30 12:23
2004.10.17
Invalid Pointer Operation при вызове DLL


8-1090319565
Batoon
2004-07-20 14:32
2004.10.17
Работа с картинкой





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