|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
|
greys |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 26.3.2016 Репутация: нет Всего: нет |
Здравствуйте!
Есть программа, которая при запуске сразу сворачивается иконкой в трей. Какого-либо штатного способа запустить её открытой нет. Мне необходимо программно её развернуть. Третий день бьюсь - ничего не получается. Перерыл весь интернет - рабочего решения не нашел. Как я понял, обратиться программно к значку иконке в трее нельзя, но вроде бы если послать хэндлу программы, который я нахожу с помощью FindWindow, все те команды, что посылаются при клике по значку, то окно должно теорически развернуться. Верно? Если да, помогите перевести на язык программирования лог программы Spy++. Заранее спасибо! 00B400E6 R WM_PSD_FULLPAGERECT fPreventDraw:False [lResult:00000000] 00B400E6 R WM_PSD_FULLPAGERECT fPreventDraw:False [lResult:00000000] 00B400E6 R WM_PSD_FULLPAGERECT fPreventDraw:False [lResult:00000000] 00B400E6 S WM_PSD_FULLPAGERECT hDC:00000064 lprcPage:00000200 [wParam:00000064 lParam:00000200] 00B400E6 R WM_PSD_FULLPAGERECT fPreventDraw:False [lResult:00000000] 00B400E6 S WM_PSD_FULLPAGERECT hDC:00000064 lprcPage:00000200 [wParam:00000064 lParam:00000200] 00B400E6 R WM_PSD_FULLPAGERECT fPreventDraw:False [lResult:00000000] 00B400E6 S WM_PSD_FULLPAGERECT hDC:00000064 lprcPage:00000200 [wParam:00000064 lParam:00000200] 00B400E6 S WM_PSD_FULLPAGERECT hDC:00000064 lprcPage:00000201 [wParam:00000064 lParam:00000201] 00B400E6 R WM_PSD_FULLPAGERECT fPreventDraw:False [lResult:00000000] 00B400E6 R WM_PSD_FULLPAGERECT fPreventDraw:False [lResult:00000000] 004403DA S WM_NCCREATE lpcs:0012F460 [wParam:00000000 lParam:0012F460] 004403DA R WM_SIZE lResult:00000000 004403DA R message:0x040A [User-defined:WM_USER+10] lResult:00000001 004D0328 S WM_WINDOWPOSCHANGING lpwp:0012F744 [wParam:00000000 lParam:0012F744] 003802F2 S WM_WINDOWPOSCHANGED lpwp:0012F744 [wParam:00000000 lParam:0012F744] 007603CC R WM_WINDOWPOSCHANGING lResult:00000000 00330326 R WM_WINDOWPOSCHANGING lResult:00000000 037D0306 R WM_NCCREATE fContinue:True [lResult:00000001] 037D0306 R WM_PARENTNOTIFY lResult:00000000 037D0306 R WM_PARENTNOTIFY lResult:00000000 037D0306 R WM_COMMAND lResult:00000000 00220512 S EM_SETMARGINS fwMargin:EC_LEFTMARGIN | EC_RIGHTMARGIN wLeft:0 wRight:0 [wParam:00000003 lParam:00000000] 00220512 R WM_WINDOWPOSCHANGED lResult:00000000 037D0306 R WM_COMMAND lResult:00000000 002E065A S WM_MOVE xPos:210 yPos:4 [wParam:00000000 lParam:000400D2] 002E065A R WM_WINDOWPOSCHANGED lResult:00000000 025D0108 R WM_WINDOWPOSCHANGED lResult:00000000 13960056 S WM_WINDOWPOSCHANGING lpwp:0012F7A8 [wParam:00000000 lParam:0012F7A8] 13960056 R WM_WINDOWPOSCHANGED lResult:00000000 000E0608 R WM_CREATE fContinue:0 (continue creation) [lResult:00000000] 000E0608 R WM_WINDOWPOSCHANGED lResult:00000000 002705F6 S WM_CREATE lpcs:0012F258 [wParam:00000000 lParam:0012F258] 00C900EE R message:0x1309 [User-defined:WM_USER+3849] lResult:00000001 13960056 R message:0x1328 [User-defined:WM_USER+3880] lResult:00000000 00C900EE R WM_SIZE lResult:00000000 00C50086 S WM_WINDOWPOSCHANGING lpwp:0012F5B4 [wParam:00000000 lParam:0012F5B4] 00C900EE S message:0x1328 [User-defined:WM_USER+3880] wParam:00000000 lParam:0012F044 13960056 S message:0x1328 [User-defined:WM_USER+3880] wParam:00000000 lParam:0012EFF0 00B400E6 S WM_WINDOWPOSCHANGING lpwp:0012F710 [wParam:00000000 lParam:0012F710] 13960056 R message:0x1328 [User-defined:WM_USER+3880] lResult:00000000 00B400E6 S WM_WINDOWPOSCHANGING lpwp:0012F5BC [wParam:00000000 lParam:0012F5BC] 00B400E6 R WM_GETTEXT cchCopied:14 lpszText:0012EA60 ("User Gate V2.8") [lResult:0000000E] 00B400E6 S message:0xB000 [User-defined:WM_APP+12288] wParam:00000000 lParam:00000000 13960056 R message:0xB01A [User-defined:WM_APP+12314] lResult:00000000 00B400E6 S WM_GETTEXT cchTextMax:510 lpszText:0012EA10 [wParam:000001FE lParam:0012EA10] 00B400E6 R WM_GETTEXT cchCopied:14 lpszText:0012EA10 ("User Gate V2.8") [lResult:0000000E] 00B703F0 S WM_ERASEBKGND hdc:13011338 [wParam:13011338 lParam:00000000] 004403DA R WM_NCPAINT lResult:00000000 00B400E6 S WM_WINDOWPOSCHANGED lpwp:0012F77C [wParam:00000000 lParam:0012F77C] 00B400E6 S WM_SIZE fwSizeType:SIZE_RESTORED nWidth:619 nHeight:486 [wParam:00000000 lParam:01E6026B] 13960056 R WM_IME_SETCONTEXT lResult:00000000 13960056 S WM_IME_SETCONTEXT fSet:1 iShow:C000000F [wParam:00000001 lParam:C000000F] 00B400E6 R WM_PSD_FULLPAGERECT fPreventDraw:False [lResult:00000000] 037D0306 P WM_PAINT hdc:00000000 [wParam:00000000 lParam:00000000] 037D0306 P WM_PAINT hdc:00000000 [wParam:00000000 lParam:00000000] 037D0306 P WM_PAINT hdc:00000000 [wParam:00000000 lParam:00000000] 037D0306 P WM_PAINT hdc:00000000 [wParam:00000000 lParam:00000000] 037D0306 P WM_PAINT hdc:00000000 [wParam:00000000 lParam:00000000] 037D0306 R WM_CTLCOLORSTATIC hBrush:94100FC2 [lResult:94100FC2] 004D0328 R message:0xBD38 [User-defined:WM_APP+15672] lResult:CF100720 001D0590 P WM_PAINT hdc:00000000 [wParam:00000000 lParam:00000000] 001D0590 P WM_PAINT hdc:00000000 [wParam:00000000 lParam:00000000] 00B400E6 R WM_PSD_FULLPAGERECT fPreventDraw:False [lResult:00000000] 00B400E6 R WM_PSD_FULLPAGERECT fPreventDraw:False [lResult:00000000] 001D0590 P WM_PAINT hdc:00000000 [wParam:00000000 lParam:00000000] 001D0590 P WM_PAINT hdc:00000000 [wParam:00000000 lParam:00000000] 001D0590 P WM_PAINT hdc:00000000 [wParam:00000000 lParam:00000000] 001D0590 P WM_PAINT hdc:00000000 [wParam:00000000 lParam:00000000] 001D0590 P WM_PAINT hdc:00000000 [wParam:00000000 lParam:00000000] |
|||
|
||||
greys |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 26.3.2016 Репутация: нет Всего: нет |
Нашел другой вариант, но он как-то криво работает: не отображается содержимое окна/вкладок и самое главное - нет статусбара, а из него мне нужно считывать данные.
Подскажите, можно ли как-то послать другому окну команду, чтобы оно отобразило статусбар? |
|||
|
||||
YDean |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 7.9.2009 Репутация: 1 Всего: 1 |
Судя по
0x040A [User-defined:WM_USER+10] создатель программы регистрирует значок в трее функцией Shell_NotifyIcon с указателем на NOTIFYICONDATA, содержащем в uCallbackMessage значение WM_USER + 10. Если окну программы послать WM_USER+10 с правильными wParam и lParam, оно должно развернуться. wParam - идентификатор значка. (Кто знает, что он там прописал, и анализирует ли он его при приёме?) lParam - мышиное сообщение (WM_LBUTTONDBLCLK ?) |
|||
|
||||
leniviy |
|
|||
Опытный Профиль Группа: Участник Сообщений: 552 Регистрация: 8.2.2003 Где: Спб Репутация: 1 Всего: 5 |
Я бы не заморачивался с c++, а скачал бы старый добрый autohotkey
Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
greys |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 26.3.2016 Репутация: нет Всего: нет |
Эту программу не пробовал, пробовал autoit - она не помогла, т.к. не может кликать по конкетрной иконке в трее, если положение иконки все время разное. YDean, спасибо за наводу. Сделал: SendMessage(wnd,WM_USER+1,NULL,WM_LBUTTONDBLCLK); и все разработало как надо! Даже как-то не верится что все так просто. Как-то подозрительно просто |
|||
|
||||
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |