Я хочу установить свое приложение, чтобы быть на настольном уровне, как Windows Gadgets. Действительно ли этого возможно достигнуть?
Вещь, у меня есть безграничное приложение, я хочу работать на рабочем столе.
Я пытался найти опцию, но я нашел только "поверх остальных окон", который является противоположностью того, чего я хочу достигнуть.
Старый добрый SetWindowPos поддерживает HWND_BOTTOM для размещения вашего приложения последним по порядку. Чтобы использовать его в C#, посмотрите PInvoke.Net.
Напишите приложение так, чтобы оно работало как служба в фоновом режиме, а затем реализовать настоящий гаджет Windows в качестве интерфейса?
Я думаю, что нет способа сделать это так же кстати как всегда на высоте. вы хотите запускать свое приложение под иконками? единственный способ сделать действительно фоновое приложение - заменить explorer.exe, но тогда вы не увидите значки и панель задач.
Вы можете реализовать настоящий гаджет Windows с помощью WPF, создав XBAP. Просто добавьте файл gadget.xml и файл .html, содержащий только IFRAME, который загружает XBAP. Таким образом, ваше WPF-приложение фактически станет гаджетом и будет автоматически следовать всем правилам.
Другой вариант - использовать Windows Sidebar Styler. Это требует установки дополнительного программного обеспечения наряду с вашим, но также позволяет вам делать вещи, которые вы не можете сделать в песочнице XBAP без сертификатов подписи кода, авторизации пользователя и т.д.
Третий вариант - создать гаджет, который использует что-то узнаваемое в HTML (например, определенный цвет фона), затем, когда ваш .exe запускается, просканировать hWnd в Explorer, который имеет нужные вам атрибуты, внедрить себя в процесс Explorer.exe, и установить ваше окно как дочернее от него.
Разновидность третьего варианта - не внедряться в Explorer.exe, а поддерживать свой Z-индекс и местоположение (используя SetWindowPos), чтобы отслеживать Z-индекс и местоположение hWnd, который вы нашли.
Так много вариантов...