Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Gestarteter Windows Explorer (https://www.delphipraxis.net/30526-gestarteter-windows-explorer.html)

gkaeberich 26. Sep 2004 21:39

Re: Gestarteter Windows Explorer
 
Hallo,

vielen Dank - mit dem ExploreWClass funktioniert das bei mir schon recht gut.

Vielleicht kann mir jemand noch dabei helfen, den laufenden Windows-Explorer (als Dateiexplorer gestartet) zu beenden. Evetuell kann es auch sein, dass der Explorer mehrfach geöffnet wurde und in verschiedenen Verzeichnissen steht.

Danke

Günther

scp 26. Sep 2004 22:17

Re: Gestarteter Windows Explorer
 
ExploreWClass - Wenn "Windows-Explorer" über Verknüpfung gestartet wird, oder explorer.exe ohne Parameter
CabinetWClass - Wenn Ordnerinhalt angezeigt wird, z.B. über Arbeitsplatz.

EDIT:
Explorer beenden:
Delphi-Quellcode:
var
  wnd : HWND;
begin
  wnd := FindWindow('ExploreWClass', nil);
  If wnd <> 0 then
  begin
    ShowMessage(IntToStr(wnd));
    PostMessage(wnd, WM_CLOSE, 0, 0);
  end;
end;

MathiasSimmack 27. Sep 2004 05:38

Re: Gestarteter Windows Explorer
 
Zitat:

Zitat von gkaeberich
Vielleicht kann mir jemand noch dabei helfen, den laufenden Windows-Explorer (als Dateiexplorer gestartet) zu beenden. Evetuell kann es auch sein, dass der Explorer mehrfach geöffnet wurde und in verschiedenen Verzeichnissen steht.

Stichwort: [dp]"EnumWindows"[/dp]. Damit "loopst" du durch alle Fenster (nicht mit Prozessen verwechseln!) durch. Von jedem erhältst du den Klassennamen, so dass das Beenden dann bspw. so funktioniert, wie scp zeigt.

maxk 27. Sep 2004 13:19

Re: Gestarteter Windows Explorer
 
Zitat:

Zitat von scp
ExploreWClass - Wenn "Windows-Explorer" über Verknüpfung gestartet wird, oder explorer.exe ohne Parameter
CabinetWClass - Wenn Ordnerinhalt angezeigt wird, z.B. über Arbeitsplatz.

Auf sowas kommt wirklich nur Kleinweich - naja, dann bin ich wenigstens nicht verrückt ;)

gkaeberich 27. Sep 2004 21:14

Re: Gestarteter Windows Explorer
 
Hallo,

ich habe den folgenden Code in mein Programm eingebaut, aber leider bleiben die beiden gestarteten Explorer (die in verschiedenen Verzeichnissen stehen) offen.

if FindWindow ('ExploreWClass',nil) <> 0 then
begin
wnd := FindWindow('ExploreWClass', nil);
If wnd <> 0 then
PostMessage(wnd, WM_CLOSE, 0, 0);
end;

Woran kann das liegen ?

Günther

Christian Seehase 28. Sep 2004 00:31

Re: Gestarteter Windows Explorer
 
Moin Günther,

da ich mal annehme, dass Du kontrolliert hast, dass die PostMessage Zeile überhaupt aufgerufen wird... ;-)

Probier's mal mit WM_SYSCOMMAND und SC_CLOSE.

MathiasSimmack 28. Sep 2004 05:45

Re: Gestarteter Windows Explorer
 
Abgesehen davon wird er mit dem gezeigten Befehl vermutlich nur einen der beiden Explorer schließen (wenn er ihn nicht mehrfach aufruft). Darum ja auch der Hinweis auf "EnumWindows".


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 Uhr.
Seite 2 von 2     12   

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