AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CreateShortCut

Ein Thema von EWeiss · begonnen am 2. Mai 2017 · letzter Beitrag vom 3. Mai 2017
Antwort Antwort
Seite 1 von 2  1 2      
EWeiss
(Gast)

n/a Beiträge
 
#1

CreateShortCut

  Alt 2. Mai 2017, 20:38
Habe mir diese Class geladen
http://www.tek-tips.com/faqs.cfm?fid=7526
Kleinere Problem konnte ich beheben den aber nicht weil da zu viel von abhängt.

Zitat:
[DCC Fehler] uIShellItem.pas(89): E2188 Published-Eigenschaft 'ItemIDList' kann nicht vom Typ POINTER sein
Delphi-Quellcode:
      // PItemIDList value for file referenced in AppPath
      property ItemIDList: PItemIDList read FPIdl write FPIdl;
was muss ich ändern damit es geht aus Published herausnehmen?

Jo geht nur was hat das für Auswirkungen Published oder nicht.

gruss
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

AW: CreateShortCut

  Alt 2. Mai 2017, 21:13
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.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: CreateShortCut

  Alt 2. Mai 2017, 21:15
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.
Ok danke.. Habe aber festgestellt das ich diese Unit nicht nutzen kann weil sie keinen ShortCut erstellt.
Ich möchte einen ShortCut erstellen ohne diesen Abspeichern zu müssen.

Na ok muss den Kram umbauen.

gruss

Geändert von EWeiss ( 2. Mai 2017 um 21:37 Uhr)
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
724 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: CreateShortCut

  Alt 2. Mai 2017, 21:39
Zitat:
Ich möchte einen ShortCut erstellen ohne diesen Abspeichern zu müssen.

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?
Michael Gasser
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#5

AW: CreateShortCut

  Alt 2. Mai 2017, 21:40
Suchst Du sowas?

http://stackoverflow.com/questions/7...top-in-windows
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: CreateShortCut

  Alt 2. Mai 2017, 21:54
Zitat:
Was meinst du mit "ohne diesen abspeichern zu müssen"?
Ich meine die Informationen aus der Verknüpfung auslesen.

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:
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;
Ich brauche die Daten nachher um die Verknüpfung auf der Bar ausführen zu können.

Zitat:
Suchst Du sowas?
Nein Danke hab das richtige schon gefunden muss die nur meinen Vorstellungen entsprechend anpassen.
Ich möchte ja keinen erstellen sondern die Informationen daraus auslesen.
Warum alles neu erfinden

gruss

Geändert von EWeiss ( 2. Mai 2017 um 23:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#7

AW: CreateShortCut

  Alt 2. Mai 2017, 23:12
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: CreateShortCut

  Alt 2. Mai 2017, 23:28
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.
Ja nu
Aber irgendwann muss das teil mal inklusive Published gelaufen haben.

Nur mit D2010 macht der Compiler ärger..
Er will hier

property ItemIDList: PItemIDList read FPIdl write FPIdl;

das haben

property ItemIDList: TItemIDList read FPIdl write FPIdl;

Nur dann hätte ich alles ändern müssen.
Deshalb ist es jetzt Public.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#9

AW: CreateShortCut

  Alt 3. Mai 2017, 08:29
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

AW: CreateShortCut

  Alt 3. Mai 2017, 08:36
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.
Ok
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz