Programm im UNC Pfad öffnen

  • Hallo,

    ich will grade eine Installationsroutine erstellen.
    Das Programm erfordert, dass es aus dem "Zentralen Verzeichnis" gestartet wird, dieses ist eine Netzwerkressource, die ich über einen UNC Pfad ansteuere.
    also \\Server\freigabe$\programm.exe

    mit run("\\Server\freigabe$\programm.exe") oder shellexecute("\\Server\freigabe$\programm.exe") erhalte ich die Meldung vom zum installierendem Programm
    "Das Setup wurde nicht aus dem zentralen Verzeichnis gestartet"

    Ich habe es nun erstmal gelöst, in dem ich folgendes gemacht habe:
    Im Installationsverzeichnis eine batch (setup.bat) angelegt mit:

    Code
    p:\
    start setup.exe

    und per Autoit:

    Code
    drivemapadd("P:", "\\Server\freigabe$",0,"domain\user","passwort")
    shellexecute("P:\setup.bat")

    Damit startet die Batch das Programm aus dem Programmverzeichnis.

    Ich wollte doch mal fragen ob es eine unkompliziertere Lösung für mein Problem gibt.
    Für Tipps wäre ich sehr dankbar :thumbup:

    Einmal editiert, zuletzt von svart (16. Dezember 2013 um 16:46)

    • Offizieller Beitrag

    Wie sieht es so aus?

    [autoit]

    drivemapadd("P:", "\\Server\freigabe$",0,"domain\user","passwort")
    shellexecute("P:\setup.exe")

    [/autoit]
  • Hi,

    danke für deine Antwort, aber das funktioniert nicht, hatte ich schon getestet.
    Aber ich meinte auch etwas anderes als das Laufwerk zu mappen.

    Anscheinend geht es nicht ohne ;)

  • nee er möchte das Programm lokal ausführen aber die Ablage ist remote.
    Da können Dir auch Sicherheitseinstellungen von Windows den Spass verderben. :)
    3rd party Exen findet Windows remote mitunter doof....

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Genau, ich habe jetzt auch keine andere Lösung mehr gefunden als einfach das Laufwerk zu mappen (so ist es kein UNC Pfad mehr) und eine Batch auszuführen.
    Eine Lösung, aber keine gute :)

    Trotzdem Danke.

  • hallo zusammen,

    bei mir funktioniert es mit exe oder cmd / bat Dateien wie folgt!

    [autoit]


    ShellExecute("\\Server_yxz\Share\Programm1\test.exe")
    ShellExecute("\\Server_yxz\Share\Programm2\test.cmd")

    [/autoit]

    Share ist dabei die Freigabe auf Server_yxz ...

    Inhalt der cmd

    Spoiler anzeigen


    @echo off
    title Programmname
    c:
    cd \
    %HOMEDRIVE%
    javaws http://10.x.0.x:8080/anwendung.jnlp
    exit

    reicht es hier nicht auch einfach das @WorkingDir zu setzen?

    ... aus der Hilfe ...
    FileChangeDir ... Changes the current working directory.
    FileChangeDir ( "path" )


    Gruß gmmg

  • wobei ich hier noch eines anmerken möchte:

    Die Kommandozeile (also auch in BAT- oder CMD-Dateien) kann keinen UNC-Pfad als aktuelles Verzeichnis!

    Starte ich also per RUN/SHELLEXECUTE eine BAT/CMD-Datei mit einem WorkingDir, dann geht es in der Batch verloren.

    Hier gibt es für BAT/CMD-Dateien folgenden Trick:

    In der Batch einfach das Pfade mit %~dp0[unterverzeichnis\datei] angeben, wenn sie im, bzw. unter dem Verzeichnis der Batchdatei liegt.
    (%~dp0 = Laufwerk+Pfad der gestarteten Batchdatei, inkl. abschließendem Backslash)

    Beim Ausführen von EXE-Dateien aus UNC-Pfaden (mit Angabe von '@ScriptDir' als 'WorkingDir') haben wir dagegen auch keine Schwierigkeiten.

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"