Приложения в стиле метро для Windows 8 и оконные хуки

Я новичок в оконных хуках и метро-приложениях Windows 8.

Я хотел бы разработать фоновый сервис/процесс, который:

  1. Проверяет «свойства» приложения метро, ​​которое пользователь только что нажал для запуска (например, приложение, которое воспроизводит музыку, приложение для создания текстовых документов, ...)
  2. На основе найденных свойств активируйте другие приложения (т. е. перед запуском приложения для создания текста, которое пользователь только что коснулся, заставьте его выбрать шрифт из всплывающего списка)

Я планирую использовать оконные крючки, чтобы сделать 1 и 2.

Это возможно?

Спасибо!


person hoki    schedule 07.03.2012    source источник
comment
Вы имеете в виду оконные хуки или какие-то другие хуки в Windows? Вы можете перехватывать функции, что требует некоторого хакерства, или вы можете устанавливать перехватчики на окна (объекты), которые, тем не менее, называются перехватчиками окон.   -  person 0xC0000022L    schedule 08.03.2012
comment
Я имею в виду это что-то вроде крючка... Это то же самое, что и оконные крючки? Я хотел бы использовать системный вид, а не вид, зависящий от приложения....   -  person hoki    schedule 08.03.2012
comment
да, так называются в обиходе оконные хуки, а Windows (как в торговой марке) приведет к двусмысленности и путанице :)   -  person 0xC0000022L    schedule 08.03.2012
comment
Это именно та нестабильность, которую пытается предотвратить новая модель приложений. Представьте, если бы это было возможно — приложения перехватывали бы друг друга слева и справа. О, пользователь нажал на Contoso? Позвольте мне его перехватить и вместо него запустить LitWare, потому что Contoso — наш прямой конкурент, и мы хотим им навредить.   -  person Raymond Chen    schedule 13.03.2012


Ответы (3)


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

person Steve Rowe    schedule 07.03.2012
comment
Помните, что службы работают в сеансе 0 и не могут взаимодействовать с окнами рабочего стола. - person ReinstateMonica Larry Osterman; 07.03.2012
comment
@ Ларри, я не совсем понимаю, что ты имеешь в виду под своим комментарием... Можете ли вы указать мне некоторые материалы, которые могут помочь мне понять? Спасибо! - person hoki; 08.03.2012
comment
Стив упомянул об использовании службы для перехвата вещей — я просто указал, что начиная с Windows Vista службы не имеют доступа к интерактивным приложениям. Там действительно нет способа делать то, что вы хотите. - person ReinstateMonica Larry Osterman; 08.03.2012

Проверь это..

http://social.msdn.microsoft.com/Forums/en/wcf/thread/43df6c8f-f1e3-4aba-af0a-7c4e1db477b6

Вы можете писать только клиентские приложения, используя Metro, но не серверные приложения.

В вашем сценарии, если вам нужна связь между приложениями, рекомендуется использовать «Контракты», которые явно запускаются пользователем.

Я делаю слепое предположение, используя ваши 1 и 2 балла. Вы собираетесь работать с файлами определенного типа? скажем .txt или .wmv? Если это ваше намерение, проверьте здесь http://tozon.info/blog/post/2011/10/11/Windows-8-Metro-declarations-File-Type-Associations.aspx Также есть хороший набор документации MSDN о это.

person Madushan    schedule 08.04.2012

Вы можете использовать перехват API. Проверьте эту тему: http://forum.nektra.com/forum/viewtopic.php?f=9&t=6228

person Pablo Yabo    schedule 21.09.2012