Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ordnerüberwachung im Windows-Explorer (https://www.delphipraxis.net/1882-ordnerueberwachung-im-windows-explorer.html)

Scorpion 29. Dez 2002 10:23


Ordnerüberwachung im Windows-Explorer
 
Hi, habe damals unter Win98 ein Programm geschrieben, welches herausfinden kann, welcher ordner im Windows-Explorer / Arbeitsplatz gerade geöffnet wurde. Nur irgendwie geht dieser code jetzt unter WinXP garnicht mehr.

Woran kann das denn liegen? Mit welchem Code könnte es denn gehen?

Gruss
Scorpion

Christian Seehase 29. Dez 2002 15:20

Moin Scorpion,

wie hast Du es denn unter 98 gemacht?

Scorpion 29. Dez 2002 15:36

Hi, ich verwende den folgenden Code...

Delphi-Quellcode:
function EnumChildProc(Wnd : hWnd; SL : TStrings) : Boolean; StdCall;
var
  szFull : Array[0..MAX_PATH] of char; //Buffer for window caption
begin
  Result:=Wnd<>0;
  if Result then begin
    GetWindowText(Wnd, szFull, SizeOf(szFull)); // put window text in buffer
    if (pos(SL[0],StrPas(szFull))>0) // Test for text
    and (SL.IndexOfObject(TOBject(Wnd))< 0) // Test for duplicate handles
    then SL.AddObject(StrPas(szFull),TObject(Wnd)); // Add item to list
    EnumChildWindows(Wnd,@EnumChildProc, LongInt(SL)); //Recurse into child windows
  end;
end;

function EWindowsCode(Wnd: hWnd; lParam: LPARAM): Boolean; Export; StdCall;
var
Buffer : Array[0..99] of char;
hn : HWnd;
begin
GetWindowText(Wnd, Buffer, 100);
if(StrLen(Buffer) <> 0) then
begin
SearchListview1(StrPas(Buffer));
SearchListview2(StrPas(Buffer));
end;
Result:= True;
end;
Aufgerufen wird der code durch
EnumWindows(@EWindowsCode, LongInt(Self))
in einem Timer

Gruss
Scorpion

[Edit=Christian Seehase]Delphi Tags hinzugefügt[/Edit]

Christian Seehase 29. Dez 2002 15:43

Moin Scorpion,

ich hab' jetzt kein XP zur Hand, aber könnte es daran liegen, dass in der Caption des Explorers der Folder nicht angezeigt wird?

Scorpion 29. Dez 2002 15:51

Hi,

genau das ist es, habs eben ausgetestet, aber wie kann ich per code einstellen, dass der komplette Pfad in der titelleiste angezeigt wird

thx
scorpion

Christian Seehase 29. Dez 2002 17:53

Moin Scorpion,

wenn Du mit Deiner Idee das ganze per Code einzustellen, die Überlegung verknüpfst dies auf einem fremden Rechner auch zu machen, damit Dein Programm läuft, möchte ich Dir nur mal kurz meine Einstellung zu Programmen kundtun, die ungefragt meine Systemeinstellungen zu verändern gedenken:

Es gibt wohl keine Software die unersetzlich ist, und so eine Software wäre schneller wieder gelöscht, als installiert ;-)

Soll heissen:
Die Software muss sich auf das System einstellen, und nicht das System auf sich.

Jan 29. Dez 2002 17:55

Gut gebrüllt Löwe!


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:37 Uhr.

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