Противоположность “поверх остальных окон”

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

Вещь, у меня есть безграничное приложение, я хочу работать на рабочем столе.

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

8
задан Ray Burns 11 March 2010 в 20:44
поделиться

4 ответа

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

6
ответ дан 5 December 2019 в 18:58
поделиться

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

3
ответ дан 5 December 2019 в 18:58
поделиться

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

0
ответ дан 5 December 2019 в 18:58
поделиться

Вы можете реализовать настоящий гаджет 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, который вы нашли.

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

0
ответ дан 5 December 2019 в 18:58
поделиться