"Przyklejenie" formy do pulpitu na windows 7

0

Witam!

Używałem Windows.SetParent(Handle, FindWindow('Progman', nil)); aby "przykleić" swoją formę do pulpitu. Na Windows XP działało to bez zarzutów. Jednak na Windows 7 forma znika, jest niewidoczna. Wie ktoś jak uzyskać ten efekt na Win 7?

EDIT:
Tutaj jest chyba odpowiedź, ale nie mam konta: http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_26783723.html

Pozdrawiam.

0

Wklej ten url http://www.experts-exchange.co[...]/Pascal/Delphi/Q_26783723.html do paska wyszukiwania google i wejdź przez link z google, a zobaczysz całą treść postów bez konta.

0

Robiłem tak zanim napisałem i nie działa ;p

1

Może wyczyść Historię odwiedzin ExpertsEchhange i ciasteczką związane z tą stroną. U mnie działa ok. Trzeba dokładnie wkleić caly ten adres jak podałeś:
http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_26783723.html
Bo jeźeli chodzi o Accepted Solution to chyba zawsze jest utajniona, ja widze inne odpowiedzi poniżej. Jednak nie ma tego jak łatwo wkleić. W odpowiedziach są takie odpowiedzi i kody:

Thommy:
31/01/11 02:36 PM, ID: 34756591
Windows 7 desktop structure:
Win 7 Desktop is a "big" window containing all other windows (like MDI childs).
This window also contains some kind of a listview (ViewStyle vsIcon), which display the desktop icons

Sorry, have no Delphi available at the moment to test my code, but try this to get the desktop listview...

function GetWin7ListView: HWnd;
var
  TheHandle:HWnd;
begin
   TheHandle := FindWindow('Progman', 'Program Manager');
   if not (TheHandle = 0) then
   begin
     TheHandle := FindWindowEx(TheHandle, 0, 'SHELLDLL_DefView', '');
     if not (TheHandle = 0) then
     begin
       result := FindWindowEx(TheHandle, 0, 'SysListView32', '');
       exit;
     end;
   end;
   result := 0;
end;

I następna:

and also try that...

function GetWin7ListView: HWnd; 
begin
  result := GetWindow(GetWindow(FindWindow('Progman',nil),GW_CHILD),GW_CHILD);
end;
0

Heh, to widzę, chodziło mi o tą "accepted". Niestety ten sposób już wcześniej sam przetestowałem, podpięcie się do pulpitowego ListView nic nie daje - nie widać formy.

Ta forma normalnie jest, jak przejadę "łapaczką uchwytów" z Winspector Spy po pulpicie to znajdzie mi to okno (tzn. wg. mnie, że jest ono na wierzchu, więc wersja że ukryło się gdzieś pod chyba odpada), tyle że jest niewidoczne gdy jest ustawione jako "dziecko" pulpitu. Próbowałem w Winspectorze zmieniać style okna, ale nic nie pomaga.

Problem rozgryziony: nie można przypiąć do pulpitu formy z ustawionym AlphaBlend. Wie ktoś jak to zrobić?

1 użytkowników online, w tym zalogowanych: 0, gości: 1