Citrix Xen Server Zeit messen zwischen Doppelklick und vollständiger Verfügbarkeit der Anwendung

  • Hallo,

    Ich habe die Aufgabe bekommen AutoIt so zu programmieren das er das citrix plug in automatisch startet-->sich anmeldet--> ne anwendung startet--> anwendung schließt-->citrix plug in schließt--> und wieder von vorn.

    Das war jetzt auch kein Problem...nun sagt mein Chef das es toll wäre wenn ich es jetzt noch hinbekomme das die zeit zwischen dem doppelklick auf die anwendung bis zum vollständigen starten der anwendung gemessen wird(leute die mit citrix erfahrungen haben wissen das es etwas dauert).

    Ich habe schon gelesen das es für nagios ein plugin gibt.
    aber so wie ich das verstanden habe gibt auto it die daten nur an nagios weiter und das plugin ist dafür verantwortlich das diese dann im nagios angezeigt werden.

    Ich soll diese daten in einem Textdokument ausgeben.
    Nun meine Frage
    Ist dies möglich? wenn ja wie?
    ich habe mich schon mit der time funktion beschäöftigt aber diese mist ja nur die Zeit wie lange es dauert das Programm abzuarbeiten.

  • wenn der Rest klappt ist timer diff dein Freund..

    [autoit]

    #include <Timers.au3>

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

    _Main()

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

    Func _Main()
    HotKeySet("{ESC}", "_Quit")

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

    Local $starttime = _Timer_Init()
    While 1
    ToolTip(_Timer_Diff($starttime))
    WEnd
    EndFunc ;==>_Main

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

    Func _Quit()
    Exit
    EndFunc ;==>_Quit

    [/autoit]

    Achtung Anfänger! :whistling:

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

  • hey,

    danke erstmal wenn das funktioniert bin ich dir echt dankbar=)
    aber kannst du dein quellcode evtl. noch kommentieren damit ich weiß wo ich ihn einbinden muss und was die einzelnen funktionen machen.

    achso ich sehe schon das man einfach nur auf die funktion klicken brauch.=)

    Also ich starte die Anwendung bei meinem test so:

    ;anwendung starten
    MouseClick("left",1223,146,2)

    wo muss ich das bei deinem quellcode einfügen?

    2 Mal editiert, zuletzt von dicker2503 (3. Februar 2011 um 11:35)

  • [autoit
    ]$begin = TimerInit()
    Run("C:\Program Files\Microsoft Office\Office14\EXCEL")
    WinWaitActive("Microsoft Excel - Mappe1")
    $dif = TimerDiff($begin)
    MsgBox(0,"Time Difference",$dif)
    [/autoit]

    Also das programm sagt mir jetzt wie lange er braucht excel zu starten.
    Nun muss ich es noch so hinbekommen, das excel wieder geschlossen wir und wieder gestartet (endlosschleife) und jedes mal soll er mir die zeit sagen und diese in eine txt datei bzw. in eine excel tabelle schreiben.
    ist dies möglich?

  • Hallo dicker2503,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Hier kannst du dir die deutsche Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee

    und jetzt zu

    hat denn keiner einen rat?


    Was soll das pushen nach noch nicht einmal 7 Stunden. In dieser Zeit hättest du bequem die entsprechenden Funktionen:

    [autoit]

    While ... Wend;bzw.
    Do ... Until;oder
    For ... Next;zum bilden der Schleife
    FileWriteLine;in Textdatei schreiben
    WinWaitClose;warten bis Fenster geschlossen

    [/autoit]

    nachschlagen können.

    [autoit]

    TimerInit;und
    TimerDiff

    [/autoit]

    hast du ja schon kennengelernt

    ist dies möglich?

    natürlich ist es möglich oder werden bei euch nur unmögliche Aufgaben gestellt.

    mfg autoBert

  • also ich habe das ganze jetzt so umgesetzt:


    ;startet die gewünschte anmeldung mit einem doppelklick
    Mouseclick("left",64,823,2)
    ;Zeitmessung beginnt
    $begin = TimerInit()
    ;wartet darauf das Anwendung aktiv
    WinWaitActive("Willkommen bei Adress PLUS - \\Remote")
    ;Zeitmessung wird beendet
    $dif = TimerDiff($begin)
    ;gemessene Zeit wir in eine File mit namen X geschrieben
    FileWriteLine("cobrastart.txt",$dif & " " & @HOUR & ":" & @MIN & ":" & @SEC & " Uhr.")
    ;lege eine pause von 1sek. ein
    Sleep(1000)
    ;Anwendung wir geschlossen
    WinClose("Willkommen bei Adress PLUS - \\Remote")


    was sagt ihr dazu?

  • Ich kenn das Plugin leider nicht, aber ich kann dir schonmal sagen das

    [autoit]

    FileWriteLine("cobrastart.txt",

    [/autoit]


    Nicht klappt, (zumindest bei mir, auch mit erstellter .txt Datei), du müsstest den gesammten Pfad angeben, dafür kannst du auch Makros benutzen. (Siehe dazu Hilfe Makroreferenzen)
    Zum öffnen gibts denk ich mal auch eine einfachere Lösung anstat des Mausklicks, zum Beispiel durch :

    [autoit]

    Run()
    ShellExecute()

    [/autoit]
  • also das mit dem erstellen der txt datei funktioniert.
    und das mit der anwendung per befehl starten weiß ich nicht ob das funktioniert weil die anwendung vom server bereitgestellt wird.
    jetzt noch eine frage:

    wie kann ich die zeiten an nagios weiter geben sodass nagios sie auswertet?

  • Zitat

    wie kann ich die zeiten an nagios weiter geben sodass nagios sie auswertet?


    als Textdatei?
    und dort halt mit
    top head cut awk sort grep < | > usw. passend machen. :)

    Normalerweile richtet man doch ein Plugin je Funktion ein. Mit dem musst du das TXT Output verdrahten.

    Achtung Anfänger! :whistling:

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