| 
| 
 | Вопрос # 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] [Следующая »]  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |