Wie Verknüpfung anlegen mit Symbol in relativem Pfad

Richard Wagner

Bekanntes Mitglied
Meist haben (Desktop-) Verknüpfungen absolute Pfade, z.B.
G:\Toolsammlung\Tolles-Tool.exe

Wenn das tolle Tool aber auf einem USB-Stick liegt, ist eine relative Verknüpfung sinnvoller, weil es nur dann auch bei wechselnden Laufwerksbuchstaben funktioniert.
Doch auch das ist kein Problem. z.B.
explorer.exe "\Toolsammlung\Tolles-Tool.exe" oder %windir%\explorer.exe "\Toolsammlung\Tolles-Tool.exe"

Der Schönheitsfehler daran ist das Symbol. Die Verknüpfung zeigt das Explorer-Symbol.
Meine Versuche, auch für das Symbol einen relativen Pfad festzulegen, scheiterten bisher.
Hat jemand eine Lösung?
 

SkAvEnGeR

Master of Tools
Wenn das eine Verknüpfung zu einem bestimmten Tool sein soll, kannst du die EXE davon irgendwo auf den PC legen und davon das Symbol nutzen.

Wenn dieser USB-Stick aber auf verschiedenen PCs laufen soll mit eben dieser Verknüpfung, klappt das natürlich nicht.

Und wechselnde Laufwerksbuchstaben löst man mit USBDLM.
 

LSG

Bekanntes Mitglied
oder dem entsprechendem Stick einfach mal einen festen Laufwerksbuchstaben zuordnen. ideal wäre A oder B denn wer hat schon noch Diskettenlaufwerke!😎
 

chaospir8

★★★★★-Oldie
Man kann doch bei Verknüfungen das Icon/das Symbol mit bestimmen.
Oder geht dieses eben bei relativer Pfadangabe nicht?!

Idee (noch nicht ausprobiert):
Aus der Exe das Icon in eine *.ico-Datei exportieren und auch dort ablegen, wo die *.exe oder die Verknüpfung liegt.
Und dieses dann im Link/in der Verknüpfung nutzen.
 

GiveThatLink

Bekanntes Mitglied
Windows kann bei sowas keine relativen Pfade nutzen. Das meinte ich auch mit meiner obigen Antwort, im Detail, in der angegeben Verknüpfung fehlt das Laufwerk, nur sucht Windows dann nach einem passenden Namen und startet es, deswegen fällt ihm sein Fehler nicht auf.

Was du meinst, wäre eine desktop.ini im gleichen Ordner, das funktioniert aber nicht für Dateien.
 

chaospir8

★★★★★-Oldie
@GiveThatLink
Ich meinte tatsächlich, das ICO aus dem EXE zu extrahieren. Beispiel, das hier z.B.:
1618243579330.png

Aber egal, denn es ist tatsächlich so, dass (zumindest Win10) mit relativen Pfaden nicht umgehen kann.
 

SkAvEnGeR

Master of Tools
Wenn uns der @Richard Wagner mal etwas genauer erzählen würde, was er vor hat, findet sich auch eine Lösung.
Denn in jedem Windows lässt sich über einfache Mittel der Laufwerksbuchstabe des Sticks ermitteln und dann ein Progrmm von dort starten

Code:
@echo off
if exist d:\irgendeineDatei set LW=D
if exist e:\irgendeineDatei set LW=E
if exist f:\irgendeineDatei set LW=F

start %LW%:\pfad-zu-deiner-exe\programm.exe
und wenn man die Zeilen 2-4 noch in eine for-Schleife packt wirds noch leichter
 

dr_tommi

alter Oldie
Wenn uns der @Richard Wagner mal etwas genauer erzählen würde, was er vor hat, findet sich auch eine Lösung.
Denn in jedem Windows lässt sich über einfache Mittel der Laufwerksbuchstabe des Sticks ermitteln und dann ein Progrmm von dort starten

Code:
@echo off
if exist d:\irgendeineDatei set LW=D
if exist e:\irgendeineDatei set LW=E
if exist f:\irgendeineDatei set LW=F

