Variable in die Run Funktion einbauen - Wie ?

  • Hallo,

    ich will eine Variable in dieser Run Funktion haben, jedoch erhalte ich immer einen Fehler, welche Syntax ist richtig?

    [autoit]

    $website=ebay.de

    [/autoit][autoit][/autoit][autoit]

    Run("C:\Programme\Internet Explorer\iexplore.exe $website", "", @SW_MAXIMIZE)

    [/autoit]

    Einmal editiert, zuletzt von el3ment (10. August 2010 um 15:26)

  • [autoit]

    $website = "http://www.ebay.de/"

    [/autoit][autoit][/autoit][autoit]

    ShellExecute($website, "", "", "", @SW_MAXIMIZE)

    [/autoit]

    ShellExecute ruft eine Webseite mit dem Standardbrowser auf.

    Wenn du Run verwendet möchtest, müsste es so aussehen:

    [autoit]

    $website = "http://www.ebay.de/"

    [/autoit][autoit][/autoit][autoit]

    Run(@ProgramFilesDir & "\Internet Explorer\iexplore.exe " & $website, "", @SW_MAXIMIZE)

    [/autoit]

    Eine Variable wie $website darf nicht in dem String (also zwischen den "") stehen, ansonsten wird nicht der Wert der Variable genommen, sondern der Name der Variable (eben ein normaler String).
    @ProgramFilesDir weißt automatisch auf das Windows Programmverzeichnis, denn nicht jeder hat Windows auf C:.

  • Ist es auch noch möglich als Pfad eine Variable einzusetzen? Also im Bsp. anstelle von "\Internet Explorer\iexplore.exe " eine Variable

  • Mal zum Verständnis:
    In AutoIt ist alles was in Anführungszeichen ( " oder ' ) geschrieben wird ein String (eine Zeichenkette).
    Mit dem & - Zeichen kann man 2 Strings zusammenfügen zu einem.
    Also in deinem Beispiel ist "\Internet Explorer\iexplore.exe " ein String und $website auch da du sie ja so als String deklariert hast:

    [autoit]

    $website = "http://www.ebay.de/"

    [/autoit]


    Wenn du jetzt also folgendes schreibst:

    [autoit]

    "\Internet Explorer\iexplore.exe " & $website

    [/autoit]


    Dann heißt das nichts weiter als:

    [autoit]

    "\Internet Explorer\iexplore.exe " & "http://www.ebay.de/"

    [/autoit]


    Und das wiederrum führt zu folgendem End-String:

    [autoit]

    "\Internet Explorer\iexplore.exe http://www.ebay.de/"

    [/autoit]


    Du kannst dir deinen String also beliebig zusammenbauen und ihn auch wieder einer Variablen zuweisen.

  • soweit so gut, dann müsste ja eigentlich diese Schreibweise funktionieren:

    [autoit]


    $website = "http://www.ebay.de/"
    $browserpath="\Internet Explorer\iexplore.exe"

    [/autoit][autoit][/autoit][autoit]

    Run(@ProgramFilesDir & $browserpath & $website, "", @SW_MAXIMIZE)

    [/autoit]

    funktioniert aber nicht, was mache ich hier falsch?

  • Ich denke mit dem Skript solltest du selbst sehen was das Problem ist (Zum Debugging ist es immer hilfreich sich ab und an Variableninhalte mal ausgeben zu lassen):

    [autoit]

    $website = "http://www.ebay.de/"
    $browserpath="\Internet Explorer\iexplore.exe"

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0,"", @ProgramFilesDir & $browserpath & $website)

    [/autoit]
  • auch wenn schon gelöst ...

    [autoit]


    $website = "http://www.ebay.de/"
    $browserpath = "\Internet Explorer\iexplore.exe"

    [/autoit][autoit][/autoit][autoit]

    Run(@ProgramFilesDir & $browserpath & " " & $website, "", @SW_MAXIMIZE)

    [/autoit][autoit][/autoit][autoit][/autoit]

    gruß gmmg