Fehlerberichterstattung (bitte helfen ^^)

  • Hallo Zusammen

    Ich bin gerade dabei ein Fehlerberichts-GUI zu erstellen. Folgenden Sinn hat das ganze.
    Wie schon aus dem anderen Projekt bekannt (oder auch nicht) bin ich Systemadministrator an einer Schule (180 Rechner). Das da öfter mal einer ausfällt wenn chaotische Schüler dran rummachen sollte jedem klar sein ;).
    Nunja jetzt sollten die Lehrer eigentlich wenn ein PC defekt ist einen Zettel ausfüllen und diesen in mein Fach legen. Leider ist das wohl für manche zuviel aufwand ALSO will ich ein GUI wo die Lehrer zuerst den Raum auswählen sollen und dann den PC einen kurzen Text (Fehlermeldung) dazu schreiben und dann soll das ganze im Format "Datum-Raum-PC" auf einem Netzlaufwerk abgespeichert werden.

    Zu meinem 1. Problem:

    Ich wollte 2 Dropdown Menüs zur Auswahl der entsprechenden Daten (Raum, PC) erstellen was auch geklappt hat. Nunja das dumme ist das beide die gleiche ControlID haben und ich Sie nicht einzelnd auslesen kann. Ich habe da das Script am Anfang steht einfach mal die eingaben ausgeben lassen mit einer MsgBox aber es kommt (wohl wegen der doppelten ControlID) zweimal die gleiche Nachricht wenn ich auf OK klicke. Hat wer eine Lösung? Naja hier erstma das Script....

    Spoiler anzeigen
    [autoit]


    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.2.2.0
    Author: akira2012
    Script Function:
    Script zur Fehlermeldung

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

    #ce ----------------------------------------------------------------------------

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

    ; Und ab gehts...

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

    #include <GUIConstants.au3>
    #include <GuiCombo.au3>

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

    dim $Raumwahl,$Raum,$Nummer,$Rechner

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

    $Nummer = 00

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

    GUICreate("Fehlermeldungen", 400, 400)
    GUICtrlCreateLabel("Bitte geben Sie hier die Fehlermedung an und wählen Sie den entsprechenden PC und den Raum sowie das Datum aus.", 30, 10)
    $okbutton = GUICtrlCreateButton("OK", 70, 350, 60)
    $Raumwahl = GUICtrlCreateCombo ( "Raum auswählen...", 40, 40 , 115 , 30 )
    GUICtrlSetData(-1, "205|206|216|217|218|219|220|221")
    $PC = GUICtrlCreateCombo ( "PC auswählen...", 180, 40 , 115 , 30 )
    GUICtrlSetData(-2, "PC auswählen...")

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

    Do
    $Nummer = $Nummer+01
    IF $Nummer < 10 THEN
    ClipPut("0"&$Nummer)
    Else
    ClipPut($Nummer)
    EndIf
    _GUICtrlComboAddString($PC, ClipGet())
    until $Nummer = 26

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

    _GUICtrlComboAddString($PC, "Lehrer-Arbeitsplatz")

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()

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

    Select
    Case $msg = $okbutton
    MsgBox(0, "haarhar", $Raum)
    MsgBox(0, "haarhar", $Rechner)

    Case $msg = $Raumwahl
    $Raum = GUICtrlRead(-1)

    Case $msg = $PC
    $Rechner = GUICtrlRead(-2)

    Case $msg = $GUI_EVENT_CLOSE

    ExitLoop
    EndSelect
    WEnd

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

    Danke schonmal

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***

    2 Mal editiert, zuletzt von akira2012 (27. April 2007 um 11:18)

    • Offizieller Beitrag

    Hi!

    So in der Art?

    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.2.2.0
    Author:

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

    Script Function:
    Script zur Fehlermeldung

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

    #ce ----------------------------------------------------------------------------

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

    ; Und ab gehts...

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

    #include <GUIConstants.au3>
    #include <GuiCombo.au3>

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

    dim $Raumwahl,$Raum,$Nummer,$Rechner

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

    $Nummer = 00

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

    GUICreate("Fehlermeldungen", 400, 400)
    GUICtrlCreateLabel("Bitte geben Sie hier die Fehlermedung an und wählen Sie den entsprechenden PC und den Raum sowie das Datum aus.", 30, 10)
    $okbutton = GUICtrlCreateButton("OK", 70, 350, 60)
    $Raumwahl = GUICtrlCreateCombo ( "Raum auswählen...", 40, 40 , 115 , 30 )
    GUICtrlSetData(-1, "205|206|216|217|218|219|220|221")
    $PC = GUICtrlCreateCombo ( "PC auswählen...", 180, 40 , 115 , 30 )
    GUICtrlSetData(-2, "PC auswählen...")

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

    Do
    $Nummer = $Nummer+01
    IF $Nummer < 10 THEN
    ClipPut("0"&$Nummer)
    Else
    ClipPut($Nummer)
    EndIf
    _GUICtrlComboAddString($PC, ClipGet())
    until $Nummer = 26

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

    _GUICtrlComboAddString($PC, "Lehrer-Arbeitsplatz")

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()

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

    Select
    Case $msg = $okbutton
    MsgBox(0, "haarhar", GUICtrlRead($Raumwahl))
    MsgBox(0, "haarhar", GUICtrlRead($PC))

    Case $msg = $GUI_EVENT_CLOSE

    ExitLoop
    EndSelect
    WEnd

    [/autoit]

    peethebee

  • Ja genau so -.-*

    Das ist gemein in der Hilfe von AutoIT steht das schlecht beschrieben ;(
    Ich meine die ControlID soll doch eine Nummer sein odeR? (Ist Sie bei dem AutoInfo tool zumindest).
    Da soll einer drauf kommen das man einfach den Namen eingeben kann... :hammer:

    Danke peethebee

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***

    • Offizieller Beitrag
    Zitat

    Ich meine die ControlID soll doch eine Nummer sein odeR?


    Das stimmt schon. Genau diese (variierende) Zahl wird an die entsprechende Variable übergeben:
    $Raumwahl = GUICtrlCreateCombo ( "Raum auswählen...", 40, 40 , 115 , 30 )

    Kannst dir den Wert ja mal anschauen: MsgBox(0, "", "ID = " & $Raumwahl) ;)

    • Offizieller Beitrag

    Hi,

    hier auch noch ein paar kleine Hilfen:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

    AutoIt Version: 3.2.2.0
    Author:

    Script Function:
    Script zur Fehlermeldung

    #ce ----------------------------------------------------------------------------

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

    ; Und ab gehts...

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

    #include <GUIConstants.au3>
    #include <GuiCombo.au3>
    GUICreate("Fehlermeldungen", 400, 200)
    GUICtrlCreateLabel("Bitte geben Sie hier die Fehlermedung " & @CRLF & "an und wählen Sie den entsprechenden PC und den Raum " & @CRLF & "sowie das Datum aus.", 30, 10)
    $okbutton = GUICtrlCreateButton("OK", 40, 150, 255)
    $Raumwahl = GUICtrlCreateCombo("Raum auswählen...", 40, 80, 115, 30)
    GUICtrlSetData(-1, "205|206|216|217|218|219|220|221")
    $PC = GUICtrlCreateCombo("PC auswählen...", 180, 80, 115, 30)
    GUICtrlSetData(-2, "PC auswählen...")

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

    For $i = 0 To 26
    _GUICtrlComboAddString($PC, StringFormat("%0.2d", $i))
    Next
    _GUICtrlComboAddString($PC, "Lehrer-Arbeitsplatz")
    GUISetState(@SW_SHOW)

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

    While 1

    Switch GUIGetMsg()
    Case $okbutton
    MsgBox(0, "haarhar", GUICtrlRead($Raumwahl))
    MsgBox(0, "haarhar", GUICtrlRead($PC))
    Case $GUI_EVENT_CLOSE
    ExitLoop
    EndSwitch
    WEnd

    [/autoit]

    So long,

    Mega

  • Ah sehr schön vielen Dank an alle für die nette Hilfe ^^.
    @Mega - sieht besser aus was du da gemacht hast mit der For Next schleife.
    Gehe ich recht in der annahme das:

    Code
    For $i = 0 To 26
    	_GUICtrlComboAddString($PC, StringFormat("%0.2d", $i));<---das HIER
    
    
    Next
    _GUICtrlComboAddString($PC, "Lehrer-Arbeitsplatz")
    GUISetState(@SW_SHOW)


    Nichts anderes heißt als das er 2 Dezimalstellen anzeigen soll? Wo findet man sowas ^^.

    MfG

    akira2012

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***

  • So die "beta" Version ist fertig ^^. Sieht vielleicht noch etwas chaotisch aus aber funktioniert ausgezeichnet. Vorschläge für Verbesserungen werden gerne angenommen ;)

    Spoiler anzeigen
    [autoit]


    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.2.2.0
    Author: akira2012
    Script Function:
    Script zur Fehlermeldung

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

    #ce ----------------------------------------------------------------------------

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

    ; Und ab gehts...

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

    #include <GUIConstants.au3>
    #include <GuiCombo.au3>
    #include <GuiEdit.au3>

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

    dim $Raumwahl,$Raum,$Nummer,$Rechner,$Test,$Art,$Drucker

    $Nummer = 00

    GUICreate("Fehlermeldungen", 350, 350)

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

    $Label1 = GUICtrlCreateLabel("Bitte tätigen Sie hier Ihre Fehlermeldung. Wählen Sie dazu einfach alle Felder aus und drücken Sie auf OK.", 30, 10, "290","40", $SS_SUNKEN )

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

    $okbutton = GUICtrlCreateButton("OK", 90, 300, 60)
    $verlassen = GUICtrlCreateButton("Verlassen", 190, 300, 60)
    $Raumwahl = GUICtrlCreateCombo ( "Raum wählen...", 30, 60 , 120 , 30, $CBS_DROPDOWNLIST )
    GUICtrlSetData(-1, "205|206|216|217|218|219|220|221")
    $Art = GUICtrlCreateCombo ( "Gerätetyp wählen...", 200, 60, 120, 30, $CBS_DROPDOWNLIST)
    GUICtrlSetData(-1, "PC|Drucker|Monitor|Scanner|Beamer|Tastatur|Maus|Sonstiges")
    $Fehler = GUICtrlCreateEdit("Text", 25, 180, 300, 100, $ES_NOHIDESEL)
    $Label2 = GUICtrlCreateLabel("Bitte beschreiben Sie hier den Fehler", 25, 160, 180, 15, $SS_SUNKEN )

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

    GUICtrlCreateLabel("Datum wählen", 70, 105, 80, 15, $SS_SUNKEN)
    $Datum = GUICtrlCreateDate ( "Datum", 70, 120, 200, 20)
    $PC = GUICtrlCreateCombo ( "PC wählen...", 200, 90 , 120 , 30, $CBS_DROPDOWNLIST)
    GUICtrlSetData($PC, "PC wählen...")
    GUICtrlSetState($PC, $GUI_HIDE)
    For $i = 0 To 26
    _GUICtrlComboAddString($PC, StringFormat("%0.2d", $i))
    Next
    _GUICtrlComboAddString($PC, "Lehrer-Arbeitsplatz")

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

    $Drucker = GUICtrlCreateCombo ( "Drucker wählen...", 200, 90 , 120 , 30, $CBS_DROPDOWNLIST )
    GUICtrlSetData($Drucker, "Schülerdrucker|Lehrerdrucker")
    GUICtrlSetState($Drucker, $GUI_HIDE)
    FileChangeDir("\\PDC-Server\Software\Fehlermeldungen")
    $Sonstiges = GUICtrlCreateinput("Hier Gerät spezifizieren.", 200, 90 , 120 , 25, $WS_DLGFRAME)
    GUICtrlSetState($Sonstiges, $GUI_HIDE)
    GUICtrlSetState($Raumwahl, $GUI_FOCUS)
    GUICtrlSetState($okbutton, $GUI_DEFBUTTON)
    GUISetState(@SW_SHOW)

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

    GUICreate("Weitere?", 150, 70)
    $Label4 = GUICtrlCreateLabel("Weitere Fehlermeldungen?", 10, 5, 130, 15)
    $Ja = GUICtrlCreateButton("Ja", 20, 30, 40, 25)
    $Nein = GUICtrlCreateButton("Nein", 90, 30, 40, 25, $BS_DEFPUSHBUTTON)

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


    While 1
    $msg = GUIGetMsg()

    Select
    Case $msg = $okbutton
    $1 = GUICtrlRead($Raumwahl)
    $2 = GUICtrlRead($PC)
    $3 = GUICtrlRead($Fehler)
    $4 = GUICtrlRead($Art)
    $5 = GUICtrlRead($Datum)
    $6 = GUICtrlRead($Drucker)
    $7 = GUICtrlRead($Sonstiges)
    $Dateiname = $5&" Raum "&$1
    IF $1 = "Raum wählen..." Then
    MsgBox(0x10, "FEHLER!", "Sie haben die Raumnummer vergessen! Bitte korregieren Sie dies!")
    ElseIf $3 = "Text" Then
    MsgBox(0x10, "FEHLER!", "Sie haben die Fehlerbeschreibung vergessen! Bitte korregieren Sie dies!")
    Else
    if $4 = "PC" THEN
    If $2 = "PC wählen..." THEN
    MsgBox(0x10, "FEHLER!", "Sie haben keinen gültige PC-Nummer ausgewählt! Korregieren Sie bitte Ihre Auswahl.")
    Else
    FileOpen($Dateiname&".txt", 1)
    FileWrite($Dateiname&".txt", "Folgender Fehler ist am PC-"&$2&" aufgetreten: "&$3)
    MsgBox(0, "Vorgang abgeschlossen", "Vielen Dank für die Fehlermeldung. Wir werden uns unverzüglich darum kümmern!")
    GUISetState(@SW_SHOW, "Weitere?")

    EndIf
    ElseIf $4 = "Drucker" Then
    If $6 = "Drucker wählen..." THEN
    MsgBox(0x10, "FEHLER!", "Sie haben keinen gültige Drucker ausgewählt! Korregieren Sie bitte Ihre Auswahl.")
    Else
    FileOpen($Dateiname&".txt", 1)
    FileWrite($Dateiname&".txt", "Der "&$6&" in Raum "&$1&" hat folgenden Fehler: "&$3)
    MsgBox(0, "Vorgang abgeschlossen", "Vielen Dank für die Fehlermeldung. Wir werden uns unverzüglich darum kümmern!")
    GUISetState(@SW_SHOW, "Weitere?")
    EndIf

    ElseIf $4 = "Monitor" Then
    If $2 = "PC wählen..." THEN
    MsgBox(0x10, "FEHLER!", "Sie haben keinen gültigen PC für den Monitor ausgewählt! Korregieren Sie bitte Ihre Auswahl.")
    Else
    FileOpen($Dateiname&".txt", 1)
    FileWrite($Dateiname&".txt", "Der Monitor vom PC-"&$2&" im Raum "&$1&" hat folgenden Fehler: "&$3)
    MsgBox(0, "Vorgang abgeschlossen", "Vielen Dank für die Fehlermeldung. Wir werden uns unverzüglich darum kümmern!")
    GUISetState(@SW_SHOW, "Weitere?")
    EndIf

    ElseIf $4 = "Scanner" Then
    FileOpen($Dateiname&".txt", 1)
    FileWrite($Dateiname&".txt", "Der Scanner in Raum "&$1&" hat folgenden Fehler: "&$3)
    MsgBox(0, "Vorgang abgeschlossen", "Vielen Dank für die Fehlermeldung. Wir werden uns unverzüglich darum kümmern!")
    GUISetState(@SW_SHOW, "Weitere?")
    ElseIf $4 = "Beamer" Then
    FileOpen($Dateiname&".txt", 1)
    FileWrite($Dateiname&".txt", "Der Beamer in Raum "&$1&" hat folgenden Fehler: "&$3)
    MsgBox(0, "Vorgang abgeschlossen", "Vielen Dank für die Fehlermeldung. Wir werden uns unverzüglich darum kümmern!")
    GUISetState(@SW_SHOW, "Weitere?")
    ElseIf $4 = "Tastatur" Then
    FileOpen($Dateiname&".txt", 1)
    FileWrite($Dateiname&".txt", "Die Tastatur vom Pc-"&$2&" im Raum "&$1&" hat folgenden Fehler: "&$3)
    MsgBox(0, "Vorgang abgeschlossen", "Vielen Dank für die Fehlermeldung. Wir werden uns unverzüglich darum kümmern!")
    GUISetState(@SW_SHOW, "Weitere?")
    ElseIf $4 = "Maus" Then
    FileOpen($Dateiname&".txt", 1)
    FileWrite($Dateiname&".txt", "Die Maus vom Pc-"&$2&" im Raum "&$1&" hat folgenden Fehler: "&$3)
    MsgBox(0, "Vorgang abgeschlossen", "Vielen Dank für die Fehlermeldung. Wir werden uns unverzüglich darum kümmern!")
    GUISetState(@SW_SHOW, "Weitere?")
    Elseif $4 = "Sonstiges" Then
    FileOpen($Dateiname&".txt", 1)
    FileWrite($Dateiname&".txt", "Folgender Fehler trat im Raum "&$1&" mit der/dem "&$7&" auf: "&$3)
    MsgBox(0, "Vorgang abgeschlossen", "Vielen Dank für die Fehlermeldung. Wir werden uns unverzüglich darum kümmern!")
    GUISetState(@SW_SHOW, "Weitere?")
    ElseIf $4 = "Gerätetyp wählen..." Then
    MsGBox(0x10, "FEHLER!", "Sie haben vergessen einen gültigen Gerätetypen auszuwählen! Korregieren Sie bitte Ihre Auswahl.")
    EndIf
    EndIf
    Case $msg = $Ja
    GUISetState(@SW_Hide, "Weitere?")

    Case $msg = $Nein
    ExitLoop

    Case $msg = $Art
    If GUICtrlRead($Art) = "PC" OR GUICtrlRead($Art) = "Monitor" Then
    GUICtrlSetState($PC, $GUI_SHOW)
    GUICtrlSetState($Drucker, $GUI_HIDE)
    GUICtrlSetState($Sonstiges, $GUI_HIDE)
    Elseif GUICtrlRead($Art) = "Drucker" Then
    GUICtrlSetState($Drucker, $GUI_SHOW)
    GUICtrlSetState($PC, $GUI_HIDE)
    GUICtrlSetState($Sonstiges, $GUI_HIDE)
    Elseif GUICtrlRead($Art) = "Sonstiges" Then
    GUICtrlSetState($Sonstiges, $GUI_SHOW)
    GUICtrlSetState($PC, $GUI_HIDE)
    GUICtrlSetState($Drucker, $GUI_HIDE)
    Else
    GUICtrlSetState($PC, $GUI_HIDE)
    GUICtrlSetState($Drucker, $GUI_HIDE)
    GUICtrlSetState($Sonstiges, $GUI_HIDE)
    EndIf

    Case $msg = $Verlassen
    ExitLoop

    Case $msg = $Fehler

    Case $msg = $Raumwahl


    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    EndSelect
    WEnd

    [/autoit]

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***

    4 Mal editiert, zuletzt von akira2012 (27. April 2007 um 11:19)

  • Ja haben wir -_-*
    Den HDD-Sheriff - mein meistgehaßtes Programm ^_^*

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***

  • Ok das topic kann glaube ich geschlossen werden ^^
    Habe alles fertig.
    Mit dabei ist jetzt noch ein Script das die ganze Zeit den Ort überwacht wo die Fehlermeldungen hingeschrieben werden und eine Nachricht ausgibt und ein gui öffnet von dem man wiederrum bequem die Angezeigten Dateien öffnen oder zusammenfassen kann + einen Button um die neuste Datei sofort zu öffnen. Ausdrucken geht natürlich auch noch. Alles in allem ist mir das gut geglückt wenn ich das mal anmerken darf ^^

    MfG

    akira2012

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***

  • Hallo akira2012

    Also das Ergebnis würde mich ja reizen mal zu sehen wie ds alles umgesetzt wurde.

    Hört sich sehr interessant an. Hat sicherlich massenweise Nerven gekostet.

    LG Lina

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Hallo Lina ^^

    ich werde das Tool + Zusatzprogramme demnächst mal hier einstellen. Leider habe ich im Moment immer noch kein Internet aber es scheint das die Pappnasen von 1&1 das bald mal auf die Reihe bekommen und dann lade ich alles hoch.


    MfG

    akira2012


    P.S. Ja es hat massig Nerven gekostet ;)

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***