Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.03.2011, 09:34
Аватар для by.Kirill
by.Kirill by.Kirill вне форума
Прохожий
 
Регистрация: 15.03.2011
Адрес: Беларусь, Минск
Сообщения: 3
Версия Delphi: RAD Studio 2010
Репутация: 10
Восклицание Вопрос по запуску стороннего приложения из Delphi

Доброе утро форум! Нужна помощь в такой проблеме: Есть два приложения, одно написано на Delphi, второе скачано из интернета (оба программаторы под разные микросхемы), и так, то приложение, что скачано из интернета, когда запущено в Windows, начинает функционировать после нажатия клавиши F5. Хотелось бы сделать так: Приложение написанное на Delphi после нажатия кнопки F4 выполняет свою функцию (реализовано) и после например нажатия кнопки F3 автоматически переключается на приложение скачанное из интернета и запускает его (Нажимает F5). Цель: Хочется добиться максимальной автоматизации процесса шитья микросхем, одной-двумя кнопками, не переключая между собой приложения мышью или кнопками Alt-Tab.

Последний раз редактировалось by.Kirill, 15.03.2011 в 11:23.
Ответить с цитированием
  #2  
Старый 15.03.2011, 11:08
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

По нажатию кнопки, ищем окно второго приложения:
Код:
  function FindWindow(ClassName, WindowName: PChar): HWnd;
если приложение найдено то, активируем его:
Код:
  function SetFocus (hWnd: HWND): HWND;
или
  function SetForegroundWindow(hWnd:HWND):LongBool; //предпочтительнее
в противном случае, запускаем его:
Код:
  CreateProcess; //описание в интернете
или
  function ShellExecute(hWnd: HWnd; Operation, FileName, Parameters, 
     Directory: PChar; ShowCmd: Integer): HINST; stdcall; //предпочтительнее

Последний раз редактировалось Asinkrit, 15.03.2011 в 11:12.
Ответить с цитированием
  #3  
Старый 15.03.2011, 11:35
Аватар для by.Kirill
by.Kirill by.Kirill вне форума
Прохожий
 
Регистрация: 15.03.2011
Адрес: Беларусь, Минск
Сообщения: 3
Версия Delphi: RAD Studio 2010
Репутация: 10
По умолчанию

по данному методу, после окончания шитья обеих микросхем, в Windows у меня будет выделено окно с программой написанной в Delphi ? или будет выделена уже программа скачанная из интернета?
Ответить с цитированием
  #4  
Старый 15.03.2011, 14:42
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Я уже запутался в ваших программах, сколько их? две по шитью? одна скачанная из интернета? И программа на дельфи? Еще раз и все сначала. Где вы нажимаете F5, где F4 и F3?

Если вы были в приложении написанном на дельфи, и нажали на F3 (по условию), откроется программа шитья микросхем, если ее закрыть (не переключаясь между окнами), то вернетесь в программу написанную на дельфи.
Ответить с цитированием
  #5  
Старый 15.03.2011, 15:47
Аватар для by.Kirill
by.Kirill by.Kirill вне форума
Прохожий
 
Регистрация: 15.03.2011
Адрес: Беларусь, Минск
Сообщения: 3
Версия Delphi: RAD Studio 2010
Репутация: 10
По умолчанию

мне её закрывать не надо, мне надо как то возвратиться на программу написанную на Delphi... Блоков которые надо прошивать очень большое количество, в каждом блоке по 2 микрухи которые надо прошить. Условие немного надо наверное поменять, и так есть две программы, одна написана на Delphi, 2-ая скачана с интернета. Пусть кнопкой F4 запускается процесс шитья программой которая написана на Delphi, кнопкой F5 запускается процесс шитья программой скачанной с интернета. Хотелось бы сделать следующее. Я нажимаю F4 шьется первая микруха, далее хочется, что бы из Delphi запускался процесс шитья 2-ой микросхемы без использования комбинации Alt+Tab (переключение между запущенными приложениями), и после завершения шитья 2-ой микросхемы приложением скачанным из интернета, можно было на программаторе поменять плату и без использовании мышки, запустить процесс шитья сперва первой микрухи, потом 2-ой и так по кругу
Ответить с цитированием
  #6  
Старый 15.03.2011, 16:23
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Примерно понял что вы хотите, предлагаю поставить глобальный хук на клавиши F3 и F4, для запуска первый и второй программы, алгоритм обработки кнопок, описан выше. Алгоритм установки хука здесь.
Получим следующее, если запустить приложение, на дельфи, то в системе зарезервируем (установим хук) кнопки F3 и F4, после в любой программе, при нажатиях на них, будет запущена или активизирована одна из программ.
то есть для начала работ, пользователю требуется запустить программу на дельфи, после окончания работ, закрыть все приложения, хотя можно сделать что-бы к примеру Ctrl-F3(F4) закрывали эти программы, ну если хочется что бы и программа дельфи закрывалась после закрытия обеих программ (хук надо снимать), то в алгоритм обработки кнопки, добавляем включение таймера, которой раз в секунду (чаще или реже) ищет окна этих двух программ и если их не находит, то закрывает себя. Можно сделать что бы программы вообще не было видно, для этого гасим показ формы и убираем ее с нижней панели задач. Выглядеть это будет следующим образом, пользователь запускает ярлык, ему сообщается что программа запущена, и программа прячется, дальше пользователь работает кнопками F3-F4, открывая и переключаясь между окнами, а после того как закрываем оба приложения, то программа уловив это спрашивает пользователя, не закрыться и ей, в случае если пользователь соглашается, то программа себя завершает. Это если я понял что вы хотите.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:19.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025