Service installieren und starten

  • Hi Leute,

    ich bekomm es einfach nicht hin. Habe jetzt von hier: http://www.autoitscript.com/forum/index.php?showtopic=80201
    die Service.au3 und die ServiceExample.au3 runtergeladen. Habe versucht die ServiceExample in mein Script einzubetten aber es will einfach nicht.

    Folgendes habe ich vor:
    Ich möchte aus einem Script einen Dienst für eine kompilierte Exe installieren und starten, sodass die Anwenundung beim nächsten hochlaufen des Systems vor der Anmeldung des Systems gestartet wird.

    Folgendes Konzept habe ich mir überlegt:

    - Funktion zur Installation und Start des Dienstes.
    - Script wird beendet und das System neugestartet.
    - System läuft hoch, die Exe wird gestartet und ausgeführt.

    Folgendes habe ich aus der Example übernommen:


    Funktion eingebettet in meinem Script:

    [autoit]


    Func Service()

    _Service_Create("", $sServiceName, "Autoit Service Test", '"' & $sServiceFile & '"')

    If @error Then
    XSkinTrayBox( "Status", @error & @CRLF & " message : " & _WinAPI_GetLastErrorMessage())
    Else
    XSkinTrayBox( "Status", @CRLF & "Der Service konnte installiert werden."& @CRLF &"Der Computer wird in 5 Sekunden neugestartet" )
    EndIf

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

    Sleep(5)
    ;Restart the Computer
    ;Shutdown(2)

    ;exit


    EndFunc

    [/autoit]

    Main funktion:

    [autoit]


    _Service_init($sServiceName)

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

    func main()
    While 1
    $nMsg = GUIGetMsg()

    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Bt_Beenden
    Exit
    Case $Bt_Install

    XML()
    Service()
    EndSwitch
    WEnd
    EndFunc

    [/autoit]

    Includes und defines:

    [autoit]


    ;Service Include File
    #include "Includes\Service.au3"

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

    $sServiceName = "InST-Service"
    $sServiceFile = @ScriptDir & "..\InST-XP-Install.exe"

    [/autoit]

    2 Mal editiert, zuletzt von Electron23 (29. Januar 2009 um 14:52)

  • aber es will einfach nicht.

    gibts das auch in genauer?
    weil mit deinen codestücken kann man herzlich wenig anfangen :)

    *Glaskugel rauskram*

    Padmak

    Einmal editiert, zuletzt von Padmak (26. Januar 2009 um 20:29)

  • Sorry, dann werd ich das mal näher beschreiben:

    Ich starte das Script, betätige nichts und das script ruft diese Funktion auf:

    [autoit]

    _Service_init($sServiceName)

    [/autoit]


    Dann erscheint eine Dialogbox mit der Fehlermeldung: "Error: 1063"

    Und der Dienst wird nicht eingetragen.

    EDIT: Mir ist klar, dass die Initialisierung den Dienst nicht installiert! :D

    Auf der von mir anfangs geposteten Seite wurde dieser Fehler auch beschrieben, aber ich starte das Script nicht aus SCITE sondern entweder lasse ich es interpretieren oder ich kompliliere es und starte es. Bei beiden Möglichkeiten, entsteht die oben genannte DialogBox.

    Ich kann mir das einfach nicht erklären. Im Grunde genommen verwende ich den gleichen Code wie in dem Example welches auf der Seite auch zum Download bereitgestellt wird.

    Könntet Ihr mir bitte mal zum Verständnis erklären, wie das mit den Diensten eigentlich funktioniert. Ich werde aus dem ganzen Thema net schlau, sitze schon bestimmt 5h daran und bekomme es einfach nicht hin.

    Bzw. könnt Ihr mir eine Seite posten, in der das verständlich erklärt wird.

    Danke!

    Einmal editiert, zuletzt von Electron23 (26. Januar 2009 um 20:36)

  • *hust*
    was meinst du bedeutet das hier:

    da stehts (des größere^^)
    wie heißt es so schön?
    wer lesen kann is klar im vorteil :D

    Padmak

  • Ich hab das Script / die Anwendung net aus scite gestartet. Sondern in dem Verzeichnis gestartet. Ich kann mir das nicht erklären. :(

    Die Fehlerbeschreibung habe ich gelesen. Ich vertehe nicht wieso der das trotzdem noch anzeigt. Oder hab ich da ein Verständnisproblem? ;(

  • unter 1. steht du sollst es erst kompilieren
    und dann per cmd aufrufen
    jetzt verstanden?

    Padmak

  • JA das hab ich verstanden, dass muss ich aber meines Wissens nur machen wenn ich dieses Example verwende, da dieses Commandline Parameter enthällt bzw. benötigt. Aber ich habe es auch nochmal versucht es so zu starten keine Chance... Es klappt nicht, ich verstehe das nicht.

    Verwendet Ihr ein anderes Script/Methode?

    Danke! ?( ?( ?(

  • ich kann das grad nicht ausprobieren -_-
    hast du das ganze auch mal nur mit dem beispiel ausprobiert?
    also einfach des beispiel compilieren?
    wenn das auch nicht geht hast du ein problem :D

    Padmak

  • Hehe,

    ich danke dir erstmal!!!! Wie du schon vermutet hast, habe ich jetzt ein Problem. :P ;( :D :D

    Hast du / Ihr vielleicht eine andere UDF, die ich dafür verwenden kann. Wäre super lieb.

    Danke!!!!

  • Was mich noch interessiert:
    hat dein script eine Gui?
    das darf man ja auch nicht laut dem Autor der UDF^^

    Padmak

  • JApp hat sie... Das ist doch scheisse... :(

    Wie sieht es mit anderen UDFs aus, die GUIs akzeptieren. Weil ich alles aus dem Script machen möchte irgendwelche anderen Progs oder so

  • naja aber immerhin hab ich jez die fehlerquelle gefunden^^
    du könntest den eigenlichen service in ne andere datei auslagern
    des hab ich auch mal so gemacht (zwar kein service aber immerhin^^)

    Padmak

  • Ohhhh, wieso bin ich denn nicht gleich darauf gekommen. Ich werde es morgen mal versuchen, hoffen wir mal das es klappt.

    Aber vorerst danke für deine Hilfe.

    LG Nico

  • hab mich jetzt mit dem Script nicht auseinandergesetzt, aber mit dem Systembefehl "sc" hab ich noch keine Probleme gehabt

    Zitat

    Laughing Man

    "I thought, what I'd do was, I'd pretend I was one of those deaf-mutes"