AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Welcher Ordner wird mit dem Explorer geöffnet?
Thema durchsuchen
Ansicht
Themen-Optionen

Welcher Ordner wird mit dem Explorer geöffnet?

Ein Thema von hibbert · begonnen am 27. Mai 2004 · letzter Beitrag vom 27. Sep 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von hibbert
hibbert

Registriert seit: 26. Aug 2003
Ort: Berlin
262 Beiträge
 
Delphi 2005 Personal
 
#1

Welcher Ordner wird mit dem Explorer geöffnet?

  Alt 27. Mai 2004, 22:17
Hi,
gibt es eine Möglichkeit, herrauszufinden, welche Ordner gerade vom Explorer geöffnet wird?

thx hibbert
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Welcher Ordner wird mit dem Explorer geöffnet?

  Alt 27. Mai 2004, 23:19
Könnte schwer bis unmöglich werden. Ein ShellHook könnte die Lösung sein, ich kenne mich da aber nicht so aus. Fragen wir doch mal anders rum: Was hast du denn vor? Eventuell brauchst du das gar nicht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von hibbert
hibbert

Registriert seit: 26. Aug 2003
Ort: Berlin
262 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Welcher Ordner wird mit dem Explorer geöffnet?

  Alt 10. Jun 2004, 12:53
ich möchte einfach nur ein programm starten, wenn ein ein bestimmter ordner geöffnet ist.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Welcher Ordner wird mit dem Explorer geöffnet?

  Alt 10. Jun 2004, 12:54
Dann wird wohl ein ShellHook die Lösung sein.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Uncle Cracker
Uncle Cracker

Registriert seit: 30. Mär 2003
Ort: Freital
694 Beiträge
 
#5

Re: Welcher Ordner wird mit dem Explorer geöffnet?

  Alt 10. Jun 2004, 13:05
Du könntest jedoch auch diese Methode nehmen:

Delphi-Quellcode:
var
  wnd: HWnd;
begin
  wnd := FindWindow(nil, 'Delphi');
  PostMessage(wnd, WM_CLOSE, 0, 0);
end;
Dieser Code verhindert, dass das der Ordner "Delphi" geöffnet ist.
Das musst du jetzt nur für dich ändern.


[Edit] Du musst jetzt eben nur anstatt "PostMessage(wnd, WM_CLOSE, 0, 0);" das hier nehmen "if wnd <> 0 then begin ..." und dann das machen was du willst [/Edit]
I wish it was legal to marry software because I'm madly in love with Delphi...
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Welcher Ordner wird mit dem Explorer geöffnet?

  Alt 10. Jun 2004, 13:09
Aber auch nur wenn die Option "vollständigen Pfad in Titelleiste anzeigen" aus ist. Sonst musst du den ganzen Pfad abprüfen!
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von hibbert
hibbert

Registriert seit: 26. Aug 2003
Ort: Berlin
262 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Welcher Ordner wird mit dem Explorer geöffnet?

  Alt 10. Jun 2004, 14:20
k, danke das funzt schonmal, zb. mit dem schließen des Fensters.
Aber wie bekomme ich nun den Pfad dieses Ordners raus ?

thx hibbert
  Mit Zitat antworten Zitat
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Welcher Ordner wird mit dem Explorer geöffnet?

  Alt 10. Jun 2004, 14:32
Wenn man genaueres über den aktuellen Ordner-Pfad wissen möchte, dann könnte man auch einfach die Adressleiste des Explorers auslesen. Das einzigste was man dazu wissen muss ist nur, dass das eigentliche Control, welches da den Text beinhaltet, eines von der Class 'Edit' ist und der Class-Name des Explorers 'ExploreWClass' lautet. Damit sucht man also zuerst per FindWindow die Explorer-Handle und danach mittels EnumChildWindows die Handle dieses besagten Edit-Controls. Anschließen braucht man sich nur noch mehr der SendMessage-Funktion bedienen und lässt sich mit ihr + EM_GETLINE den gewünschten Edit-Text einfach ausgeben, also z.B. so:


Code:
function EnumChildProc(hWindow: HWND; lParameter: LPARAM): Bool; stdcall;
var ClassNameStr : string[255];
    ClassNameStrLen : integer;
begin
  ClassNameStrLen := GetClassName(hWindow,@ClassNameStr[1],255);
  SetLength(ClassNameStr,ClassNameStrLen);
  if ClassNameStr <> 'Edit' then Result := true
  else begin
    Form1.FEditHandle := hWindow;
    Result := false;
  end;
end;

function getEditStr(hWindow: HWND): string;
var EditStr : string[255];
    EditStrLen : integer;
begin
  EditStr[1] := chr(255);
  EditStrLen := sendMessage(hWindow,EM_GETLINE,0,integer(@EditStr[1]));
  SetLength(EditStr,EditStrLen);
  Result := EditStr;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  FExplorerHandle := FindWindow('ExploreWClass',Nil);
  EnumChildWindows(FExplorerHandle, @EnumChildProc, 0);
  label1.Caption := getEditStr(FEditHandle);
end;
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#9

Re: Welcher Ordner wird mit dem Explorer geöffnet?

  Alt 27. Sep 2004, 15:53
Und wo kommen FEditHandle und FExplorerHandle bitte her??? Muss ich in Uses-Teil was hinzufügen?
  Mit Zitat antworten Zitat
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Welcher Ordner wird mit dem Explorer geöffnet?

  Alt 27. Sep 2004, 16:33
Zitat von romber:
Und wo kommen FEditHandle und FExplorerHandle bitte her??? Muss ich in Uses-Teil was hinzufügen?
Nein, diese beiden Größen waren/sind bloß ganz normale (Feld-) Variable von Form1, ...welche quasi nur jeweils das Handle des Explorers bzw. das des fraglichen Edit-Controls darauf zwischenzuspeichern hatten:


Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    FEditHandle : hWnd;
    FExplorerHandle : hWnd;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:03 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