![]() |
CreateShortCut
Habe mir diese Class geladen
![]() Kleinere Problem konnte ich beheben den aber nicht weil da zu viel von abhängt. Zitat:
Delphi-Quellcode:
was muss ich ändern damit es geht aus Published herausnehmen?
// PItemIDList value for file referenced in AppPath
property ItemIDList: PItemIDList read FPIdl write FPIdl; Jo geht nur was hat das für Auswirkungen Published oder nicht. gruss |
AW: CreateShortCut
Soweit ich weiß, wird Published im Objektinspektor angezeigt, Public nicht.
Habe nicht den Eindruck, dass man diese Eigenschaft unbedingt im Objektinspektor benötigt. Wenn Du das Teil erst zur Laufzeit erstellst, sollte das (meiner Meinung nach) unkritisch sein. |
AW: CreateShortCut
Zitat:
Ich möchte einen ShortCut erstellen ohne diesen Abspeichern zu müssen. Na ok muss den Kram umbauen. gruss |
AW: CreateShortCut
Zitat:
Hallo EWeiss Meinst du mit Shortcut eine .lnk Datei? Wenn Ja: Wo soll der Shortcut erstellt werden? Was meinst du mit "ohne diesen abspeichern zu müssen"? Wenn du einen Shortcut erstellst, dann wird doch immer eine Datei mit der "Link-Info" gespeichert? Oder gibt es da andere Möglichkeiten, von denen ich nix weiss? |
AW: CreateShortCut
|
AW: CreateShortCut
Zitat:
Bei WShell (Scrip) will ich nicht verwenden muss man die Verknüpfung erst erstellen um daraus die Informationen zu extrahieren. Bei IShellLink geht das ohne. Habe deshalb die Funktion hier anpasst. Ich übergebe die Verknüpfung und den Rest macht die Funktion.
Delphi-Quellcode:
Ich brauche die Daten nachher um die Verknüpfung auf der Bar ausführen zu können.
procedure TWin32ShortCut.LoadShortCut(LnkName: WideString);
var FP: array[0..MAX_PATH * 2] of Char; pfd: TWin32FindDataW; showval: integer; psfi: TSHFileInfo; begin ClearValues; FPersistFile.Load(PWideChar(LnkName), 0); FillChar(FP, Sizeof(FP), 0); FShellLink.GetPath(FP, Sizeof(FP), pfd, 0); FAppPath := String(FP); FShellLink.GetIDList(Fpidl); FillChar(FP, Sizeof(FP), 0); FShellLink.GetWorkingDirectory(FP, Sizeof(FP)); FWorkDirectory := String(FP); FillChar(FP, Sizeof(FP), 0); FShellLink.GetArguments(FP, Sizeof(FP)); FArguments := String(FP); FillChar(FP, Sizeof(FP), 0); FShellLink.GetDescription(FP, Sizeof(FP)); FDescription := String(FP); FShellLink.GetShowCmd(showval); FShowCmd := cvtTShowType(showval); FShellLink.GetHotkey(FHotKey); HotKeyToShortCut(FHotKey, FHotKeyCtrl); FillChar(FP, Sizeof(FP), 0); FShellLink.GetIconLocation(FP, Sizeof(FP), FIconIndex); FIconPath := String(FP); // based on icon information tries to load the icon itself into Icon type. if FIconPath = '' then // regular explorer association. begin SHGetFileInfo(PChar(FAppPath), 0, psfi, sizeof(psfi), SHGFI_ICON); FIcon.Handle := psfi.hIcon; end else // specified in file, go get it. FIcon.Handle := ExtractIcon(hInstance, PChar(FIconPath), FIconIndex); end; Zitat:
Ich möchte ja keinen erstellen sondern die Informationen daraus auslesen. Warum alles neu erfinden ;) gruss |
AW: CreateShortCut
Die Published Property können/sollen/müssen "automatisch" ausgelesen und vorallem gesetzt werden können.
Es sind dort also nur statische Typen und gemanagete Typen möglich/erlaubt. |
AW: CreateShortCut
Zitat:
Aber irgendwann muss das teil mal inklusive Published gelaufen haben. Nur mit D2010 macht der Compiler ärger.. Er will hier
Delphi-Quellcode:
property ItemIDList: PItemIDList read FPIdl write FPIdl;
das haben
Delphi-Quellcode:
property ItemIDList: TItemIDList read FPIdl write FPIdl;
Nur dann hätte ich alles ändern müssen. Deshalb ist es jetzt Public. gruss |
AW: CreateShortCut
Das mag keine Delphi-Version im Published.
Pointer sind dynamisch und nicht gemanaged, also der Speicher wird nicht "automatisch" freigegeben/verwaltet. TItemIDList geht natürlich nur, wenn PItemIDList nicht zufällig eine "Liste" aus mehreren ItemIDs (TItemIDList) ist, hab da aber grade keine Ahnung. |
AW: CreateShortCut
Zitat:
Ist ja erst mal erledigt. Aber wenn man die Classe oben im ersten Beitrag der Link mal anschaut ist es Published gesetzt. Hat das dann nie funktioniert? gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 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