Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit Umbennenen von Shortcuts... (https://www.delphipraxis.net/99311-problem-mit-umbennenen-von-shortcuts.html)

bingo72 10. Sep 2007 15:08


Problem mit Umbennenen von Shortcuts...
 
Liebe Delphi-Kollegen!!

Zur Zeit ist es so: Beim jedem Start meiner Applikation frag ich zuerst ab, ob ein Shortcut auf meinem Desktop vorhanden ist und wenn nicht, wird dieser erzeugt. Damit stelle ich sicher, daß 'ungeschickte' User, die versehentlich das Shortcut gelöscht haben, es beim nächsten Systemstart wieder zur Verfügung haben.

Soweit, sogut!!

Wenn nun aber ein User den Shortcut umbennent (--> somit heißt der Shortcut anders), wird der bisherige Shortcut-Name nicht mehr gefunden und das Shortcut nochmals neu erzeugt --> somit 2 Shortcuts (umbennantes Shortcut + neu erzeugtes Shortcut)...was natürlich Quatsch ist.

Wie kann ich es bewerkstelligen, daß Shortcuts wirklich nur dann erzeugt werden, wenn sie nicht vorhanden sind und ansonst der Shortcut (egal ob original oder umbenannt) verwendet wird??!!

shmia 10. Sep 2007 15:58

Re: Problem mit Umbennenen von Shortcuts...
 
Ein Shortcut (ShellLink) hat ja auch einen Inhalt (ZielDatei, Verzeichnis, ).
Delphi-Quellcode:
type
  TShellLink = record
    Arguments: string;
    ShowCmd: Integer;
    WorkingDirectory: string;
    IdList: PItemIDList;
    Target: string;
    Description: string;
    IconLocation: string;
    IconIndex: Integer;
    HotKey: Word;
  end;
Du müssest alle Shortcuts durchgehen und den Inhalt (Target & Arguments) vergleichen.
Dabei kann dir die Funktion ShellLinkResolve() aus der Unit JclShell (JCL) helfen.

bingo72 11. Sep 2007 07:01

Re: Problem mit Umbennenen von Shortcuts...
 
Hallo!!

Danke für die Info!! Was mir noch unklar ist....wie kann man sämtliche Shortcuts ermitteln??

LG
Thomas

shmia 11. Sep 2007 09:03

Re: Problem mit Umbennenen von Shortcuts...
 
Zitat:

Zitat von bingo72
....wie kann man sämtliche Shortcuts ermitteln??

Man muss dazu zwei Ordner nach Dateien *.lnk durchsuchen.
Code:
CSIDL_COMMON_DESKTOPDIRECTORY - gemeinsamer Desktop für alle User
CSIDL_DESKTOPDIRECTORY        - Desktop für aktuellen User
Diese Pfade können mit GetSpecialFolderLocation() aus Unit JclShell abgefragt werden.
Das Durchsuchen dieser Ordner lässt sich ganz bequem mit function BuildFileList() aus Unit JclFileUtils erledigen.

Zacherl 11. Sep 2007 09:05

Re: Problem mit Umbennenen von Shortcuts...
 
Ich finde so eine Funktion allerdings nicht sinnvoll. Vielleicht entscheidet sich der Benutzer ja irgendwann den Shortcut zu löschen und verwendet stattdessen lieber das Startmenü. Dann wird ihm bei jedem Programmstart wieder ein Icon auf den Desktop gesetzt, was er löschen muss.

bingo72 12. Sep 2007 15:30

Re: Problem mit Umbennenen von Shortcuts...
 
Vielen Dank für eure nützlichen Tipps!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 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