Напротив "всегда сверху" - PullRequest
8 голосов
/ 03 марта 2010

Я хочу, чтобы мое приложение было на уровне рабочего стола, как гаджеты Windows. Можно ли этого достичь?

Дело в том, что у меня есть приложение без полей, которое я хочу запустить на рабочем столе.

Я пытался найти вариант, но нашел только «всегда сверху», что противоположно тому, чего я хочу достичь.

Ответы [ 4 ]

6 голосов
/ 03 марта 2010

Старый добрый SetWindowPos поддерживает HWND_BOTTOM, чтобы разместить ваше приложение как последнее в заказе. Чтобы использовать его в C #, взгляните на PInvoke.Net .

3 голосов
/ 03 марта 2010

Напишите приложение, чтобы оно работало в качестве службы в фоновом режиме, а затем внедрите фактический гаджет Windows в качестве внешнего интерфейса?

0 голосов
/ 03 марта 2010

Реальный гаджет Windows можно реализовать с помощью WPF, создав XBAP. Просто добавьте файл gadget.xml и файл .html, который содержит только IFRAME, который загружает XBAP. Таким образом, ваше приложение WPF будет на самом деле гаджетом и будет автоматически следовать всем правилам.

Другой вариант - использовать Windows Sidebar Styler . Это требует установки дополнительного программного обеспечения вместе с вашим, но также позволяет вам делать вещи, которые вы не можете делать внутри изолированной программной среды XBAP, без сертификатов подписи кода, авторизации пользователя и т. Д.

Третий вариант - создать гаджет, который использует что-то узнаваемое в HTML (например, определенный цвет фона), затем при запуске .exe отсканируйте hWnd в проводнике, который имеет нужные вам атрибуты, впрысните себя в процесс Explorer.exe и установите свое окно как дочернее для него.

Вариант третьего варианта - не вводить в Explorer.exe, а сохранять Z-индекс и местоположение (используя SetWindowPos), чтобы отслеживать Z-индекс и местоположение найденного вами hWnd.

Так много вариантов ...

0 голосов
/ 03 марта 2010

я думаю, что нет способа сделать это так же, как всегда на вершине. Вы хотите запустить приложение под значками? единственный способ сделать действительно фоновое приложение - это заменить explorer.exe, но тогда вы не увидите значки и панель задач.

...