2012-06-27 5 views
8

У меня есть приложение, работающее под управлением Windows 7 с использованием Microsoft Layered Window http://msdn.microsoft.com/en-us/library/ms997507.aspx. Это приложение настроено на 30% непрозрачность, оно всегда сверху и прозрачно для событий (т. Е. Оно пересылает все события в окна под ним). Вы можете думать об этом как о «экране», который вы просматриваете на своем рабочем столе. В настоящее время он используется для того, чтобы быть вездесущим слоем обратной связи для наших пользователей.Windows 8 Layered Windows Over Metro Apps

Мы попытались запустить одно и то же приложение в Windows 8 и заметили, что он работает как ожидается в настольном режиме, но ничто не перекрывает меню «Пуск» и другие приложения для метро.

Кто-нибудь знает, существует ли эквивалент всегда в верхнем оконном режиме, который работает в приложениях метро и в меню «Пуск» в Windows 8?

+1

Не возможно, Metro приложения работают на собственном защищенном рабочем столе. –

+0

Метро невероятно nerfed по сравнению с традиционным рабочим столом; взаимодействие между ними практически невозможно, и это не желательно. – Luke

+0

Спасибо всем. Другая точка данных, экранная клавиатура на окнах, похоже, присутствует в режиме onmi (даже в меню «Пуск» и других приложениях метро). По общему признанию, он может иметь специальные perms в windows ... –

ответ

14

Да, это возможно. Пожалуйста, обратите внимание на этой странице:

http://blogs.microsoft.co.il/blogs/pavely/archive/2012/05/16/windows-8-topmost-vs-topmost.aspx

В частности, второе сообщение в разделе комментариев:

Верхнее окно также зависят от настроек доступности. Если вам нужно окно поверх метро, ​​вам нужно объявить его доступность. Вот ключевые моменты:

  1. Заявка должна требовать uiAccess (app.manifest)

  2. Приложение должно утвердить «верхний» позиционирование окна (как в Win32/SetWindowPos или WinForms/Topmost собственности WPF, в программный или иным образом)

  3. без внесения изменений в настройки групповой политики, он должен быть установлен в какое-то надежное расположение [C:\Windows, C:\Program Files, C:\Program Files (x86)].

    • Если вы хотите, чтобы иметь возможность запустить его из любого места, необходимо отключить настройки безопасности: «Управление учетных записей пользователей: только поднять UIAccess приложения, которые установлены в безопасных местах».

    • Это то же самое, как установка HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\ValidateAdminCodeSignatures к 0

  4. Указанное приложение не может быть запущен в отладчике

  5. Если это.NET приложения:

    • манифест должен быть встроен в стадии после сборки

    • Заявление должно быть «отложено подписание» (это означает, что не может быть выбежали из встроенного отладчика, хотя вы можете строить и прикреплять - это то, что делает Microsoft)

  6. Приложение должно быть подписано с доверенным сертификатом.

  7. Указанный доверенный сертификат должен быть установлен в Trusted Root Certificate Authority (это важно! Он не должен просто установлен)

-3

Я почти уверен, что у вас не может быть другого приложения, накладывающего приложение Metro. Новая среда Metro предназначена для запуска одиночных полноэкранных приложений (или двух, но только в случае сбоя). Кроме того, позволить что-то действовать как человек в середине - это немного опасно, поскольку они могут захватывать всевозможные конфиденциальные пользовательские данные.

Это означает, что если вы можете установить свойство «всегда сверху» окна, оно может остаться в меню «Пуск» и в разных приложениях Metro. Я знаю, что это работает с диспетчером задач, но я никогда не пробовал с произвольным приложением. Я не знаю, что это будет хорошо работать для приложений Metro, однако, из-за того, что их события отличаются от старых приложений winform. Вам нужно будет увидеть, позволяет ли ваш «экран» передавать события касания.

1

Выполнить распознавание речи окна. Это верхнее окно, которое плавает по меню запуска, на рабочем столе и т. Д. Так что это возможно. Я работаю над сенсорным симулятором для Windows 8 и должен реализовать эту функцию.

Вот шаги для достижения этой цели:

http://www.pixytech.com/rajnish/2013/05/windows-8-topmost-window/

Смежные вопросы