Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#27

AW: Win8: SHELLDLL_DefView wird nicht mehr gefunden

  Alt 26. Feb 2014, 20:06
nein - mit Adminrechten ging es auch nicht

Ich bin jetzt etwas im Internet auf die Suche gegangen und habe folgenden Code gefunden:
http://blog.syedgakbar.com/2013/01/w...stview-handle/

den hab ich jetzt mal um gesetzt und ich erhalte auch ein Handle, das gleiche wie es auch
WinSpy ausliest

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  wndProgman: HWND;
  wndDesktop: HWND;
  wndWorkerW: HWND;
  wndShell : HWND;
  wndChild : HWND;

begin
  wndWorkerW := 0;
  wndShell := 0;
  wndProgman := FindWindow('Progman', nil);
  wndDesktop := GetDesktopWindow;

  If wndProgman <> 0 then
    begin
      wndShell := FindWindowEx(wndProgman, 0, 'SHELLDLL_DefView', nil);

      If wndShell = 0 then
        begin
          while ((wndShell = 0) or (wndWorkerW = 0)) do
            begin
              wndWorkerW := FindWindowEx(wndDesktop, wndWorkerW, 'WorkerW', nil);
              wndShell := FindWindowEx(wndWorkerW, 0, 'SHELLDLL_DefView', nil);
            end;
        end;

      wndChild := FindWindowEx(wndShell, 0, 'SysListView32', nil);

      ShowMessage('Window Handle: ' + IntToStr(wndChild));
    end;
end;
Ich hab mal eine Variable mitlaufen lassen. Es sind 39 (!) Schleifendurchgänge notwendig,
bis das Handle gefunden wurde. D. h. es gibt 39x WorkerW
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<

Geändert von Helmi (26. Feb 2014 um 20:28 Uhr)
  Mit Zitat antworten Zitat