![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Nicholas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 30.9.2004 Репутация: нет Всего: 0 |
При нажатии Windows+D прграмма сварачивается, а как это устранить????
![]() |
|||
|
||||
Alkash |
|
|||
коллекционер жизни ![]() ![]() Профиль Группа: Участник Сообщений: 516 Регистрация: 5.7.2004 Где: / Репутация: нет Всего: нет |
Отловить нажатия клавишь, и по их нажатию не давать свернуться.
-------------------- Подпись >> /dev/null |
|||
|
||||
Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Тебе только по нажатию комбинации нужно или что бы вообще не сворачивалась? -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
decoder |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 204 Регистрация: 18.5.2004 Где: Харьков(хохол, к сожалению) Репутация: нет Всего: -1 |
Если Виндовз+Ды из ряда Альт+Ф4, то одним хуком тут не обойтись... В смысле, если хуку на Альт+Ф4 написать "резалт = 1", то пофиг Альт+Ф4 проскочит. Парадоксальный способ: MessageBox поставить - управление не возвращает, пока ОК не нажмёшь (это если комбинацию клавиш оконная функция не отлавливает, иначе придётся ещё и оконную функцию модифицировать...) - Альт+Ф4 из системной очереди сообщений просто исчезает!
--------------------
Молчать, я вас спрашиваю! |
|||
|
||||
Nicholas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 30.9.2004 Репутация: нет Всего: 0 |
Хотелось бы оба варианта увидеть, или хоть по по нажатию как??? ![]() |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
IMHO долхлый номер. Win+D не победить. Работает всегда. Если только в реестре запретить Win комбинации и перезагрузить систему.
|
|||
|
||||
imageman |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 30.9.2004 Репутация: 1 Всего: 1 |
а если попробовать следить за состоянием окна? Координаты, видимость.
А если после Win-D свое окно минимазировать и опять восстановить? Только что проверил на одной старой программе - там особыми параметрами окна делалось Always Top. - при нажатии win-D сначала окно минимизируется и тут же самостоятельно выскакивает обратно. Это сообщение отредактировал(а) imageman - 18.10.2004, 12:42 |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
Хм.......а если отловить WM_MINIMIZE и развернуть окно обратно
З.Ы. Проверить не могу только что систему переставил |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
может можно отлавдивать сообщения и реагировать на них по своему
хотя
|
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
У меня сработал вот такой вариант:
Кидаем на форму TApplicationEvent. Создаем событие OnMessage.
Как ни странно, если форму не минимизировать хотя бы раз, она не хочет обманывать Win+D. Поэтому при OnCreate сразу ее минимизим, и тогда она всегда лезет наверх. |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
Snowy
Странно, у меня не получается ![]() |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Попробуй поставить хук WH_CBT и ловить Code = HCBT_MINMAX, с последующей установкой результата функции хука в 1.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
Nicholas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 30.9.2004 Репутация: нет Всего: 0 |
![]() И у меня работает на Win XP, а на Win9x пробывал кто?? |
|||
|
||||
imageman |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 30.9.2004 Репутация: 1 Всего: 1 |
Я сделал таймер и поставил в нем
после этого окно нельзя надолго свернуть. Сделано, конечно криво! Более грамотно сделано в TheBat - когда новое письмо приходит, то MailTicker не пропадает (у меня даже по Win-D). Может это из-за того, что оно постоянно обновляется? |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
а теперь не согласен у соседа игрушка отключает все подобные (для сворачивания) комбинации. Не смогли свернуть ее в панель задач ![]() |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Угу. Отключить никак. А вот всплыть обратно можно. Некоторые игрушки просто рисуют себя, используя поверхность DC(0), которую просто невозможно свернуть по определению.
Кстати, кто-нить пробовал приведенный мною выше код в 98-х? В ХР отрабатывает на ура. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Светодиод винчестера даже НЕ "блымнул". Это сообщение отредактировал(а) dsergey - 5.2.2005, 11:49 |
|||
|
||||
Marriage |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
Проверьте код, у меня работает ...
Не сворачивается даже по WINDOWS+D
-------------------- Praemonitus, praemunitus |
|||
|
||||
ДЫМ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: 8 Всего: 8 |
||||
|
||||
Marriage |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
25-е июля .... ??? Что -то я не пойму, это получается , что вообще WINDOWS - D работать не будут в системе ...??? -------------------- Praemonitus, praemunitus |
|||
|
||||
ДЫМ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: 8 Всего: 8 |
Этого то и добиваемся (еще меня радует, что отключается Win+L). А какой смысл отключать Win+D только для своего приложения. Впрочем, можно переделать глобальную ловушку в локальную (без DLL). P.S. Кстати, Alt-Tab тоже отрубается, хотя везде говорят, что его "нельзя победить" |
|||
|
||||
Marriage |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
Стртранно Я думал тема называется "Хочу, чтобы программа не сварачивалась!?, при нажатии Windows+D???"
Потому что многие покупать что-то подобное не будут ... -------------------- Praemonitus, praemunitus |
||||
|
|||||
ДЫМ |
|
||||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: 8 Всего: 8 |
Я тебя, кажется понимаю, твой код приводит к тому, что все другие окна сворачиваются, а твоя форма - нет. Но есть еще такие клавиши как Win+E ==> Explorer Win+F+(Ctrl) ==> Find:All (and Find: Computer) Win+M ==> Minimize all Win+R ==> Run program. Win+F1 ==> Windows Help Alt+Tab С ними-то как быть? А в XP еще и "страшная" Win+L Если же надо, чтобы все эти сочетания не работали именно для твоей программы, а в других окнах обрабатывались, то используй локальную ловушку, вот примерно так:
Еще как будут. Вот тебе ситуация: мне не раз говорили : "Сделай, чтобы было так, - включил компьютер, загрузилась твоя программа и никаких рабочих столов, переключений между окнами - а то наши пользователи очень уж непродвинутые, напортачат чего-нибудь, или, чего доброго, в игры играть начнут." Вот тут-то этот способ и пригодится. |
||||||||
|
|||||||||
Marriage |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
Интересный вопрос, что за организация ??? Обучать сотрудников надо. А то блин кричат, что у сотрудников руки кривые ... А сами ничего не делают ...
И как ты это исправишь отключением сочетания клавишь ??? А юзьвери в основном с мышой работают, может я не понимаю чего-нибудь, но если повесить хук на клавиатуру, он что, и мышу отловит ???? -------------------- Praemonitus, praemunitus |
||||
|
|||||
ДЫМ |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: 8 Всего: 8 |
Нельзя ли немного покорректнее?...
Я смотрю пошел откровенный флейм, но я отвечу (подробнее). Я говорил о схеме "одна машина - одна задача" (используется, например, в технологическом мониторинге). Выглядит это так: загружается Windows, затем твоя программа - главная форма во весь экран и можно без заголовка. Панель задач отключается, чтобы не было искушения "с мышой поработать", дополнительно вешается хук на клавиатуру. В итоге пользователь может общаться только с твоей программой. После завершения работы приложения вызывается завершение работы компьютера. И все. Надеюсь, понятно? |
||||||
|
|||||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
win-D не сворачивает ничего, оно десктоп выносит вперёд а все приложения назад... Сворачивает Win-M.
Тогда это решается не програмно, а через Policy в реестре - устанавливаются все разрешения и не даются администранивные права, чтоб мышь не трогали - мышь - выдёргивается и кладётся в ящик стола на ключ, в BIOS отключается USB и PS порты, ставится пароль на BIOS. В Hardware профиле для этого пользователя отключается драйвер мыши, а если надо то и клавиатуры... и на фиг програмный огород городить... Моё ИМХО - 99% попыток перехвата Ctrl-Alt-Del, Win-D, Win-L и т.п. - это вредоносный код, вирусы и трояны, а оставшийся 1% - невежество сисадминов, которым лень букварь читнуть по Windows и которые ставять программистам бредовые задачи. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Позволю себе такую наглость - не согласиться. Я конечно событиев не ловил, но очевидно, что просто при потере фокуса приложения из панели задач в трэй сворачиваться не будут, независимо от того, какое окно вылезло наверх. (Касается естественно только тех приложений, который на минимизацию лезут в трей). |
|||
|
||||
Marriage |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
2
ДЫМ Короче, действительно щас флей пойдет. ПРосто, если по моему опыту
Если только так, тогда хорошо, без Б. ПРизнаю , что это подеюйствует. А если несколько -тогда хук на клаву - это не выход, ИМХО. -------------------- Praemonitus, praemunitus |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |