|
Вопрос # 4 483/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Не подскажете как программно развернуть приложение из трея?
 |
Вопрос задал: umka_max (статус: Посетитель)
Вопрос отправлен: 3 августа 2010, 12:46
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 24; последнее сообщение — 9 августа 2010, 12:29; участников в обсуждении: 3.
Страницы: [1] [2] [Следующая »]
|
min@y™ (статус: Доктор наук), 3 августа 2010, 12:50 [#1]:
А приложение своё или чужое?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
umka_max (статус: Посетитель), 3 августа 2010, 12:54 [#2]:
Сорри...
Чужое конечно. )))
|
|
min@y™ (статус: Доктор наук), 3 августа 2010, 13:07 [#3]:
Ну, тогда нужно найти хэндл главного окна этого приложения и послать ему WM_SHOWWINDOW или вызвать ShowWindow() с нужными флагами.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
umka_max (статус: Посетитель), 3 августа 2010, 13:23 [#4]:
А как найти хэндл главного окна?
Хэндл ToolbarWindow32 я могу найти, а вот дальше не пойму чего делать... (((
|
|
min@y™ (статус: Доктор наук), 3 августа 2010, 14:03 [#5]:
Цитата (umka_max):
А как найти хэндл главного окна?
Для того, чтобы найти хэндл главного окна программы, которую надо развернуть (а не панели задач), нужно знать его класс и/или заголовок и воспользоваться функцией FindWindow(). Чтобы узнать заголовок окна, надо его просто списать, когда окно программы развёрнуто. Класс окна можно определить с помощью одной из спецпрограмм, например, WinSight или WindowFinder.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
umka_max (статус: Посетитель), 3 августа 2010, 14:16 [#6]:
А вот еще интересно...
Если у приложения нет главного окна, но есть PopupMenu.
Нужно программно нажать пункт меню "О программе" приложения, висящего в трее. Как сделать?
|
|
min@y™ (статус: Доктор наук), 3 августа 2010, 14:45 [#7]:
У приложения, висящего в трее, всегда есть окно, чтобы принимать и обрабатывать системные оконные сообщения. Это окно может быть невидимым и/или иметь нулевые размеры.
Чтобы нажать на пункт меню, надо послать окну сообщение WM_COMMAND с номером этого пункта меню. Этот номер можно узнать, поковырявшись в ресурсах проги.
Могу прислать исходник такой программы, SpecChar называется. Её даже в трее не видно, однако при нажатии Win+C вылезает меню над активным приложением, чтобы юзер мог вставить неклавиатурный символ в любое поле редактирования. Очень давно ей пользуюсь.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
umka_max (статус: Посетитель), 3 августа 2010, 15:04 [#8]:
А с помощью чего можно узнать номер пункта меню?
WinSpy++ подойдет?
Ну если можно, то пришлите исходник SpecChar...
|
|
min@y™ (статус: Доктор наук), 3 августа 2010, 22:41 [#9]:
Цитата (umka_max):
А с помощью чего можно узнать номер пункта меню? WinSpy++ подойдет?
Не знаю, не юзал эту прогу.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
umka_max (статус: Посетитель), 5 августа 2010, 08:24 [#10]:
Ну подскажите чем можно "поковыряться" в ресурсах проги. )))
|
|
min@y™ (статус: Доктор наук), 5 августа 2010, 08:32 [#11]:
Ну, например, есть прога Resource hacker. Её должно хватить.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
umka_max (статус: Посетитель), 5 августа 2010, 16:36 [#12]:
Блин, ну нифига не получается...
А вы не могли бы для примера привести кусочек кода, где программно открывается PopupMenu аськи из трея... )))
Очень надо.
Спасибо.
|
|
min@y™ (статус: Доктор наук), 5 августа 2010, 16:45 [#13]:
Цитата (umka_max):
А вы не могли бы для примера привести кусочек кода, где программно открывается PopupMenu аськи из трея...
Нету. Никогда таким брейнфакингом не занимался. И аськи у меня нету, QIP рулит. Он, кстати, на delphi написан.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
umka_max (статус: Посетитель), 5 августа 2010, 17:14 [#14]:
Ну я QIP и имел ввиду... )))
|
|
min@y™ (статус: Доктор наук), 5 августа 2010, 17:19 [#15]:
Цитата (umka_max):
)))
Это самая лживая улыбка в мире.
Цитата (umka_max):
Ну я QIP и имел ввиду...
Ну и зачем тебе оно надо?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
umka_max (статус: Посетитель), 6 августа 2010, 16:51 [#16]:
Ну QIP это для примера.
А на самом деле есть приложение без главного окна, висящее в трее. У него есть меню, в меню пункт "О программе".
Нужно получить инфу о программе т.е. нажать пункт меню и сделать скриншот.
Все нужно сделать из моего приложения.
|
|
min@y™ (статус: Доктор наук), 7 августа 2010, 11:57 [#17]:
Для чего всё это, а?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
umka_max (статус: Посетитель), 9 августа 2010, 09:48 [#18]:
Нужно по работе.
Для автоматического сбора информации о текущих версиях ПО.
Такое вот дурацкое задание, но сделать надо.
|
|
Вадим К (статус: Академик), 9 августа 2010, 09:56 [#19]:
Автоматический збор делается не так. У всех нормальных программ есть ресурс "версия" и он заполняется программистом.
Так вот, считываем с списка задач имя исполняемого файла и путь к нему, а потом известными функциями забираем версию продукта. И все! Не нужно городить город кликами мышки в трее, вытягиванием окон и подобным.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 9 августа 2010, 10:36 [#20]:
Цитата (Вадим К):
а потом известными функциями забираем версию продукта.
Всё правильно. Функции: GetFileVersionInfo(), GetFileVersionInfoSize() и т.п.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Страницы: [1] [2] [Следующая »]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|