![]() |
Re: ShellFolder anlegen?
Bekomme ebenfalls den Fehler an genannter Stellen. Da Du schon Kontakt aufgenommen hast, warte ich mal auf Seine/Deine Antwort.
|
Re: ShellFolder anlegen?
Delphi-Quellcode:
in
function NtMyGetProcessHeap: Pointer; assembler;
asm mov EAX, _TEB[FS:0].Peb mov EAX, [EAX]._PEB.ProcessHeap end;
Delphi-Quellcode:
ändern.
function NtMyGetProcessHeap: Pointer; assembler;
asm mov eax, fs:[0]._TEB.Peb mov eax, [eax]._PEB.ProcessHeap end; |
Re: ShellFolder anlegen?
Siehe Nicos Post. Übrigens bei mir geht es. Wird geupdated - dauert ein paar Minuten.
Die Hardlink-Unit sollte auch nur benutzt werden, wenn nur NT4 verfügbar ist. Sonst lieber die echte CreateHardLink-API von Windows 2000 und aufwärts benutzen. PS: Besser so? |
Re: ShellFolder anlegen?
Gut, dann brauchst du die CPU-Ausgabe wohl nicht mehr. ;) Ich schreibe gerade und sehe dann in der Vorschau, dass du wieder editiert hast. Na ja, jetzt ist die Zugriffsverletzung zwar weg, aber irgendwie komme ich auf keinen grünen Zweig. Was habe ich bei dem Prinzip jetzt nicht kapiert?
1. Es geht nur auf NTFS, das weiß ich. 2. Als "zu verlinkendes Ziel" kann ich aber auch einen Ordner auf einer FAT-Partition nehmen (?) Aber selbst mit "nur NTFS"-Ordnern klappt´s nicht. Olli hat in der Datei einen Kommentar zu "CreateSoftLink"
Delphi-Quellcode:
Okay, ich hab´s für meine K-Partition abgeändert und erhalte "E/A-Fehler 105", wenn ich das Programm als Admin starte. Mit Benutzerrechten sehe ich gar keine Fehlermeldung. Angelegt wird im Fall #1 (Admin) übrigens eine Datei "1" mit 0 Bytes.
CreateSoftLinkW('C:\1', 'C:\WINNT');
@Blutiger Anfänger: Die API-Funktion von Win XP funktioniert bei mir übrigens nicht. Ich habe sie selbst importiert, aber irgendwie ist das Ergebnis immer false ... Hm ... :? |
Re: ShellFolder anlegen?
Zitat:
Zitat:
|
Re: ShellFolder anlegen?
CreateSoftLink() ist ein Protoyp und noch nicht komplett implementiert. Wenn ich mal Zeit finde, mache ich das. Ansonsten nicht verwechseln: Hardlinks sind quasi "kreuzverbundene Dateien" wie man sie unter DOS mit FAT fürchtete. Softlinks werden vom Dateisystemtreiber (erst ab NTFS 5!) geparst und sind auch als Junction Points, Reparse Points und Mount Points bekannt.
Hardlinks gehen nur auf NTFS und dürfen auch nur auf NTFS liegen - Ziel und Quelle! Softlinks dürften theoretisch (nie versucht mangels FAT-Partition) von einer NTFS-Partition auf eine FAT oder eine ander Partition zeigen dürfen (aber wie gesagt, theoretisch!). Versuchs und mail mir als Feedback. @Nico: Nein ich meinte die geupdatete Version hardlinks.zip|rar und ln.zip|rar Nicht gleiches Laufwerk, sondern gleiche Partition! |
Re: ShellFolder anlegen?
Zitat:
Zitat:
|
Re: ShellFolder anlegen?
Dann ist´s (um auf das ursprüngliche Thema dieses Beitrags zurückzukommen) entweder ein Softlink (denn ich kann bspw. eine Verknüpfung eines FAT-Ordners im XP-Startmenü ablegen, die dann auch als Ordner angezeigt und geöffnet wird - so wie´s ThoPos beschrieben hat), oder es ist eine API-Funktion, die ich bis jetzt noch nicht entdeckt habe, und die automatisch den Ordner, die "target.lnk" und die versteckte "desktop.ini" anlegt.
PS: Aber trotzdem würde mich interessieren, wo mein Fehler liegen soll:
Delphi-Quellcode:
K:\ ist meine NTFS-Partition, und ich habe sogar Admin-Rechte.
function CreateHardLinkA(lpFileName, lpExistingFileName: LPCTSTR;
lpSecurityAttributes: PSecurityAttributes): bool; stdcall; external 'kernel32.dll'; procedure TForm1.Button1Click(Sender: TObject); begin if(not CreateHardLinkA('k:\test','k:\Programme',nil)) then ShowMessage('Och nö! :o(') end; |
Re: ShellFolder anlegen?
Softlinks habe ich bisher nicht auf Dateien zustande bekommen, obwohl ich noch immer überzeugt bin, daß es möglich sein muß.
Zum erstellen von Softlinks empfehle ich die Shellextension von Arni: ![]() ![]() Wer es haben will kann mir mailen, hab die letzte Version. @Mathias: Der Fehler ist, daß Hardlinks nur auf Dateien gehen! Ist k:\Programme eine Datei? |
Re: ShellFolder anlegen?
Moin Mathias,
was sagt denn GetLastError dazu? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 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