Autor Beitrag
Cypher2000
Hält's aus hier
Beiträge: 15

Win XP
Delphi 7
BeitragVerfasst: Sa 20.12.08 15:45 
Hallo Leute!

Dieses Forum (und Google ;) ) hat mir schon schon sehr viel geholfen doch jetzt habe ich eine Frage auf die ich bis jetzt keine Antwort gefunden habe:

Wie kann ich einen Papierkorb erstellen?

Ich möchte in einem beliebigen Ordner mit Delphi einen Papierkorb Ordner erstellen der dann auf den 'richtigen' Papierkorb linkt. Also keine Verknüpfung oder so. ;) Im Gegensatz zum normalen Dateiordner ist der Papierkorb ja ein "Shell Folder". Also könnte die Frage allgemeiner lauten: Wie erstelle ich einen solchen Shell Ordner? ^^

Vielen Dank! :)


Mit freundlichen Grüßen

Cypher ;)
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Sa 20.12.08 16:18 
Gegenfrage: Wozu?
Vllt. versteh ich den noch nicht ganz (oder es gibt keinen).

_________________
PROGRAMMER: A device for converting coffee into software.
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: Sa 20.12.08 16:32 
Wie meinst du das, dass er auf den echten Papierkorb "linkt"? Genau das macht eine Verknüpfung, aber die willst du ja nicht.

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 20.12.08 16:36 
Du musst lediglich einen Punkt und die ClassID an den Ordnernamen anhängen ;-).

In deinem Fall also ein neuer Ordner mit einem solchen Namen z.B.:
"Mein kleiner Papierkorb.{645FF040-5081-101B-9F08-00AA002F954E}"
Cypher2000 Threadstarter
Hält's aus hier
Beiträge: 15

Win XP
Delphi 7
BeitragVerfasst: Sa 20.12.08 16:52 
Ich möchte einfach mal etwas dazulernen weil ich noch relativ neu am Delphi coden bin. Auf die Sache mit dem Papierkorb kam ich dadurch weil ich mir mal einen Virus eingefangen hatte der auch dauernd überall Papierkörbe installiert hat. Wenn ich auf den Papierkorb geklickt habe kam ich zwar auch zum "richtigen" Papierkorb (wurde dahingeleitet wie bei einer Verknüpfung) aber trotzdem war es ein Ordner in dem sich der Virus versteckt hatte. Und nun will ich einfach mal schauen ob ich das auch kann. hehe ;)

Das mit der Class ID ranhängen funktioniert schonmal (dankeschön! :) ) aber wie kann ich erreichen dass die nicht mit angezeigt wird? Das Teil wo ich raufklicke heißt ja normalerweise auch nicht "Papierkorb.{645FF040-5081-101B-9F08-00AA002F954E}". ;)

Vielen Dank für eure Hilfe :)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 20.12.08 17:18 
Ich weiß nicht wie das unter XP geht, sichtbar ist die CLSID nur dort, vorher hat man die nach dem Umbenennen sowieso nicht mehr gesehen. Vielleicht lässt sich das herausfinden, wenn man in der Registry nachschaut, vielleicht mache ich das mal, wen ich Langeweile habe.
(Denn dort ist das Verhalten abhängig von der ClassID gespeichert.)
Cypher2000 Threadstarter
Hält's aus hier
Beiträge: 15

Win XP
Delphi 7
BeitragVerfasst: Sa 20.12.08 17:54 
Also ich habe einiges ausprobiert um die CLSID-Endung da wegzubekommen, bin aber noch nicht zum Erfolg gekommen.

In der Registry steht etwas von Attributen. (siehe Bild im Anhang)
Muss ich dem Ordner vielleicht diese Attribute zuweisen?
Wenn ja: "FileSetAttr(foldername,$00000040+$00000001+$00000020);" funktioniert nicht. Ist das überhaupt so richtig? ^^
Der Rest der Einträge die zu der CLSID passen waren nur die "Standartsachen" wie Pfad zum Shell32.dll Icon und sowas.

Danke! :)
Einloggen, um Attachments anzusehen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 20.12.08 18:01 
user profile iconCypher2000 hat folgendes geschrieben Zum zitierten Posting springen:
In der Registry steht etwas von Attributen. (siehe Bild im Anhang)
Muss ich dem Ordner vielleicht diese Attribute zuweisen?
Wenn ja: "FileSetAttr(foldername,$00000040+$00000001+$00000020);" funktioniert nicht. Ist das überhaupt so richtig? ^^
Nein ;-)
Es geht hier nicht um normale Dateiattribute sondern um Attribute des Shellobjekts. Ganz genau habe ich mich damit bisher nicht beschäftigt, immer nur so weit wie ich es gerade brauchte. :D