Как поместить программу на C # (например, WPF или WF или с Mono) под значки desctop (например, обои)? - PullRequest
0 голосов
/ 27 октября 2009

Как поместить программу на C # (например, WPF или WF) под значки desctop (например, обои)?

  • Я хочу, чтобы мой Old Good XP Active Desktop, созданный какой-то программой с открытым исходным кодом на C #, работал на моей Win 7!)

  • Примерно так - Заборы . У них есть «окна», появляющиеся под иконками. Я не хочу управлять иконками - просто поместите мое окно под ними ... Кстати, кто-нибудь знает о таких операциях в других ОС (Mac и т. Д.)?

  • И я НЕ ХОЧУ УПРАВЛЯТЬ ВСЕМИ СИМВОЛАМИ НА СВОЕМ СОБСТВЕННОМ bumptop

Ответы [ 3 ]

1 голос
/ 20 декабря 2009

Я думаю, что это вполне возможно, попробуйте это:

  1. Найти дескриптор окна с классом "Progman".
  2. Создайте некоторое окно в вашем приложении (или, возможно, в каком-то отдельном приложении, вы увидите цель позже) и отключите его границы.
  3. Установить родительский элемент вновь созданного окна в дескриптор рабочего стола.
  4. Установите родительский элемент окна "Progman", которое вы нашли ранее, к окну, которое вы создали.

Рабочий стол будет помещен в окно, принадлежащее вашему приложению, и будет возможно управлять им так, как вы хотите (а именно, поместить что-то под него).

Также не забудьте восстановить родителя рабочего стола, когда приложение, владеющее им, закрыто.

Найдите FindWindow, GetClassName и SetParent в http://www.pinvoke.net/

1 голос
/ 27 октября 2009

Короткий ответ: вы не можете этого сделать (во всяком случае, в управляемом C #). Если это возможно, вам нужно будет использовать Interop, и вы, вероятно, будете вызывать то, что Windows не предлагает в качестве API.

... хотя ... как упоминал Оле Джейк, Stardock , похоже, делает это как-то ...

Рабочий стол - это отдельный элемент. Тот же процесс обрабатывает значки и обои за этими значками.

Вам разрешено менять обои на другое изображение, и вы имели возможность создавать Active Desktop , где будет отображаться содержимое HTML, но это было прекращено в Vista.

Что вы на самом деле пытаетесь сделать? Может быть, есть другой способ добиться подобного результата?

0 голосов
/ 27 октября 2009

Было DreamScene для перспективы. Вы можете поместить видео в качестве фона для проводника. Я не знаю, можно ли запустить программу на C # для вывода фонового видео.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...