AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Explorerfenster schließen

Ein Thema von jfheins · begonnen am 27. Jun 2005 · letzter Beitrag vom 28. Jun 2005
Antwort Antwort
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#1

Explorerfenster schließen

  Alt 27. Jun 2005, 20:48
Ich möchte gerne ein Explorerfenster schließen, also z.B. Eigene Dateien.

Falls es was ausmacht: Links, die Ordnerstruktur ist aktiviert, und er befindet sich in einem Laufwerk (glaube ich)

Ich habe es bereits mit div. Mesages wie z.B. WM_CLOSE, SC_CLOSE, WM_DESTROY, WM_QUIT oder auch TerminateProcess() probiert, aber einzig bei WM_DESTROY hat sich was getan, und zwar ist der Ornerinhalt verschwunden, (Control destroyed ?) und der Explorer ist abgestürtzt.

Ich habe XP SP2, es muss auch nur auf XP funktionieren.


Ich habe das Fenster selbst mit RunProcess ins Leben gerufen,
was ich hätte, um das Fenster zu identifizieren,
wäre einerseits die ProcessID, zur Not hät' ich aber auch ein Handle da ...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Explorerfenster schließen

  Alt 27. Jun 2005, 20:54
Moin Julius,

bist Du Dir wirklich sicher, dass Du die Message(s) an das Hauptfenster geschickt hast?
Das solltest Du besser noch einmal prüfen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

Re: Explorerfenster schließen

  Alt 27. Jun 2005, 20:58
Zumindest stimmt das Handle, das mir WinSpy für das Hauptfenster anzeigt mit dem überein, an das ich die Messages sende ...

(Ausprobiert mit Quit + Close > nichts )
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Explorerfenster schließen

  Alt 27. Jun 2005, 21:30
Moin Julius,

seltsam.
Wenn Du WM_DESTROY schickst geht ein Teil verloren, was für mich bedeutet, dass es wohl nicht das richtige Handle sein kann.
Ohne ein bisschen Code kann ich jetzt nur noch raten.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#5

Re: Explorerfenster schließen

  Alt 27. Jun 2005, 21:35
Ok, dann hier der Code:

Öffnen:
Delphi-Quellcode:
   wnd := FindWindow('ExploreWClass','Anapod Explorer');

   if wnd = 0 then
   begin
      RunProcess ('C:\WINDOWS\explorer.exe /e,/n,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{BBA7EB3F-97AB-4EBD-BCA2-C3C8DBED4490}', SW_SHOWNORMAL, False, nil);

      TimeOut := GetTickCount + 2000;

      repeat
         Sleep(0);
         wnd := FindWindow('ExploreWClass','Anapod Explorer');
      until (wnd <> 0) or (GetTickCount > TimeOut);
   end;

   AnapodExplorerHandle := wnd; // AnapodExplorerHandle ist eine private Variable des Forms

// unwichtiger Code
Versuch, zu schließen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  showmessage (inttostr (AnapodExplorerHandle));

   SendMessage(AnapodExplorerHandle, WM_QUIT, 0, 0);
   SendMessage(AnapodExplorerHandle, WM_CLOSE, 0, 0);
end;
Und das Handle ist gleich dem, dass mir Winspy anzeigt ... ich blick' da nicht mehr so recht durch


Edit:

Habs jetzt hinbekommen, hatte direkt das SC_CLOSE als Message versendet ...
Richig muss es so sein:SendMessage(AnapodExplorerHandle, WM_SYSCOMMAND, SC_CLOSE, 0); Dann geht's auch ...
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#6

Re: Explorerfenster schließen

  Alt 27. Jun 2005, 22:26
Zitat:
Sleep(0);
bringt das auch was??
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#7

Re: Explorerfenster schließen

  Alt 27. Jun 2005, 22:31
Zitat von urbanbruhin:
bringt das auch was??
Du wirst es nicht glauben, aber dadurch geht's schneller

Ich glaube, es bewirkt, dass er sofort seine Rechenzeit freigibt, und sie nicht solange in der sinnlosen Schleife verpulvert ...

Also ab und zu statt andauernd kucken, und dafür den anderen Threads mehr Zeit lassen - u.a. um das Programm zu starten.

Das wäre dann sogar logisch
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#8

Re: Explorerfenster schließen

  Alt 28. Jun 2005, 00:12
Hallo,

Nimm mal PostMessage anstelle von SendMessage
Thomas
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#9

Re: Explorerfenster schließen

  Alt 28. Jun 2005, 00:21
Zitat von jfheins:
Zitat von urbanbruhin:
bringt das auch was??
Du wirst es nicht glauben, aber dadurch geht's schneller
Lustig... darauf muss man erstmal kommen. Werd' ich mir merken...
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#10

Re: Explorerfenster schließen

  Alt 28. Jun 2005, 15:10
Zitat von toms:
Hallo,

Nimm mal PostMessage anstelle von SendMessage
Zitat:
bringt das auch was??
( )

Geht das dadurch noch schneller ?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr.
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