![]() |
Ordner auf Änderung überwachen/Auswerfen im Apple-Stil
Moin DP,
ich hoffe ich bin in dieser Kategorie richtig. Ich möchte gern ein Auswerfen von Datenträgern im Apple-Stil realisieren. Desktopverknüpfung beim einlegen/einstecken anlegen ist soweit kein Problem, jedoch suche ich eine Funktion um auf das löschen bzw. verschieben in den Papierkorb der Verknüpfung zu reagiern. Habe mir dazu diverse Sachen hier im Forum angesehen und mehrer Komponenten ausprobiert, jedoch reagieren diese nicht auf Verknüpfungen,sondern nur auf "normale" Dateien/Ordner. Hoffe jemand von euch hat ne Iddee dazu, danke schonmal -derdaniel. |
Re: Ordner auf Änderung überwachen/Auswerfen im Apple-Stil
Schau dir mal
![]() ![]() |
Re: Ordner auf Änderung überwachen/Auswerfen im Apple-Stil
Danke erstmal,
hatte bereits mehrere Komponenten die diese Funktionen nutzen getestet, leider ohne Erfolg. Das kuriose ist, das wenn ich die Verknüpfung "von Hand" erstelle (Rechtsklick usw..) oder lösche(über Explorer) dann funktionierts, verwende ich jedoch "CreateDesktopLink" (Luckie) oder "DeleteFile",dann funzt's net... Ne Iddee? |
Re: Ordner auf Änderung überwachen/Auswerfen im Apple-Stil
das Erstellen funktioniert
![]() z.b.
Delphi-Quellcode:
aber mit dem Löschen hatte ich damals auch meine Schwierigkeiten meine ich ;) aber so sollte es gehen, habs eben mal getestet ;) GL
Createshortcut(SpecialDirectory(CSIDL_Desktop)+'Jompf.lnk',
path.text+'\Jompf.exe','/info', path.text+'\', SW_SHOWNORMAL, path.text+'\Jompf.exe', 0);
Delphi-Quellcode:
DeleteFile(specialDirectory(CSIDL_Desktop)+'Jompf.lnk');
|
Re: Ordner auf Änderung überwachen/Auswerfen im Apple-Stil
Ähhhhmm, ich hab kein Problem beim Erstellen oder Löschen der Verknüpfugen,
sondern diesen Vorgang benachrichtigt zu bekommen, eben mit "FindFirstChangeNotification" o.ä. ... |
Re: Ordner auf Änderung überwachen/Auswerfen im Apple-Stil
Zitat:
Hallo, ich bin nicht sicher, ob ich dein Problem genau verstanden habe. Testweise habe ich die JvChangeNotify von der JCVL genommen, eine Notification für Desktop gesetzt und eine lnk Datei auf dem Desktop erstellt. Lösche ich nun die lnk Datei per DeleteFile, wird das ChangeNotify Ereignis ausgelöst. |
Re: Ordner auf Änderung überwachen/Auswerfen im Apple-Stil
Habs nochmal mit JvChangeNotify probiert, funktioniert leider nicht.
Erstelle ich manuell eine Verknüpfung und lösche Sie mit DeleteFile kommt eine Benachrichitigung. Erstelle ich die Verknüpfung mit meinem Programm und lösche sie mit DeleteFile oder dem Explorer funktionierts nicht... Die Eigenschaft CheckIntervall von TJvChangeNotify hat mich jedoch auf eine Idee gebracht, da ich die Verknüpfungen selbst erstelle und lösche, hab ich ja eh die Dateinamen, also Timer rein und per FileExists gucken ob Sie da ist... Is zwar blöd wenn se jemand verschiebt, aber gut man(n) kann eben nicht alles haben... thx@toms |
Re: Ordner auf Änderung überwachen/Auswerfen im Apple-Stil
Und wenn du das so machst:
Delphi-Quellcode:
Klappt bei mir wunderbar ^^
unit uNotifyChanges;
interface uses Windows, SysUtils, Dialogs; const KERNEL32 = 'kernel32.dll'; FILE_NOTIFY_CHANGE_FILE_NAME = $1; //1 FILE_NOTIFY_CHANGE_DIR_NAME = $2; //2 FILE_NOTIFY_CHANGE_ATTRIBUTES = $4; //4 FILE_NOTIFY_CHANGE_SIZE = $8; //8 FILE_NOTIFY_CHANGE_LAST_WRITE = $10; //16 FILE_NOTIFY_CHANGE_SECURITY = $100; //256 FILE_NOTIFY_CHANGE_ALL = $7F; //127 function RegisterDirectoryWatch (const lpDir : PChar; bWatchSub : Boolean = False; dwFlags : DWORD = 1) : String; implementation function RegisterDirectoryWatch (const lpDir : PChar; bWatchSub : Boolean = False; dwFlags : DWORD = 1) : String; var hHnd : THandle; dwWait : DWORD; begin if lpDir <> '' then begin hHnd := FindFirstChangeNotification (lpDir, bWatchSub, dwFlags); if hHnd = INVALID_HANDLE_VALUE then begin Result := ''; end else begin while TRUE do begin dwWait := WaitForSingleObject(hHnd, INFINITE); case dwWait of WAIT_OBJECT_0: begin Result := lpDir; Exit; end; end; end; end; FindCloseChangeNotification(hHnd); end; end; end. |
Re: Ordner auf Änderung überwachen/Auswerfen im Apple-Stil
Ich kapier's einfach net, die ganzen Überwachungs-Funktionen laufen super solange
ich die Verknüpfungen von Hand erstelle, nutze ich Luckie's CreateDesktopLink, gehen die ganzen Funktionen auf einmal nichmehr, nichmal wenn ich eine damit erstellte Datei von Hand lösche... Danke trozdem an alle für die Mühen, werde wohl bei dem Timer bleiben, erscheint mir die einfachste Lösung... |
Re: Ordner auf Änderung überwachen/Auswerfen im Apple-Stil
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:03 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