2009-09-03 5 views
1

У меня есть приложение, которое я хочу придерживаться на рабочем столе. Придерживайтесь рабочего стола означает, что каждый раз, когда кто-то нажимает окна + D или значок рабочего стола, на нем появляется приложение с приложением.Прикрепленное приложение для рабочего стола на Vista

Пользователь может найти приложение на рабочем столе и изменить местоположение в любое время, но он всегда остается на рабочем столе.

Нам удаётся сделать это на XP, установив родительский элемент приложения на рабочий стол, используя методы winAPI SetParent (это .Handle, FindWindow («Progman», null)) ;.

На Vista нам удается вставлять его на рабочий стол, когда рабочий стол получает фокус, он рисует серый фон вокруг окна. этот фон не исчезает, когда мое окно перемещается, оставляя уродливые квадраты на рабочем столе. когда я нажимаю Windows + D, все они исчезают. Обратите внимание, что этого вообще не происходит в XP.

Клиент основан на .NET 3.0 и WPF.

Любая идея, почему это происходит и как ее решить?

ответ

0

использовать следующий код и передать дескриптор окна функции в то время как форма нагрузки надежда полностью решает эту проблему

public void SetFormOnDesktop(IntPtr hwnd) { 
IntPtr hwndf = hwnd; 
IntPtr hwndParent = FindWindow("ProgMan", null); 
SetParent(hwndf, hwndParent); 
} 
Смежные вопросы