Форум программистов, компьютерный форум, киберфорум
Delphi: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 20.10.2017
Сообщений: 32
1

Отследить удачный запуск программы

05.11.2017, 17:01. Показов 1506. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток:
Для запуска программы использую такую процедуру:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure RunProgram(cmdStr:string; Wait:Boolean; ShowWindow:Word);    ///////////запуск программ
var si:TStartupInfo;
  pi:TProcessInformation;
  s:string;
begin
  FillChar(si, SizeOf(si), 0);
  si.cb := SizeOf(si);
  si.dwFlags:=STARTF_USESHOWWINDOW;
  si.wShowWindow := SW_HIDE;
  s:=cmdStr;
  UniqueString(s);
  getlasterror;
  if not CreateProcess(nil, PChar(S), NIL, NIL, False, 0, NIL, NIL, si, pi) then
    showMessageFmt('Ошибка %d. %s',[getlasterror,SysErrorMessage(getlasterror)]);
 
  if wait then
    WaitForSingleObject(pi.hProcess, INFINITE);
  CloseHandle(pi.hProcess);
  CloseHandle(pi.hThread);
end;
В дальнейшем ее вызываю так:
RunProgram('путь на файл',false, SW_HIDE);
Вопрос:
Как отследить запуск программы (с прорисовкой окон, если возможно), для того чтобы выполнять дальнейшие действия с этой программой???????
Заранее благодарю за любую помощь

Добавлено через 20 часов 12 минут
Использовал для поиска запуска программы такую конструкцию но она не совершенна):
Delphi
1
2
3
repeat
                            sleep(100) ;
                       until  FindWindow(nil, 'uDisk ToolBar')<>0;
после нее все равно надо ставить, я так понимаю не успевают прорисовываться окна.
Delphi
1
sleep(1000);
Но это фиксированная цифра и на разных машинах она может не сработать, соответственно, приложение откроется но манипуляции с окнами не произойдут.
Может, можно ка-то отследить запуск приложения иначе.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2017, 17:01
Ответы с готовыми решениями:

Как отследить запуск (чтение) файлов
подскажите,как можно отловить запуск программ или файлов. Например при слежении за диском &quot; С &quot; ,...

Удачный запуск (vs 2008)
Вопрос наверное будет немного необычный. Как в VS 2008 отключить автоматический запуск последнего...

Не удачный запуск windows 8
И так я принялся устанавливать windows 8 RT по верх windows 7 ultimate, устанавливал версию...

не удачный запуск агента sql server
всем добрый день. при запуске службы &quot;Агент скуэль сервер &quot; на локальный компьютер служба была...

2
1 / 1 / 0
Регистрация: 20.10.2017
Сообщений: 32
08.11.2017, 21:07  [ТС] 2
Товарищи программисты, не ужели нет идей по реализации данной проблемы?

Добавлено через 46 минут
а если создать отдельный поток на выполнение этой функции?? У кого есть опыт работы с потоками
0
5786 / 4528 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
10.11.2017, 10:54 3
какая знакомая функция))

Delphi
1
 WaitForInputIdle(PI.hProcess, INFINITE); // ждем завершения инициализации
1
10.11.2017, 10:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2017, 10:54
Помогаю со студенческими работами здесь

Отследить запуск сторонней программы без таймера
Здравствуйте. Задача такая, отслеживать запущенные программы, и , если программа соответствует...

Как отследить запуск определенной программы и остановить несколько сервисов в системе
Вообщем для себя решил 4 месяца назад написать программу (под виндовс 7) задача этой программы...

Запуск программы без создания окна. Запуск фоновой программы
Вопрос, как сделать, чтобы консольное приложение при запуске не создавало окошко консоли. Т.е....

Отследить запуск сети
вопрос на засыпку! а можно ли используя cmd отследить запуск сети и опираясь на это событие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru