Entwickler-Ecke
Windows API - shortcut vom desktop löschen
juergen - Do 31.03.05 11:47
Titel: shortcut vom desktop löschen
Hallo
wie kann ich einen bestimmten shortcut vom desktop löschen oder die verknüpfung ändern
danke
juergen
Stübi - Do 31.03.05 11:50
Löschen: mit DeleteFile(C:\Desktoppfad\Verknüpfungsname.inc);
Ändern: wie meinst du ändern? eifach den Pfad ändern? den Namen ändern?
Gruss Stübi
retnyg - Do 31.03.05 12:27
verknüpfungen haben die extension .lnk
angenommen du hast ne verknüpfung namens leetMP3 auf dem desktop
den pfad zum desktop kriegst du so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| uses sysutils; ... var desktop, link: string; begin link := 'leetMP3.lnk'; desktop := ''; desktop := getenvironmentvariable('USERPROFILE'); if desktop <> '' then desktop := desktop + '\desktop\' else desktop := getenvironmentvariable('WINDIR') + '\desktop\'; if fileexists(desktop + link) then deletefile(desktop + link); end; |
juergen - Do 31.03.05 20:07
OK !
Vielen Dank
juergen
Delete - Do 31.03.05 20:30
Also, @retnyg, wenn du weißt, dass es evtl. Probleme mit Nicht-NT-Systemen geben kann:
retnyg hat folgendes geschrieben: |
Delphi-Quelltext 1: 2: 3:
| desktop := getenvironmentvariable('USERPROFILE'); if desktop <> '' then desktop := desktop + '\desktop\' else desktop := getenvironmentvariable('WINDIR') + '\desktop\'; | |
dann frage ich mich, warum du nicht gleich die passenden Shell-Funktionen zum Ermitteln des Desktop-Ordners nimmst? Dieses Rumhantieren mit den Umgebungsvariablen kann auch in die Hose gehen. Und das OS stellt mit
SHGETSPECIALFOLDERLOCATION schon passende Funktionen bereit. :roll:
retnyg - Do 31.03.05 22:24
ich bin nunmal mit DoS aufgewachsen, deswegen hänge ich auch an Dingen wie den Umgebungsvariablen...
ausserdem kenne ich die hier passenden API-befehle nicht, da ich mit den Umgebungsvariablen nie Probleme hatte.
Delete - Do 31.03.05 23:15
Ich bin auch mit DOS aufgewachsen, aber trotzdem nehme ich Umgebungsvariablen nur, wenn sie möglichst breit gefächert unterstützt werden. Aktuell verwende ich sie bspw. nur in meinen Build-Batches, um Pfade zu Delphi zu setzen, damit ich den ganzen Kram nicht ständig angeben muss:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| @echo off setlocal set dcc32="k:\programme\...\dcc32.exe"
%dcc32% MeinProgramm
set dcc32= |
Du siehst, ich hänge auch noch an der alten Zeit. :) Trotzdem kenne ich die API-Befehle, bzw. ich weiß, wo ich sie finden kann. ;)
Jakane - Mi 18.05.11 12:39
retnyg hat folgendes geschrieben : |
verknüpfungen haben die extension .lnk
angenommen du hast ne verknüpfung namens leetMP3 auf dem desktop
den pfad zum desktop kriegst du so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| uses sysutils; ... var desktop, link: string; begin link := 'leetMP3.lnk'; desktop := ''; desktop := getenvironmentvariable('USERPROFILE'); if desktop <> '' then desktop := desktop + '\desktop\' else desktop := getenvironmentvariable('WINDIR') + '\desktop\'; if fileexists(desktop + link) then deletefile(desktop + link); end; | |
Ich hab das mal probiert...
und bekomme dabei Fehlermeldungen
[Fehler] X1_01.pas(177): Nicht genügend wirkliche Parameter
[Fehler] X1_01.pas(179): Nicht genügend wirkliche Parameter
[Fehler] X1_01.pas(179): Inkompatible Typen: 'String' und 'Cardinal'
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!