Verknüpfungen erstellen

  • Hallo,

    es ist schon gut 20 Jahre her, als ich mich mit AutoIT beschäftigt hatte.

    Leider kann ich nichts mehr und benötige eure Hilfe.


    Ich möchte Programmverknüpfungen erstellen.

    Dabei müssen Ordnernamen in einem Verzeichnis ausgelesen werden. Die einzelnen Verknüpfungen tragen später die jeweiligen Ordnernamen und als zu startendes Programm wird der Ordnername als Parameteraufruf weitergegeben.


    Beispiel1:
    Name der Verknüpfungsdatei: ErsterName
    Ziel der Verknüpfung: "C:\Program Files\Mozilla Firefox\firefox.exe" -P "ErsterName"

    Beispiel2:
    Name der Verknüpfungsdatei: ZweiterName
    Ziel der Verknüpfung: "C:\Program Files\Mozilla Firefox\firefox.exe" -P "ZweiterName"


    Hintergrund dieser Aktion:

    Ich arbeite mit unzähligen portablen Versionen von Firefox.

    Ich möchte nun alle portablen Firefox Kopien als jeweiliges Profil für meine installierte Firefox Instanz anlegen.


    Der gesamte Ablauf unterteilt sich in drei Schritten.

    1. Firefox Profilmanager - neues Profil erstellen

    2. Firefox Portable Versionen bestehende Profile importieren. Da werde ich vielleicht noch herumprobieren.

    3. Startverknüpfungen erstellen


    Schritt 1 ist fast fertig, erste Versuche funktionieren schon, aber mit ein paar Problemen.

    Schritt 2 kann ich im schlimmsten fall manuell durchführen, wird mir aber auch stunden an Zeit kosten alle Profile manuell zu kopieren.

    Schritt 3 Die Programmverknüpfungen müssen automatisch erstellt werden.


    Schritt3, Erstellung der Programmverknüpfungen:


    Leider funktioniert das nicht wie gewünscht, an die erstellten Verknüpfungen werden Zielpfad, Parameter und Arbeitsverzeichnis nicht weitergereicht.


    Ich hoffe das Ihr mir helfen könnt.


    Edit:

    FileCreateShortcut($targetPath, $destinationFolder & $linkName & ".lnk", $sourceFolder)

    nun wird das Arbeitsverzeichnis (ausführen in:) mit abgespeichert.

    $targetPath wird nicht richtig übernommen.

    Wenn ich folgendes zum Testen angebe, wird mir der Pfad mit Parameter in die Verknüpfungsdatei gespeichert, es werden jedoch die Anführungszeichen nach der Pfadangabe und vor dem Parameter nicht mitgegeben.

    $firefoxExePath = "C:\Program Files\Mozilla Firefox\firefox.exe" & "'-P '" & "Onlineshop"

    Resultat: "C:\Program Files\Mozilla Firefox\firefox.exe -P Onlineshop"

    folgendes wäre korrekt: "C:\Program Files\Mozilla Firefox\firefox.exe" -P "Onlineshop"

    Leider komme ich nicht weiter.


    LG Hans

    3 Mal editiert, zuletzt von SOLVE-SMART (10. Mai 2024 um 07:26)

  • Dreh mal die Anführungszeichen um und da passt so oder so was nicht mit deiner Zeichensetzung (dein gepostetes Resultat kann da übrigens auch nicht stimmen!):

    "C:\Program Files\Mozilla Firefox\firefox.exe" & "'-P '" & "Onlineshop" -> C:\Program Files\Mozilla Firefox\firefox.exe'-P 'Onlineshop

    Versuchs mal so:

    '"C:\Program Files\Mozilla Firefox\firefox.exe" -P "' & 'Onlineshop' & '"' -> "C:\Program Files\Mozilla Firefox\firefox.exe" -P "Onlineshop"

    Nur mal als kurzer Blick ohne mir den Rest im Detail angeschaut zu haben.

  • Hi hansiii (Hans),
    willkommen zurück zu AutoIt und damit hier im Forum 👋 .

    Hier eine (hoffentlich) lauffähige Variante so wie du es angegeben hast (erwartest):

    Dein Problem war, dass du FileCreateShortcut() nicht korrekt aufgerufen hast. Schaue dir dazu einfach nochmal die Hilfe (3. und 4. Paramenter) und deren Beispiel-Code an. Falls du dann noch Fragen haben solltest, komme gern auf uns zurück 🤝 .

    Moombas Danke das du dazugeschrieben hast, dass es nur ein kurzer Blick war, denn so hätte es nicht ausgereicht 😅 . Dennoch wichtiger Hinweis, finde ich.

    Viele Grüße
    Sven

  • Das habe ich mir gedacht und deswegen dazu geschrieben.

    Jetzt fehlt mir wieder so'n Reaktionsbutton/Icon wie 👌 oder 😅 oder 💙 .
    Naja, kommt Zeit, kommt Rat (#gun-food).

  • Eine Sache würde ich noch ändern:
    Eine finale Prüfung ob die Verknüpfungen wirklich erstellt wurden (das die Schleife durchläuft ist leider kein Erfolgsindikator).
    Man könnte das ganz noch weiter aufdröseln und direkt Listen welche Fehlgeschlagen sind aber ich denke das wäre hier zu viel des guten.

    Einmal editiert, zuletzt von Moombas (10. Mai 2024 um 09:41)

  • Na da schau mal einer an, ich werkel da mindestens einen Tag lang herum und komme einfach nicht weiter und Ihr bastelt mir da etwas das fast fehlerfrei ist.

    Vielen lieben dank euch beiden.

    Ich hatte mir die Hilfe zu FileCreateShortcut angesehen, bin da aber irgendwie auch nicht viel weiter gekommen. Ein paar andere Beispiele haben mich wenigstens so weit gebracht wie ich gekommen bin. Ich sehe mir aber wirklich noch einmal diese Parameter dazu an und hoffe das ich doch noch durchblicke.

    Zwei kleine Fehler sind jetzt noch vorhanden

    Beispiel:

    Ziel: "C:\Program Files\Mozilla Firefox\firefox.exe" -P "3D Zeichnungen für 3D Druck" (korrekt)
    Ziel: "C:\Program Files\Mozilla Firefox\firefox.exe" -P "3D Zeichnungen für 3D Druck.lnk" (falsch)

    Ausführen in: "C:\Program Files\Mozilla Firefox" (korrekt)
    Ausführen in: "C:\Program Files\Mozilla Firefox\firefox.exe" (falsch)

    Die Überprüfung mit der Fehlermeldung finde ich schon mal gut, das gefällt mir.

    Lg Hans

  • Zwei kleine Fehler sind jetzt noch vorhanden

    Okay, dann hier die beiden kleinen Fixe, so sollte es passen.

    Ich habe gleich das Beispiel von Moombas genommen, damit du die Fehlermeldung mit dabei hast 🤝 .

    Viele Grüße
    Sven