Название: Реализация проекта Отправлено: serega-5508 от Октябрь 02, 2011, 15:01 Идея такая: нужно написать прогу, которая будет блокировать рабочий стол, др. элементы, программы, чтобы нельзя было ничего делать, кроме этой программы, пока она включена. Когда выходишь из программы, можно работать в обычном режиме. Вопрос: это как-то можно реализовать в Qt и как, если возможно?
Название: Re: Реализация проекта Отправлено: andrew.k от Октябрь 02, 2011, 15:09 Попробуй показать форму на весь экран в режиме поверх всех.
+ grabKeyboard и grabMouse (http://doc.qt.nokia.com/latest/qwidget.html#grabKeyboard) Название: Re: Реализация проекта Отправлено: serega-5508 от Октябрь 02, 2011, 16:51 пробовал grabKeyboard - но всё же я могу переключать окна программы (Alt+Tab). мне нужно только чтобы было это окно.
Название: Re: Реализация проекта Отправлено: Даниил от Октябрь 02, 2011, 16:53 Очередной порно-баннер пишем?
Название: Re: Реализация проекта Отправлено: andrew.k от Октябрь 02, 2011, 17:21 пробовал grabKeyboard - но всё же я могу переключать окна программы (Alt+Tab). мне нужно только чтобы было это окно. Если оно будет поверх всех (я использовал флаги Qt::FramelessWindowHint | Qt::Window | Qt::WindowStaysOnTop) то другие приложения не выйдут на передний план. Правда могут получать фокус.Название: Re: Реализация проекта Отправлено: serega-5508 от Октябрь 02, 2011, 17:26 Очередной порно-баннер пишем? Вообще отморозок что ли?!? не пались, если у самого рука из под стола не вылазит. Название: Re: Реализация проекта Отправлено: andrew.k от Октябрь 02, 2011, 17:32 Очередной порно-баннер пишем? Вообще отморозок что ли?!? не пались, если у самого рука из под стола не вылазит. Название: Re: Реализация проекта Отправлено: andrew.k от Октябрь 02, 2011, 17:33 Кстати мне тоже интересно как обойти альт+таб.
У меня одно приложение в изолированной среде, поэтому мне достаточно описанного выше подхода. Название: Re: Реализация проекта Отправлено: serega-5508 от Октябрь 02, 2011, 18:53 ну как бы метод grabKeyboard - блокирует ввод клавиатуры, но только текста, ну и, конечно, окно можно закрывать при помощи Atl+F4, а хотелось бы сделать типа такого: вводишь логин, пароль, и окно это исчезает.
Название: Re: Реализация проекта Отправлено: LisandreL от Октябрь 03, 2011, 07:36 Ну, от alt+f4 скорее всего можно избавиться переопределив closeEvent главного окна.
Но через ctrl+alt+delete и диспетчер задач ваш процесс всё равно можно будет прибить. Как показывают упомянуты выше Даниилом блокировщики-вымогатели СМС обойти это можно, но вряд ли используя документированные api системы. Это если про Windows говорить. Название: Re: Реализация проекта Отправлено: Igors от Октябрь 03, 2011, 11:19 Здравый смысл говорит что в Qt таких средств быть не должно.
На Mac есть "DirectDisplay", можно захватить все или некоторые дисплеи. Но отладчик тоже попадает под удар, поэтому после десятка перезагрузок я эти эксперименты прекратил. Потом заметил что некоторые модули (напр связанные с OpenGL) умеют прорываться к экрану и через эту блокировку. А написать порно-баннер - работа не хуже других, видео Вам дадут. Название: Re: Реализация проекта Отправлено: SASA от Октябрь 03, 2011, 17:07 Делал такое на WIN API. Окошко самого верхнего уровня (типа диспетчера задач) и таймер, который подбрасывает окно. Алт таб работает но не успеваешь ничего сделать твое окошко вылезает на передний план.
PS Отлаживать такое - ужас. Выход из дебага - рессет:) Поэтому сразу лучше зашить какую-нибудь магическую комбинацию. Название: Re: Реализация проекта Отправлено: Даниил от Октябрь 03, 2011, 19:02 Выход из дебага - рессет:) В моя книжку цитат прогеров ;DНазвание: Re: Реализация проекта Отправлено: vertus от Октябрь 04, 2011, 09:08 Нужно кроссплатформенное решение? Есть похожее решение для Linux, возможно сможешь заточить под себя.
Название: Re: Реализация проекта Отправлено: serega-5508 от Октябрь 04, 2011, 14:37 vertus, скинь, что есть под Linux, если можешь.
Название: Re: Реализация проекта Отправлено: vertus от Октябрь 04, 2011, 14:45 Да там не код, там администрирование больше.
Я тебе могу принцип рассказать. Основной смысл в том, чтобы при загрузке linux подменить в init подменить линуксовую программу своей. А там что хочешь дальше делай. Если такое решение подойдет, могу подробнее рассказать. Название: Re: Реализация проекта Отправлено: sergun1604 от Октябрь 12, 2011, 08:41 ну вот неужели в таких постерах рождаются вирусы для линукс...
Админы спасайте пингвина. |