Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.59.165] |
|
Сообщ.
#1
,
|
|
|
Ребята, помогите, чувствую, что должно быть простое и очевидное решение, а я брожу по буеракам вокруг да около(((
Итак. Имеется сторонняя софтинка. Стоит в автозапуске. И всё бы хорошо, но будучи запущенной, она осчастливливает нас своим назойливым окном, которое работающим с устройством людям видеть совершенно бесполезно и даже вредно. Мне надо его как-то закрыть из своего кода, по сути программно сделав то, что можно сделать стилусом, нажав вверху ОК или внизу Меню -> Скрыть. Пробую: SetForegroundWindow(GetDesktopWindow()) - не работает. Почему-то вместо окна Home отображается всё та же форма. Ну что ж... Говорю ей: PostMessage(CurrWnd, WM_CLOSE, 0, 0); или даже PostMessage(CurrWnd, WM_QUIT, 0, 0); закрывает. но в обоих случаях приложение полностью выгружается, а оно нужно людям, должно работать в фоне... пробую искать эту заменяющую крестик кнопку <ок> через FindWindow - закономерно не нахожу, не кнопка это... мысль эмулировать нажатие стилусом на область экрана, где в данный момент кнопка очень-очень не нравится - предполагаются разные разрешения устройств, разные версии Windows Mobile, эта кнопка может гулять по экрану, и выискивать ей как-то муторно, некрасиво и ненадёжно... неужели нет простого, красивого и правильного способа сделать это в одну строчку? какой-нибудь PostMessage некоего сообщения форме, которое она воспримет как нажтие ОК в верхнем углу? помогите, кто знает... |
Сообщ.
#2
,
|
|
|
Думаю тебе надо не закрывать окно, а минимизировать его. Использовать что-то типа WM_SYSCOMMAND и SC_MINIMIZE.
Не уверен, что у мобильный винды тут все так же как у обычной, но попробуй в эту сторону покопать. |
Сообщ.
#3
,
|
|
|
Сделай свою прогу на весь экран и TOPMOST
|
Сообщ.
#4
,
|
|
|
PostMessage(FindWindow('YourProgramTitle', nil), sw_hide, 0, 0);
или ShowWindow(FindWindow('YourProgramTitle', nil), sw_hide); |
Сообщ.
#5
,
|
|
|
после
ShowWindow(FindWindow('YourProgramTitle', nil), sw_hide); получается вот такая картина: окно становится неактивным, но не уходит. причём GetDesktopWindow() возвращает хэндл на именно это окно, а не на Home... |
Сообщ.
#6
,
|
|
|
в общем, проблема решилась. в RemoteSpy посмотрел последовательность сообщений окну при нажатии <ОК> в форме, затем повторил её самостоятельно, используя SendMessage - сработало. спасибо всем откликнувшимся!
|
Сообщ.
#7
,
|
|
|
Цитата fedorez @ ...в RemoteSpy посмотрел последовательность сообщений окну... Добрый день, fedorez. Вижу что тема стара, но всё же, можете подробнее рассказать об этой программе? У меня подобная проблема, только с меню, а простой поиск выдал кучу хлама на запрос "RemoteSpy"... Заранее благодарю. |