Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 483

/ вопрос открыт /

Приветствую, уважаемые эксперты!
Не подскажете как программно развернуть приложение из трея?

umka_max Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: umka_max (статус: Посетитель)
Вопрос отправлен: 3 августа 2010, 12:46
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 24; последнее сообщение — 9 августа 2010, 12:29; участников в обсуждении: 3.

Страницы: [1] [2] [Следующая »]

min@y™

min@y™ (статус: Доктор наук), 3 августа 2010, 12:50 [#1]:

А приложение своё или чужое?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
umka_max

umka_max (статус: Посетитель), 3 августа 2010, 12:54 [#2]:

Сорри...
Чужое конечно. )))
min@y™

min@y™ (статус: Доктор наук), 3 августа 2010, 13:07 [#3]:

Ну, тогда нужно найти хэндл главного окна этого приложения и послать ему WM_SHOWWINDOW или вызвать ShowWindow() с нужными флагами.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
umka_max

umka_max (статус: Посетитель), 3 августа 2010, 13:23 [#4]:

А как найти хэндл главного окна?
Хэндл ToolbarWindow32 я могу найти, а вот дальше не пойму чего делать... (((
min@y™

min@y™ (статус: Доктор наук), 3 августа 2010, 14:03 [#5]:

Цитата (umka_max):

А как найти хэндл главного окна?

Для того, чтобы найти хэндл главного окна программы, которую надо развернуть (а не панели задач), нужно знать его класс и/или заголовок и воспользоваться функцией FindWindow(). Чтобы узнать заголовок окна, надо его просто списать, когда окно программы развёрнуто. Класс окна можно определить с помощью одной из спецпрограмм, например, WinSight или WindowFinder.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
umka_max

umka_max (статус: Посетитель), 3 августа 2010, 14:16 [#6]:

А вот еще интересно...
Если у приложения нет главного окна, но есть PopupMenu.
Нужно программно нажать пункт меню "О программе" приложения, висящего в трее. Как сделать?
min@y™

min@y™ (статус: Доктор наук), 3 августа 2010, 14:45 [#7]:

У приложения, висящего в трее, всегда есть окно, чтобы принимать и обрабатывать системные оконные сообщения. Это окно может быть невидимым и/или иметь нулевые размеры.
Чтобы нажать на пункт меню, надо послать окну сообщение WM_COMMAND с номером этого пункта меню. Этот номер можно узнать, поковырявшись в ресурсах проги.

Могу прислать исходник такой программы, SpecChar называется. Её даже в трее не видно, однако при нажатии Win+C вылезает меню над активным приложением, чтобы юзер мог вставить неклавиатурный символ в любое поле редактирования. Очень давно ей пользуюсь.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
umka_max

umka_max (статус: Посетитель), 3 августа 2010, 15:04 [#8]:

А с помощью чего можно узнать номер пункта меню?
WinSpy++ подойдет?

Ну если можно, то пришлите исходник SpecChar...
min@y™

min@y™ (статус: Доктор наук), 3 августа 2010, 22:41 [#9]:

Цитата (umka_max):

А с помощью чего можно узнать номер пункта меню? WinSpy++ подойдет?

Не знаю, не юзал эту прогу.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
umka_max

umka_max (статус: Посетитель), 5 августа 2010, 08:24 [#10]:

Ну подскажите чем можно "поковыряться" в ресурсах проги. )))
min@y™

min@y™ (статус: Доктор наук), 5 августа 2010, 08:32 [#11]:

Ну, например, есть прога Resource hacker. Её должно хватить.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
umka_max

umka_max (статус: Посетитель), 5 августа 2010, 16:36 [#12]:

Блин, ну нифига не получается...
А вы не могли бы для примера привести кусочек кода, где программно открывается PopupMenu аськи из трея... )))
Очень надо.
Спасибо.
min@y™

min@y™ (статус: Доктор наук), 5 августа 2010, 16:45 [#13]:

Цитата (umka_max):

А вы не могли бы для примера привести кусочек кода, где программно открывается PopupMenu аськи из трея...

Нету. Никогда таким брейнфакингом не занимался. И аськи у меня нету, QIP рулит. Он, кстати, на delphi написан.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
umka_max

umka_max (статус: Посетитель), 5 августа 2010, 17:14 [#14]:

Ну я QIP и имел ввиду... )))
min@y™

min@y™ (статус: Доктор наук), 5 августа 2010, 17:19 [#15]:

Цитата (umka_max):

)))

Это самая лживая улыбка в мире.

Цитата (umka_max):

Ну я QIP и имел ввиду...

Ну и зачем тебе оно надо?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
umka_max

umka_max (статус: Посетитель), 6 августа 2010, 16:51 [#16]:

Ну QIP это для примера.
А на самом деле есть приложение без главного окна, висящее в трее. У него есть меню, в меню пункт "О программе".
Нужно получить инфу о программе т.е. нажать пункт меню и сделать скриншот.
Все нужно сделать из моего приложения.
min@y™

min@y™ (статус: Доктор наук), 7 августа 2010, 11:57 [#17]:

Для чего всё это, а?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
umka_max

umka_max (статус: Посетитель), 9 августа 2010, 09:48 [#18]:

Нужно по работе.
Для автоматического сбора информации о текущих версиях ПО.
Такое вот дурацкое задание, но сделать надо.
Вадим К

Вадим К (статус: Академик), 9 августа 2010, 09:56 [#19]:

Автоматический збор делается не так. У всех нормальных программ есть ресурс "версия" и он заполняется программистом.
Так вот, считываем с списка задач имя исполняемого файла и путь к нему, а потом известными функциями забираем версию продукта. И все! Не нужно городить город кликами мышки в трее, вытягиванием окон и подобным.
Галочка "подтверждения прочтения" - вселенское зло.
min@y™

min@y™ (статус: Доктор наук), 9 августа 2010, 10:36 [#20]:

Цитата (Вадим К):

а потом известными функциями забираем версию продукта.

Всё правильно. Функции: GetFileVersionInfo(), GetFileVersionInfoSize() и т.п.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Страницы: [1] [2] [Следующая »]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 23 сентября 2020, 13:04
Выполнено за 0.06 сек.
Рейтинг@Mail.ru