start %LW%:\pfad-zu-deiner-exe\programm.exe
und wenn man die Zeilen 2-4 noch in eine for-Schleife packt wirds noch leichter
Das hat aber nichts mit dem Pfad eines Icons in einer Verknüpfung zu tun.
 

chaospir8

★★★★★-Oldie
@sPIfF c99
Der Ansatz ist gut und funktioniert, wenn man so einen Aufruf aus einem *.cmd-File macht. Nicht aber direkt aus einer Verknüpfung (also aus *.lnk):

1618300383490.png

Somit ist also auch keine Icon-Bestimmung möglich.
 
Zuletzt bearbeitet:

sPIfF c99

fearless spaceman
@chaospir8
Grundsätzlich geht es:
´Herunterfahren.png


Im Konkreten Fall ist bei mir auf dem Desktop diese Verküfung:
C:\Windows\System32\cmd.exe /c @echo off & title Herunterfahren & mode con lines=5 cols=38 & color 4f & echo Wirklich Herunterfahren? & echo. & pause & WMIC.exe OS Where Primary=TRUE Call Shutdown >nul

Das habe ich mal im Geschäft erstellt. Lange war bei unseren Clients ein falsches Powersetting drin. So konnten die User einen richtigen Shutdown machen

Das Problem dabei ist aber das korrekte Icon. Deshalb habe ich den Beitrag vorher gelöscht.
C:\Windows\System32\cmd.exe /c @echo off & start %~d0\Toolsammlung\tool1.exe & exit

Der konkrete Fall kann ich im Moment aber nicht testen. Hier sind USB Laufwerke gesperrt
 
Zuletzt bearbeitet:

chaospir8

★★★★★-Oldie
Du nutzt aber absolute Pfade! Mit solchen geht es natürlich. Hier geht es darum, eben keine absoluten Pfade zu nutzen, sondern relative Pfade.
Andrerseits könnte man wirklich davon ausgehen, dass die Windows-Komponenten auf modernen Rechnern in gleichen Pfaden vorliegen, egal auf welchem Rechner.
Nur: schon beim Arbeitsverzeichnis und Pfad zum Icon erwartet Windows wieder absolute Pfade.
 

sPIfF c99

fearless spaceman
Ok, das Problem dürfte "Start in" sein.
Dann müsste ein erweiteter Batch rein mit Pfad abfrage. Kleine Schreife if exist %%a\Toolsammlung start %%a\...
 

Richard Wagner

Bekanntes Mitglied
Es geht natürlich um Verknüpfungen ( *.lnk)) auf externen Laufwerken, bei denen ich den Laufwerksbuchstaben nicht vorhersagen kann. Könnte ich das, könnte ich gleiche eine Verknüpfung zu dem Tool anlegen und müßte nicht den Umweg über den Explorer machen.

Wenn uns der @Richard Wagner mal etwas genauer erzählen würde, was er vor hat, findet sich auch eine Lösung.
Du hast doch sicher selbst so viel Phantasie, wo man eine Verknüpfung zu einem Tool auf einem USB-Laufwerk haben wollen könnte.

Wenn das eine Verknüpfung zu einem bestimmten Tool sein soll, kannst du die EXE davon irgendwo auf den PC legen und davon das Symbol nutzen.
Ich weiß nicht, wie das bei Dir ist. Wenn ich auf USB-Laufwerken wechselnde Laufwerksbuchstaben habe, dann an fremden PCs. Bei mir regelt das der USBDLM. Ich könnte also Tools auf USB-Laufwerken ablegen, für den eigenen PC. Auf meinem eigenen PC lege ich die Tools jedoch auf interne Laufwerke und brauche dann sowieso keine relativen Pfade.


Der Weg über einen Batch den Pfad zu ermitteln löst nicht das Problem mit dem Icon. Es gibt aber Tools, mit denen man aus einer Batch-Datei eine EXE machen kann, in die man das gewünschte Icon einbettet. Das wäre eigentlich ideal, wenn diese EXEn nicht regelmäßig von den Virenwächtern gekapert würden...

Für meine Idee gibt es dann wohl keine Lösung und ich muß mit dem Explorersymbol leben...
Danke für Eure Ideen!
 

sPIfF c99

