![]() |
Как убрать Alt-Tab в Zinc
Нужно убрать Alt-Tab в полноэкранном приложении.
Сделал через mdm.Application.onAppChangeFocus но получается не эстетично: появляется окно выбора приложения, при выборе любого приложения, остается текущее, но иногда выскакивает меню "Пуск" и экран дергается т.к. разрешение не системное. Прочитал здесь насчет перехвата событий через dll, может этим путем пойти? Хочу, чтобы ничего не появлялось, экран не мигал и т.д. |
>>Прочитал здесь насчет перехвата событий через dll,
может этим путем пойти? этим путем пойти, конечно, можно. только стоит ли оно того? альт-таб - это системная функция. нужно будет хорошо потрудиться, что бы ее отключить из цинка. а вдруг пользователям это и не нужно совсем? да и не понравится может многим такое "грубое вмешательство" в любимую систему и отключение привычной функции. или же веские основания есть все-таки? тогда поможет Код:
BOOL RegisterHotKey(Код:
BOOL SystemParametersInfo(Цитата:
SystemParametersInfo(97, 0, 0, 0); ... ха-ха. под XP не катит. тогда хук ставить. про хуки см статью в ссылках по ZInc "слушаем систему". примерчик может изготовлю по-позже, но сейчас некогда. |
отключаем ALT+TAB
а вот и пример, все проще оказалось
Код:
// отключаем ALT+TAB |
Цитата:
(я им пользуюсь когда он еще был Flash Studio Pro), после перехода на другую задачу по альттаб, а потом обратно, не восстанавливается несистемное разрешение моего приложения. Точнее разрешение теряется (обратно к системному) при переходе на другую задачу. Приложение становится не полноэкранным, выглядит это как баг. Раньше задача сменялась, а разрешение сохранялось. Цитата:
жаль у меня не работает :) (XP sp2) возвращает false. Интересно, как этот код будет себя вести под Вистой? Еще я вспомнил, что придется отключать Ctrl+Esc и клавишу "window" или как она там называется (MOD_WIN = 8 вроде) Хорошо, если бы все-таки удалось это сделать, есть еще одна проблема: появляется flash-меню при нажатии клавиши "Меню" (VK_MENU), trapallkeys не помогает (приходится убирать из ресурсов exe-заголовка, но это геромой) |
>>жаль у меня не работает (XP sp2) возвращает false.
возможно нужно поменять параметр вызова, тот который у меня в примере '0x003e'. вообще, может быть конфликт при "случайном" совпадении id комбинаций клавиш. попробуйте поменять его в указанных пределах. у меня сразу заработало. XP SP2. покопайте API - встречал там метод как этот id получать программно и без конфликтов. GlobalAddAtom вроде. под вистой щас проверю :) а вот с появлением флаш-меню по кнопке "Меню" вы меня удивили. никогда раньше не задумывался над этим. а меж тем весьма актуально.. просто интересно (надеюсь не дадут нам по плюсу) как вы заглядываете в ехе цинковский? ... под вистой не катит. дожимать не стал. и тем не менее остается вариант с хуком. |
у меня была версия 2.5.0.6, видимо из-за этого.
На последней (34) работает. Под висту, видимо, cтоит экспериментировать с выходом zinc 3.0, там обещана нормальная поддержка висты (сейчас на некоторых машинах с вистой вообще цинк не запускается) Придется ждать, все равно продажи 2.5 приостановлены... Цитата:
использую exescope, но можно любой прогой. |
вот такой вариант. срабатывает аж при нуле.но на висте хоть и выходит из цикла, типа true все-таки возвращает, но не катит все равно :(
Код:
// задействуем обработчик события onAppExit чтобы при выходе "восстановить" скорость мыши. |
я на счет кнопки "Меню"...
Вобщем-то проблема появления флаш-меню по этой кнопке решается через самописную длл. я правда использовал не хук, а подмену оконной процедуры. но работает, отключается оно, меню это... можно и другие клавиши ловить, да и мыш ловится. но до конца этот вопрос я не прорабатывал. добавлю только, что нужное окно в цинке запрятано аж до второго "ребенка". чтобы имя класса окна получить приходится юзать программы типа WinSpector. |
zinc 3.0
mdm.Application.Kiosk.disableAltEsc(); mdm.Application.Kiosk.disableAltTab(); mdm.Application.Kiosk.disableAltF4(); mdm.Application.Kiosk.disableAppKey(); //Disables the Menu key. mdm.Application.Kiosk.disableCtrlEsc(); mdm.Application.Kiosk.disableWindowsDesktop(); mdm.Application.Kiosk.disableWindowsStartButton(); mdm.Application.Kiosk.disableWindowsTaskbar(); mdm.Application.Kiosk.disableWinKey(); :) |
ух ты, круто.
|
Скачал бету. Появилась поддержка линукса! А вот поддержку tcp сокетов так и не включили :(
|
ммм...iNils, Agon не поделитесь? я не могу скачать с офф сайта
|
Эээ... бету дают в разделе апдейт, то есть только по лицензии. По этому сорри.:)
Я так понял, что 31 января будет релиз, и возможно сразу триал выпустят. |
понимаю :). подождем.
|
| Часовой пояс GMT +4, время: 23:28. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.