Избегание всех системных сообщений и сообщений из другого программного обеспечения

Вот ситуация. Компания, с которой я работаю, строит этот кусок программного обеспечения в c, который может заставить компьютер Windows немного походить на телевизор. По сути, наша часть программного обеспечения предназначена для воспроизведения в полноэкранном режиме, а контент выводится из Интернета без необходимости снова прикасаться к компьютеру.

Проблема в том, что время от времени система выводит всплывающие окна, такие как "Ваша система Windows готова к обновлению". или "Пожалуйста, обновите подписку на Norton" и т.д., которые пользователь должен периодически и вручную удалять.

Есть ли способ отображать полный контент контента, не беспокоясь об этих предупреждениях?

Ответ 1

Да, независимо от того, соглашается ли сообщество разработчиков, у Microsoft есть несколько стандартов того, когда и почему может быть приемлемым эксклюзивное использование монитора.

Самая официальная стратегия - использовать DirectX в эксклюзивном режиме. Это то, что делают игры, что делает медиаплеер Windows в полноэкранном видео с включенным аппаратным ускорением и т.д. Если ваше приложение интенсивно работает в мультимедиа (как предлагается по телевизору, как функция), вы, вероятно, должны использовать DirectX тоже. Помимо предоставления вам эксклюзивного доступа к экрану, он также увеличит производительность ваших приложений при одновременном снижении загрузки процессора (поскольку, когда это возможно, будет работать с графикой на видеокарте).

Если DirectX не является опцией, доступно большое количество доступных хаков, которые, похоже, все ведут себя по-разному между различными поколениями операционных систем Windows. Таким образом, вам, возможно, придется быть готовым к внедрению нескольких методов для охвата каждой ОС, которую вы планируете поддерживать.

Один из способов заключается в том, чтобы настроить приложение как текущую скринсейвер. Заставка, если на самом деле просто EXE переименован в SCR с определенными командами, которые он должен поддерживать. Но вы можете написать свое приложение, чтобы быть такой заставкой и маленькой заглушкой, которая устанавливает ее как заставку и запускает ее. После выхода приложение должно вернуть исходные настройки заставки (возможно, запуск запускает процесс, чтобы он возвращал параметры как из грациозных выходов, так и из любых незапланированных завершений процесса, то есть: сбой приложения). Я не уверен, что это поведение согласовано между платформами, но вам придется протестировать его.

Предотвращение создания приложений другими приложениями - это действительно взломать мой взгляд и довольно плохо, что я не буду оценивать как клиент такого программного обеспечения.

Постоянный вызов BringWindowToTop(), чтобы держать вас впереди лучше (он не разбивает другое программное обеспечение), но все еще немного взломан.

Ответ 2

Создавать сообщения о создании окна с глобальным подключением. Таким образом вы можете закрыть или скрыть нежелательные окна, прежде чем они станут видимыми.

EDIT: Если вы определенно хотите избежать перехвата, вы можете периодически вызывать функцию, которая помещает ваше окно в начало z-стека.

Ответ 3

Вы можете отключить системные обновления http://support.microsoft.com/kb/901037 и удалить вредоносное ПО norton.

Вы также можете подключить второй экран, чтобы пузырьки отображались на первом мониторе.

Или вы переписываете его для linux или windows ce.

Один из последних вариантов - установить программное обеспечение, которое переконфигурирует ваш os в киоск http://shop.inteset.com/Products/9-securelockdown.aspx

Ответ 4

Если вам не нужны ввод с клавиатуры или мыши, как насчет запуска приложения в качестве заставки?

Ответ 5

Многие сообщения Thoses запускаются/управляются проводником Windows. Просто замените его своим фиктивным С#/winform. Изменив значение реестра

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Shell"="Explorer.exe"

Вы можете указать практически любой exe в качестве альтернативы explorer.exe То, как делают все окна (встроенные) системы (ATM и co). Там еще мало настроек (отключите службы, которые вам не нужны /dr watson и другие), и, конечно же, вы захотите оставить "restart explorer.exe" бэкдором. Но это хорошее начало