fearless spaceman
Verknüpfung erstellen und ändern
Ziel:
cmd /c @echo off & for %a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist "%a:\Keepass\_keepass\keepass.exe" "%a:\Keepass\_keepass\keepass.exe" & exit

Ausführen:
Minimiert

So funktioniert es bei mir. Einzig bleibt das cmd offen, bis das Programm geschlossen wird.
Das Icon kann bei Bedarf geändert werden in der Verknüpfung.
 
Zuletzt bearbeitet:

Richard Wagner

Bekanntes Mitglied
Das wäre die erweiterte Version für...
%windir%\explorer.exe "\Toolsammlung\Tolles-Tool.exe"
Damit könnte man die Verknüpfung von einem beliebigen Ort starten. Auf einem fremden PC (und überhaupt auf einem USB-Stick) ergibt das für mich aber wenig Sinn. Für ein Tool auf dem Stick lege ich die Verknüpfung natürlich auf den Stick, damit ich sie immer dabei habe und nicht in den Tiefen der Ordnerstruktur nach der EXE suchen muß.

Mein Problem wird mit diesem Ansatz aber nicht gelöst, denn es bleibt eine Verknüpfung, und ich kann keinen relativen Pfad für das Icon festlegen.
 

chaospir8

★★★★★-Oldie
on-topic:
@Richard Wagner
Das meinte ich auch mit meinem letzten Satz im Beitrag #13.

Ich habe hier schon für Dich mit einem bat2exe-converter rumexperimentiert, bin aber noch nicht zielführend weitergekommen.

Idee dahinter:
Mit so einer Bat, wie sie @sPIfF c99 oder @SkAvEnGeR vorschlagen kann man so ein beliebiges Programm auch mit relativen Pfaden aufrufen. Diese bat dann zu einer Exe konvertieren lassen und dabei der Exe ein gewünschtes Icon (aus dem ursprünglichen Programm vorher das Icon extrahieren!) verpassen.

Tools dazu:
und

Aber wie schon geschrieben, habe ich das Ziel noch nicht zufriedenstellend erreicht (am Beispiel eines Aufrufs von TotalCommander vom USB-Stick).

etwas off-topic:
Alternativ dazu, und somit leider etwas an Deiner Anfrage vorbei, wie wäre es mit einem "Portables-Verwaltungstool" auf dem Stick, von dem Du die gewünschten Programme startest, egal welchen LW-Buchstaben der Stick auf dem akt. Rechner verpasst bekommen hat.

Ich nutze dazu seit ca. zehn Jahren das Programm LiberKey


Sieht dann bei mir für meine "privaten"/"speziellen" Anwendungen (also nicht die, die LiberKey selbst Dir auf den Stick bringen kann) so aus (etwas "anonymisiert" ;)):

1618339987732.png
 
Zuletzt bearbeitet:

Richard Wagner

Bekanntes Mitglied
Danke @chaospir8 !

Vor ein paar Jahren habe ich das einmal versucht, mit zwei oder drei solcher Konverter. Der von Dir verlinkte war auch dabei. Es hat aber nicht wirklich gut funktioniert. Das Problem dabei war, daß es entweder in bestimmten Umgebungen (Win PE !?!) dann doch nicht funktioniert hat, oder daß die Virenwächter auf den fremden PCs zugeschlagen haben oder auch beides zusammen.

Vielleicht funktioniert das heute besser. Der Bat to Exe Converter ist jetzt bei Version 2.4.5. Damals hatte ich 1.6.0...

Ich habe seit einigen Jahren das PS Startmenü (von 2007) in Verwendung: http://pegtop.net/start/

Das ist ähnlich, wie Deines. Da gibt es eine EXE, eine Konfigurationsdatei und einen Ordner mit dem Rest. Das könnte ich ins Root vom Stick packen. Momentan liegt es in einem Unterordner. Ich brauche aber oft nur zwei oder drei der Programme aus dem Unterordner, und zu diesen wollte ich die Verknüpfung anlegen...

Für den Bat to Exe Converter fällt mir jetzt aber noch mehr ein, was ich damit machen könte, für ein Projekt, das im Kürze ansteht, falls die alten Probleme behoben wären...
 
Oben Unten