Parameterübergabe

  • Hallo nochmal!

    Wie kann ich einen Eingabe die ich per InputBox erfasst habe an ein Programm als Parameter übergeben?

    So wie im Quellcode funktioniert es leider nicht.

    Hat jemand eine Idee?


    Danke!

    [autoit]

    $drive=InputBox("ROBOTIC LAUFWERK","Laufwerksbuchstaben eingeben","D:")
    $comport=InputBox("ROBOTIC COMPORT","Comport der Robotic eingeben","COM1")
    HotKeySet("{ESC}","_exit")
    RunWait("load.exe --comport=($comport) --comspeed=9600 --drive=($drive) --command=C:X:30:2:E")

    [/autoit]
  • gut ich bin noch Neuling mit AutoIt aber kann man denn variablen direkt in nen string reinknallen?

    sonst würde ichs mal mit

    [autoit]

    RunWait("load.exe --comport=("&$comport&") --comspeed=9600 --drive=("&$drive&") --command=C:X:30:2:E")

    [/autoit]


    versuchen

  • Danke für den Tip!

    Habe den Code geändert und getestet.
    Funzt aber nicht!

    Gruß
    Sonyman

  • Sollte aber vom Prinzip und mal abgesehen vom restlichen Programm funktionieren.

    Unter Umständen findet es das "load.exe" im aktuellen Arbeitsverzeichnis nicht. Gib es mal mit kompletten Pfad ein oder setzt das Arbeitsverzeichnis mittels "FileChangeDir()" auf den Ordner, worin sich das "load.exe" befindet.

    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"

  • Hallo Micha He
    am Pfad kann es nicht liegen.
    Wenn ich die Parameter direkt angebe funktioniert es.

    Gruß
    Sonyman

    • Offizieller Beitrag

    Grundsätzlich schon so, wie Karill geschrieben hat.
    Nur fällt mir auf, dass gerade die beiden Parameter, die du vom User festlegen läßt, im Parameterstring in Klammern gefaßt sind. Die anderen Parameter sind ohne Klammern.
    Ich kann mir nicht vorstellen, dass das gewollt ist. Meiner Meinung nach müssen die Klammern weg.

    [autoit]

    RunWait("load.exe --comport="&$comport&" --comspeed=9600 --drive="&$drive&" --command=C:X:30:2:E")

    [/autoit]
  • Danke!
    Das war der richtige Tip!

    Eines ist mir jedoch folgendes aufgefallen, wenn ich den Laufwerksbuchstaben als Variable per InputBox erfasse.
    Für die Übergabe als Parameter benötige ich z.B "D" und als Abfrage für den Drivestatus benötige ich "D:"

    Gibt es die Möglichkeit den Doppelpunkt im Programm noch anzuhängen?

    Danke
    Sonyman

  • Ja, da der User ja die Möglichkeit hat D oder D: anzugeben würde ich das auch noch abfangen...

    Probier mal das aus...

    [autoit]

    if StringInStr($drive, ":") = 0 Then
    $drive &= ":"
    EndIf

    [/autoit]

    Füg das einfach nach

    [autoit]

    $drive=InputBox("ROBOTIC LAUFWERK","Laufwerksbuchstaben eingeben","D:")

    [/autoit]


    ein...

  • Das kannste Dir auch nochma anschaun...

    Habs mal mit Deinen Parametern versehen, müsste auch laufen....

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    $laufwerke = DriveGetDrive("all")

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Robotic loader", 235, 131, 192, 124)
    $Button1 = GUICtrlCreateButton("OK", 8, 88, 107, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Abbrechen", 120, 88, 107, 25, $WS_GROUP)
    $Group1 = GUICtrlCreateGroup("", 5, 8, 113, 73)
    $Label1 = GUICtrlCreateLabel("Laufwerk:", 8, 24, 60, 17)
    GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
    $Combo1 = GUICtrlCreateCombo($Laufwerke[1], 8, 48, 97, 25)

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

    for $i = 1 To $laufwerke[0] step 1
    GUICtrlSetData ($Combo1, $laufwerke[$i])
    Next

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

    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("", 120, 8, 113, 73)
    $Label2 = GUICtrlCreateLabel("COM- Port:", 128, 24, 66, 17)
    GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
    $Combo2 = GUICtrlCreateCombo("COM1", 128, 48, 97, 25)
    GUICtrlSetData(-1, "COM2")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $msg = GUIGetMsg()

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

    Select

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

    Case $msg = $GUI_EVENT_CLOSE or $msg = $Button2
    Exit
    Case $msg = $Button1
    Procstart()

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

    EndSelect

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

    WEnd

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

    Func Procstart()
    $comport = GUICtrlRead($Combo2)
    $drive = guictrlread($Combo1)
    if $comport <> "COM1" and $comport <> "COM2" Then
    msgbox (16, "COM-Port", "Geben Sie bitte den COM-Port an!")
    elseif DriveGetType($drive) = "" Then
    MsgBox (16,"Laufwerk", "Das angegebene Laufwerk ist nicht korrekt!")
    Else
    RunWait("load.exe --comport="&$comport&" --comspeed=9600 --drive="&$drive&" --command=C:X:30:2:E")
    if @error Then
    MsgBox (16, "Programm", "Konnte Programm nicht finden!")
    exit
    Else
    exit
    EndIf
    EndIf
    EndFunc

    [/autoit]

    3 Mal editiert, zuletzt von noctis (2. Januar 2010 um 13:06)

  • Hallo noctis,

    Danke für das Koda GUI!

    Habe mal alles zusammengepackt aber ER will net so recht.
    "if $comport <> "COM1" and $comport <> "COM2" Then"

    Ich muß dazu sagen, das ich nicht das ganze Prog. gepostet habe

    Aber jetzt:

    [autoit]

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    $laufwerke = DriveGetDrive("all")

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Robotic loader", 235, 131, 192, 124)
    $Button1 = GUICtrlCreateButton("OK", 8, 88, 107, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Abbrechen", 120, 88, 107, 25, $WS_GROUP)
    $Group1 = GUICtrlCreateGroup("", 5, 8, 113, 73)
    $Label1 = GUICtrlCreateLabel("Laufwerk:", 8, 24, 60, 17)
    GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
    $Combo1 = GUICtrlCreateCombo($Laufwerke[1], 8, 48, 97, 25)

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

    for $i = 1 To $laufwerke[0] step 1
    GUICtrlSetData ($Combo1, $laufwerke[$i])
    Next

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

    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("", 120, 8, 113, 73)
    $Label2 = GUICtrlCreateLabel("COM- Port:", 128, 24, 66, 17)
    GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
    $Combo2 = GUICtrlCreateCombo("COM1", 128, 48, 97, 25)
    GUICtrlSetData(-1, "COM2")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $msg = GUIGetMsg()

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

    Select

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

    Case $msg = $GUI_EVENT_CLOSE or $msg = $Button2
    Exit
    Case $msg = $Button1
    Procstart()

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

    EndSelect

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

    WEnd

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

    Func Procstart()
    $comport = GUICtrlRead($Combo2)
    $drive = guictrlread($Combo1)
    if $comport <> "COM1" and $comport <> "COM2" Then
    msgbox (16, "COM-Port", "Geben Sie bitte den COM-Port an!")
    elseif DriveGetType($drive) = "" Then
    MsgBox (16,"Laufwerk", "Das angegebene Laufwerk ist nicht korrekt!")
    Else

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

    RunWait("load.exe --comport="&$comport&" --comspeed=9600 --drive="&$drive&" --command=V::5:2 --command=C:X:30:2:E") ;Calibrieren der Robotic
    $Var =@error
    sleep(1000)
    RunWait("load.exe --comport="&$comport&" --comspeed=9600 --drive="&$drive&" --open --command=I:X:30:2:E --ifcommandfailortimeoutskip=failedexit --close --ifsetskip=rc:3:shutdown") ;Laden der 1. Disc
    $Var =@error
    While True
    $status=DriveStatus($drive) ;Überwachen des Laufwerkes
    If $status = "NOTREADY" Then _next()
    if StringInStr($drive,":")=0 Then ;Hinzufügen von":" zum Laufwerksbuchstaben
    $drive &=":"
    Endif
    sleep(1000)
    WEnd
    Func _next()
    RunWait("load.exe --comport="&$comport&" --comspeed=9600 --drive="&$drive&" --open --command=A:X:30:2:E ");Entladen der Robotic
    $Var =@error
    sleep(2000)
    RunWait("load.exe --comport="&$comport&" --comspeed=9600 --drive="&$drive&" --open --command=I:X:30:2:E --close");Laden der Robotic
    $Var =@error
    Sleep(2000)
    MouseClick("left",591,550,2) ;Mouseclick "OK"
    EndFunc
    Func _exit()
    Exit
    EndFunc

    [/autoit]

    Danke!


    Gruß

    Sonyman

  • Noch ein paar Fragen:

    Was passiert mit der Variablen $var = @error ?
    Warum arbeitest Du mit MouseClick? Schau Dir dazu mal ControlSend an.

    Die Schleife:

    Spoiler anzeigen
    [autoit]

    While True
    $status=DriveStatus($drive) ;Überwachen des Laufwerkes
    If $status = "NOTREADY" Then
    _next()
    EndIf

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

    if StringInStr($drive,":")=0 Then ;Hinzufügen von":" zum Laufwerksbuchstaben
    $drive &=":"
    Endif
    sleep(1000)
    WEnd

    [/autoit]

    musst Du mir auch nochmal erklären...
    Die Schleife wird solange abgearbeitet bis der Status des Laufwerks auf "NOTREADY" ist? Is das richtig?

    Probier den Code nochma, haben eigentlich nur ein paar Endif´s gefehlt, müsste jetzt funktionieren...

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    $laufwerke = DriveGetDrive("all")

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Robotic loader", 235, 131, 192, 124)
    $Button1 = GUICtrlCreateButton("OK", 8, 88, 107, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Abbrechen", 120, 88, 107, 25, $WS_GROUP)
    $Group1 = GUICtrlCreateGroup("", 5, 8, 113, 73)
    $Label1 = GUICtrlCreateLabel("Laufwerk:", 8, 24, 60, 17)
    GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
    $Combo1 = GUICtrlCreateCombo($Laufwerke[1], 8, 48, 97, 25)

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

    for $i = 1 To $laufwerke[0] step 1
    GUICtrlSetData ($Combo1, $laufwerke[$i])
    Next

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

    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("", 120, 8, 113, 73)
    $Label2 = GUICtrlCreateLabel("COM- Port:", 128, 24, 66, 17)
    GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
    $Combo2 = GUICtrlCreateCombo("COM1", 128, 48, 97, 25)
    GUICtrlSetData(-1, "COM2")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $msg = GUIGetMsg()

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

    Select

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

    Case $msg = $GUI_EVENT_CLOSE or $msg = $Button2
    Exit
    Case $msg = $Button1
    Procstart()

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

    EndSelect

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

    WEnd

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

    Func Procstart()

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

    Global $comport = GUICtrlRead($Combo2)
    Global $drive = guictrlread($Combo1)

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

    if $comport <> "COM1" and $comport <> "COM2" Then
    msgbox (16, "COM-Port", "Geben Sie bitte den COM-Port an!")
    elseif DriveGetType($drive) = "" Then
    MsgBox (16,"Laufwerk", "Das angegebene Laufwerk ist nicht korrekt!")
    Else

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

    RunWait("load.exe --comport="&$comport&" --comspeed=9600 --drive="&$drive&" --command=V::5:2 --command=C:X:30:2:E") ;Calibrieren der Robotic

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

    if @error then
    MsgBox (16,"load.exe", "Programm nicht gefunden!")
    Exit
    EndIf

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

    $Var = @error
    sleep(1000)
    RunWait("load.exe --comport="&$comport&" --comspeed=9600 --drive="&$drive&" --open --command=I:X:30:2:E --ifcommandfailortimeoutskip=failedexit --close --ifsetskip=rc:3:shutdown") ;Laden der 1. Disc
    $Var = @error
    While True
    $status=DriveStatus($drive) ;Überwachen des Laufwerkes
    If $status = "NOTREADY" Then
    _next()
    EndIf

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

    if StringInStr($drive,":")=0 Then ;Hinzufügen von":" zum Laufwerksbuchstaben
    $drive &=":"
    Endif
    sleep(1000)
    WEnd
    EndIf
    EndFunc

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

    Func _next()

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

    RunWait("load.exe --comport="&$comport&" --comspeed=9600 --drive="&$drive&" --open --command=A:X:30:2:E ");Entladen der Robotic
    $Var = @error
    sleep(2000)
    RunWait("load.exe --comport="&$comport&" --comspeed=9600 --drive="&$drive&" --open --command=I:X:30:2:E --close");Laden der Robotic
    $Var = @error
    Sleep(2000)
    MouseClick("left",591,550,2) ;Mouseclick "OK"

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

    EndFunc

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

    Func _exit()
    Exit
    EndFunc

    [/autoit]
  • Hallo noctis,
    NOW WORKS FINE! :)

    DANKE!

    Zitat

    musst Du mir auch nochmal erklären...
    Die Schleife wird solange abgearbeitet bis der Status des Laufwerks auf "NOTREADY" ist? Is das richtig?

    Das Script soll eine Automatisierung für mein Backup Programm werden.

    Also wenn die 1 Disc ferig ist, wird diese vom Programm ausgeworfen. (Eject after Burn)
    Dieses Script überwacht den Drive Status wenn er also "NOTREADY" ist wurde die Disc vom Backup Programm ausgewurfen und nun soll die fertige Disc vom Drive entnommen werden (Unload) und eine neue eingelegt werden (Load) weiterhin muß noch ein Programmfenster mit OK bestätigt werden. ("Bitte legen Sie eine leere Disc ein") Load und Unload erledigt eine Robotic

    Zitat

    Warum arbeitest Du mit MouseClick? Schau Dir dazu mal ControlSend an.

    Das ist mein erstes produktives Script. Mit MouseClick sehe ich ob es funktioniert, da das Backup Programm auf einem anderen Rechner ist.
    Aber es ist ein guter Tip in der Finalen Version werde ich einbauen!!

    Zitat

    Was passiert mit der Variablen $var = @error ?


    Ja das ist noch mein großes Problem!!

    Das aktuelle Script arbeit, aber es wertet nicht aus ob die Befehle an die Robotic auch erfolgreich ausgeführt wurden.
    Das ist nicht gut! So kann es sein das die Robotic ununterbrochen weiterläuft obwohl z.B Keine leeren Discs mehr vorhanden sind.

    Das eigentliche Steuerprogramm für die Robotic wurde auch mit AutoIT geschrieben.
    Ich komme jedoch mit den notify returncode nichr klar!

    Habe die Beschreibung mal angefügt!

    Danke!!

    Gruß
    Sonyman


    Universal Loader CLI v0.96
    Configurable for any serial-controlled CD/DVD/disc duplicator/autoloader.
    Copyright 2007-2008 Brendan G Hoar (xxxxxxx.xxxx@xxxxx.xxx). All Rights Reserved.
    Serial port interface by Martin Gibson (martin, AutoIt script forums).

    Licensed for redistribution with Illustrate's dbpoweramp Batch Ripper only.

    "Commands" prefixed with a * below are pre-scanned and treated as global settings.
    All others are executed in order as discovered, i.e. some settings can be adjusted
    during processing. Commands with multiple parameters use a colon as a delimiter
    optional parameters are shown using square brackets.

    Global Settings
    * --spacestring= (default is _, change if you need to use this char)
    * --enterstring= (default is \M, change if you need to send this substring)
    * --colonstring= (default is `, change if you need to send this substring)
    * --separatorstring= (default is :, change if you need to send this substring)
    * --logfile= (redirect output to a log file as specified use quotes around path)

    Serial Ports
    * --ComPort= (defaults to COM1)
    * --ComSpeed= (defaults to 9600)
    * --ComSettings= (3 chars: bits, parity, stop bits - defaults to 8N1)
    * --ComHandshake= (None, Hard, Soft - defaults to None)
    * --ComPortAccessTimer= (how often, in s, to retry port in use-default=1
    --ComPortAccessTimeout= (max wait time, in s, to open port-default=480)
    --comportconnect (explicitly open com port to lock robot to this instance)
    --comportrelease (allow other instances to use robot to service other drive banks)

    Drives
    --drive= (sets drive letter - D: or E:, etc.)
    * --drivebank= (sets current numeric bank identifier: 1 or 2)
    'drivebank' groups drives where open trays can interfere with access
    * --olddrives (use if drives cannot report tray position via Medium Status CDB)
    --open (open drive - open requires ULCLI to grab com port for safety, if not already open)
    --openblind (as above, but don't wait for spin down - use only at end of batch)
    --close (close drive and wait for spin up - does not require open com port)
    --closeblind (as above, but don't wait for spin up - always use --sleep=2 after this)
    --closeall (close all drive trays)
    --bindtodrive (tells other ULCLI instances that drive bank is busy)
    --unbindtodrive (tells other ULCLI instances that drive bank is free)
    --bindresetall (frees all drive banks)

    Robots
    * --commandtimeout= (default, in s, if %timeout% unused-default=30)
    * --commandminimumtimeout= (default, in s, if %minimumtimeout% unused-default=3)
    * --pollstring= (set this to query string if robot requires it-default="")
    * --polltimer= (how often, in s, to poll/check serial port-default=1)
    --command=sendstring[:expectedresponse[:timeout[:minimumtimeout[:failureresponse]]]]
    --commandbank1=... (as above, but only executes when drivebank=1)
    --commandbank2=... (as above, but only executes when drivebank=2)
    use underscore for space and \M for carriage return in command strings
    unless you changed them via --enterstring= or --spacestring=.
    You may skip parameters, but you must use the right *blooper* of colons e.g. --command=I:X:::E

    Special Reject Count Handling
    --rejectsmax= (pause for operator every n rejects-default=10)
    --rejectsreset (clears count of rejects in reject stack)
    --rejectsiterate (increments counts of rejects in reject stack

    Basic Flow of Control
    --exit[=*blooper*] (*blooper* is return code)
    --sleep[=*blooper*] (in s-default=1)
    --sleeprandom[=*blooper*] (in s, sleep between 1 to *blooper*-default=1)
    --label=labelname (used as a target for skip commands, must begin with a letter)
    --skip=sv (unconditionally skips to a label or relative position)
    sv, or 'skipvalue' - can be a label name, or a +/- numeric value
    --skipback (returns to the last place skipped from - only works for last skip, no nesting)
    --ifcommandfailskip=sv (if last command was not successful, skip based on sv)
    --ifcommandtimeoutskip=sv (if last command timed out, skip based on sv)
    --ifcommandfailortimeoutskip=sv (if last command failed or timed out, skip based on sv)
    --ifdiscnotreadyskip=sv (if no or non-readable CD in drive, skip based on sv)
    --ifdiscnotcdromskip=sv (if writable CD or non-CD in drive, skip based on sv)
    --ifdiscnotcdskip=sv (if non-CD in drive, skip based on sv)
    * --discspinuptimeout=*blooper* (defaults to 60 seconds, used for the --ifdisc items above)

    Variables
    --clear=name[:scope] (clear a variable)
    scope of variable is optional - can be global, bank or drive. drive is default
    it determines which other ULCLI processes handling other drives can see the variable.
    --clearall[=scope] (clear all variables, default scope is drive)
    --set=varname:value[:scope] (set a variable)
    * --varname=value (special shortcut for --set=varname:value, always in a scope of 'drive')
    Any variable set via the above two methods can be used by enclosing in curly braces.
    e.g. --set=inputstack:2:global
    e.g. --command=_MOVE{inputstack}:$S.{inputstack}:15:5
    e.g. --notify="An error occurred loading from stack {inputstack}."
    You can also also return a subset of the variable: {VARNAME,START,LENGTH}.
    e.g. --notify="An error occurred loading from drive letter {drive,1,1}."

    Implicitly set Variables (that is, set by ULCLI)
    {drive} = drive letter
    {drivebank} = drive bank (1 or 2)
    {comport} = e.g. COM2
    {notifyreturncode} = button pressed by operator during last --notify= call

    Complex Flow of Control using Variables
    --ifsetskip=name:value:sv[:scope] (use variables as execution conditionals)
    --ifnotsetskip=name:value:sv[:scope] (use variables as execution conditionals)

    Notifications
    --notify=message[:title[:type[:timeout]]] (notify operator with message and beep)
    Message and Title are double quote-enclosed strings (no colons allowed), timeout is in s)
    Button press sets the variable {notifyreturncode})
    Types can be:
    0 - OK
    1 - OK and Cancel (the default)
    2 - Abort, Retry, and Ignore
    3 - Yes, No, and Cancel
    4 - Yes and No
    5 - Retry and Cancel
    6 - Cancel, Try Again, Continue
    The {notifyreturncode} set by Operator's button press will be:
    1 - OK
    2 - CANCEL
    3 - ABORT
    4 - RETRY
    5 - IGNORE
    6 - YES
    7 - NO
    10 - TRY AGAIN
    11 - CONTINUE
    --beep[=*blooper*] (*blooper* is hertz)
    * --messagefile=filepath in quotes (used to send messages back to calling programs)
    --message=text in quotes (written to the file specified in messagefile)


    This program uses the user's temporary directory to coordinate robot/drive access. Do not
    clear your temporary directory while the ULCLI is running, or you may risk problems,
    perhaps even hardware or disc damage.

  • Gut, so wie ich das sehe erhälst Du vom Programm ne MsgBox.
    Drückst Du auf den Button dann erhält die Variable notifyreturncode Ihre Wert....

    Mit MouseClick klickst Du das Fenster "Bitte legen Sie eine leere Disc ein" weg?

    Bau einfach danach noch ein ausreichendes sleep ein und prüf dann nochmal mit
    DriveStatus das Laufwerk.
    Sollte dies dann immer noch "NOTREADY" sein passt was mit der Robotic nicht (z.B. keine Disc´s mehr)...

    Was is eigentlich wenn das Backup Prog fertig ist? Dann läuft doch Dein Script immer noch weiter, oder?

    Beendet sich das Backup Prog oder gibt es ne Meldung aus?
    Welches Backup Prog verwendest Du?

  • Hallo Noctis,

    Zitat

    Gut, so wie ich das sehe erhälst Du vom Programm ne MsgBox.
    Drückst Du auf den Button dann erhält die Variable notifyreturncode Ihre Wert....

    Nein, das CLI Interface macht keine MsgBox auf.
    So wie ich das sehe muß das erst noch kongiguriert werden als --XXXX

    Eventl. gibt es ja eine Möglichkeit Werte aus dem CLI auszulesen?
    Die Robotic quittiert jeden erfolgreichen Befehl mit einem X und jeden Fehler mit einem E
    Anders kann das Universal Loader CLI den Status der Robotic auch nicht abfragen!
    Also wenn ich "I" (Input Load) sende erscheint im CLI: I und nach erfolgreicher Ausführung X
    Gesamt: IX

    Zitat


    Mit MouseClick klickst Du das Fenster "Bitte legen Sie eine leere Disc ein" weg?

    Ja

    Zitat

    Bau einfach danach noch ein ausreichendes sleep ein und prüf dann nochmal mit
    DriveStatus das Laufwerk.
    Sollte dies dann immer noch "NOTREADY" sein passt was mit der Robotic nicht (z.B. keine Disc´s mehr)...

    Wäre eine Möglichkeit , ich befürchte aber das bei einem ausreichenden sleep das Brennprogramm schon die Finger auf den Brenner hat. Wenn sich das CLI auslesen lässt, hätte man die Daten aus 1. Hand!

    Zitat

    Was is eigentlich wenn das Backup Prog fertig ist? Dann läuft doch Dein Script immer noch weiter, oder?

    Ja das Script läuft weiter. Die letzte gebrannte Disc wird entladen und eine leere eingelegt.
    Dann passiert weiter nichts.

    Zitat


    Beendet sich das Backup Prog oder gibt es ne Meldung aus?

    Ja bei erfolgreichem Backup ändert sich der Task Status, Meldung kommt nicht.

    Zitat

    Welches Backup Prog verwendest Du?

    Handy Backup Professional

    http://www.haendybackup.de/


    DANKE! :)

    Gruß
    Sonyman