powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Время запуска процесса
8 сообщений из 8, страница 1 из 1
Время запуска процесса
    #32146405
bav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем.
Есть приложение...когда оно запускается нужна седлать какую-то индикацию...тобишь нужно знать когда оно закончит инициализироваться...
Как определить когда оно запустится окончательно?
...
Рейтинг: 0 / 0
Время запуска процесса
    #32146415
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зависит от приложения....
и от того что ты подразумеваешь под инициализацией...
в одном случае это может быть после окончания работы функции Application.Initialize в дрогом после создания последнего объекта при загрузке приложения
...
Рейтинг: 0 / 0
Время запуска процесса
    #32146795
bav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из приложения вызвается другое, которое тянет данные из базы, но исходиков у меня нет, и пока оно прорисует все элементы и вытянет надо как-то выяснить это время...как можно есть какие -нибудь функции API
...
Рейтинг: 0 / 0
Время запуска процесса
    #32146898
oleg_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно узнать время, например, до появления главного окна.
Но это не будет означать, что данные загрузились. Или будут?
Как программа работает?
Может какая нить заставка есть?
Тогда можно ждать пока главное окно не вылезет наверх.
...
Рейтинг: 0 / 0
Время запуска процесса
    #32147036
bav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобщем...там есть ListView
И пока данные туда не закачаются форма до конца не прорисовывается.
...
Рейтинг: 0 / 0
Время запуска процесса
    #32147103
Roman Ignatiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запускай приложение через CreateProcess
получишь hProcess (hThread сразу CloseHandle)
и на него WaitForInputIdle
как отпустит - все готово к работе.
Но это общая функция - отпускает, когда приложение начинает обрабатывать очередь сообщений
В общем, что-то вроде

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
procedure LoadClient(const ClientName: string);
var
  si: STARTUPINFO;
  pi: PROCESS_INFORMATION;

begin
  ZeroMemory(@si,sizeof(si));
  si.cb := sizeof(si);
  if not CreateProcess(nil,PChar(ClientName),nil,nil,false,0,nil,nil,si,pi)
    then
      raise Exception.Create('Не могу запустить ' + ClientName);
  CloseHandle(pi.hThread);
  try
    while WaitForInputIdle(pi.hProcess, 1000) = WAIT_TIMEOUT do
      if Assigned(FormLoad) then // делаем что надо - здесь обновляем форму
        FormLoad.Update;
  finally
    CloseHandle(pi.hProcess);
  end;
end;
...
Рейтинг: 0 / 0
Время запуска процесса
    #32148326
bav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как узнать, что приложение стало обрабатывать сообщения, если нет возмоожности открыть его другим процессом?
Есть то , что я нажимаю кнопку и запускаю его, то есть влезть в код того приложения нет возможности :(
...
Рейтинг: 0 / 0
Время запуска процесса
    #32148331
Roman Ignatiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Найди FindWindow окно этого приложения и пошли ему через Sendmessage какое-нибудь сообщение, например, WM_GETTEXT - заодно и заголовок проверишь...
Возврат из этой функции будет только после обработки сообщения
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Время запуска процесса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]