Главная страница
    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.46 MB
Время: 0.039 c
4-1094827179
Иван_
2004-09-10 18:39
2004.10.17
Что такое IRQ прерывания?


14-1096491462
jack128
2004-09-30 00:57
2004.10.17
В продолжение "Что такое сабж, ИМХО, ошибка в 17 строке " и тд.


3-1095318509
Chery
2004-09-16 11:08
2004.10.17
MySQL - транзакции.


14-1096536754
X9
2004-09-30 13:32
2004.10.17
Дрова на звук для мат. платы Gigabyte GA-8SQ800


14-1096349062
Vlad Oshin
2004-09-28 09:24
2004.10.17
Можно ли контролер домена NT4 запихать в другой домен 2003?





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