Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Win8: SHELLDLL_DefView wird nicht mehr gefunden (https://www.delphipraxis.net/179282-win8-shelldll_defview-wird-nicht-mehr-gefunden.html)

Helmi 26. Feb 2014 15:35

AW: Win8: SHELLDLL_DefView wird nicht mehr gefunden
 
Zitat:

Zitat von jaenicke (Beitrag 1249640)
Den Code generiert übrigens WinSpy automatisch für dich. ;-)
http://www.delphipraxis.net/15388-wi...6-09-08-a.html

Och - wie praktisch :-)
irgendwie sind Programmierer faule Leute :P

nichts desto trotz - es geht leider auch mit diesem Code nicht!
Hab mir die letzte Version von WinSpy geholt und auch den erzeugten Code getestet:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  wndMain, wndChild: HWND;
begin
  wndMain := FindWindow('WorkerW','');
  if wndMain <> 0 then
  begin
    wndChild := FindWindowEx(wndMain, 0, 'SHELLDLL_DefView', nil);
    wndChild := FindWindowEx(wndChild, 0, 'SysListView32', nil);
//    if wndChild <> 0 then
    begin
      ShowMessage('Window Handle: ' + IntToStr(wndChild));
//      FlashControl(wndChild); // internal function
    end;
  end;
end;
wndChild ist leider 0.

jaenicke 26. Feb 2014 16:07

AW: Win8: SHELLDLL_DefView wird nicht mehr gefunden
 
Bei mir funktioniert das bei Windows 8.1 problemlos. Warum bei dir nicht... keine Ahnung. :?

Wird denn das erste Fenster gefunden? (Siehst du ja z.B. im Debugger.)

Helmi 26. Feb 2014 16:34

AW: Win8: SHELLDLL_DefView wird nicht mehr gefunden
 
also es hakt schon bei
Delphi-Quellcode:
wndChild := FindWindowEx(wndMain, 0, 'SHELLDLL_DefView', nil);
, also dem ersten wndChild
Dort steht schon null drin - wurde also nicht gefunden

jaenicke 26. Feb 2014 17:57

AW: Win8: SHELLDLL_DefView wird nicht mehr gefunden
 
Aber du hast nicht zufällig so einen Schrott wie Start8 oder so drin, oder?

Helmi 26. Feb 2014 18:23

AW: Win8: SHELLDLL_DefView wird nicht mehr gefunden
 
Zitat:

Zitat von jaenicke (Beitrag 1249747)
Aber du hast nicht zufällig so einen Schrott wie Start8 oder so drin, oder?

nein, gar nix

jaenicke 26. Feb 2014 19:18

AW: Win8: SHELLDLL_DefView wird nicht mehr gefunden
 
Dann gehen mir leider langsam die Ideen aus...
Geht es vielleicht mit Adminrechten?

Helmi 26. Feb 2014 20:06

AW: Win8: SHELLDLL_DefView wird nicht mehr gefunden
 
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

jaenicke 26. Feb 2014 20:39

AW: Win8: SHELLDLL_DefView wird nicht mehr gefunden
 
Ah, hier steht etwas dazu:
http://blog.syedgakbar.com/2013/01/w...stview-handle/
Ich habe allerdings auch die Hintergrundbildrotation an.

Aber dass es bei dir geht ist ja die Hauptsache.

Helmi 26. Feb 2014 20:43

AW: Win8: SHELLDLL_DefView wird nicht mehr gefunden
 
ja - schaut ganz gut aus
nebenbei bemerkt haben wir den gleichen Link erwischt :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz