1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. CrazyER

Beiträge von CrazyER

  • 2. Guifenster lässt sich nicht schließen ??

    • CrazyER
    • 11. November 2009 um 21:03

    Ich bin mal wieder am Ende meiner Geduld ;o))


    Wenn ich folgenden Code alleine ausführe, dann klappt alles, wie es soll:

    C
    #include <ButtonConstants.au3> 
    #include <GUIConstantsEx.au3> 
    #include <WindowsConstants.au3> 
    ;Opt("GUIOnEventMode", 1) 
    $kartenziehen = GUICreate("Neue Karte ziehen", 625, 445, 192, 124) 
    $suedstadt = GUICtrlCreateRadio("Südstadt", 104, 40, 121, 25) 
    $wohnviertel = GUICtrlCreateRadio("Wohnviertel", 104, 72, 129, 33) 
    $ok = GUICtrlCreateButton("Bestätigen", 488, 384, 97, 41, $WS_GROUP) 
    GUISetState(@SW_SHOW) 
    
    
    
    
    While 1 
    
    
    ;Return $Kartentyp 
    
    
    $msg = GUIGetMsg() 
    if BitAND(GUICtrlRead($suedstadt), $GUI_CHECKED) = $GUI_CHECKED Then $Kartentyp = "Südstadt" 
    if BitAND(GUICtrlRead($wohnviertel), $GUI_CHECKED) = $GUI_CHECKED Then $Kartentyp = "Wohnviertel" 
    Select 
    Case $msg = $ok 
    MsgBox(1,"test",$Kartentyp) 
    ExitLoop 
    EndSelect 
    WEnd 
    GUIDelete()
    Alles anzeigen


    Wenn ich den Code nun aber als Funktion aufrufe, dann schließt sich das 2. Fenster einfach nicht. Ich habe keine Ahnung wo der Fehler steckt:


    C
    #include <ButtonConstants.au3> 
    #include <EditConstants.au3> 
    #include <GUIConstantsEx.au3> 
    #include <StaticConstants.au3> 
    #include <WindowsConstants.au3> 
    Opt("GUIOnEventMode", 1) 
    $mainwindows = GUICreate("Arkham Horror - Basisspiel", 1025, 601, 269, 148, BitOR($WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_BORDER,$WS_CLIPSIBLINGS)) 
    GUICtrlSetDefBkColor (0xB3B2A0) 
    $aktuelleKarte = GUICtrlCreateEdit("", 48, 184, 520, 320, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN)) 
    
    
    $geruechteKarte = GUICtrlCreateEdit("", 640, 48, 361, 185, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN)) 
    
    
    $umgebungsKarte = GUICtrlCreateEdit("", 640, 304, 361, 209, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN)) 
    
    
    $kartennummer = GUICtrlCreateInput("Kartenummer eingeben", 264, 32, 153, 24) 
    GUICtrlSetBkColor(-1, 0xFFFFFF) 
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") 
    $Exit = GUICtrlCreateButton("Exit", 888, 544, 81, 41, $WS_GROUP) 
    GUICtrlSetBkColor(-1, 0xE9E5E5) 
    $newCard = GUICtrlCreateButton("Neue Karte", 448, 40, 91, 41, $WS_GROUP) 
    GUICtrlSetBkColor(-1, 0xE9E5E5) 
    GUISetState(@SW_SHOW) 
    GUISetOnEvent($GUI_EVENT_CLOSE, "Ende") 
    GUICtrlSetOnEvent($Exit, "Ende1") 
    GUICtrlSetOnEvent($newCard, "neueKarte") 
    Global $Kartentyp 
    
    
    While 1 
    Sleep(1000) 
    WEnd 
    Func Ende() 
    Exit 
    EndFunc 
    
    
    Func neueKarte() 
    #include <ButtonConstants.au3> 
    #include <GUIConstantsEx.au3> 
    #include <WindowsConstants.au3> 
    ;Opt("GUIOnEventMode", 1) 
    $kartenziehen = GUICreate("Neue Karte ziehen", 625, 445, 192, 124) 
    $suedstadt = GUICtrlCreateRadio("Südstadt", 104, 40, 121, 25) 
    $wohnviertel = GUICtrlCreateRadio("Wohnviertel", 104, 72, 129, 33) 
    $ok = GUICtrlCreateButton("Bestätigen", 488, 384, 97, 41, $WS_GROUP) 
    GUISetState(@SW_SHOW) 
    
    
    While 1 
    
    
    $msg = GUIGetMsg() 
    if BitAND(GUICtrlRead($suedstadt), $GUI_CHECKED) = $GUI_CHECKED Then $Kartentyp = "Südstadt" 
    if BitAND(GUICtrlRead($wohnviertel), $GUI_CHECKED) = $GUI_CHECKED Then $Kartentyp = "Wohnviertel" 
    Select 
    Case $msg = $ok 
    MsgBox(1,"test",$Kartentyp) 
    ExitLoop 
    EndSelect 
    WEnd 
    GUIDelete() 
    EndFunc 
    
    
    Func Ende1() 
    MsgBox(1,"test",$Kartentyp) 
    EndFunc
    Alles anzeigen


    Bin wie immer für jeden Tipp dankbar.


    Grüße

    CrazyER

  • Einfacher Button

    • CrazyER
    • 9. November 2009 um 22:06

    Bin ich blöde. ich hatte noch ein Bild über die komplette GUI und diese war, wenn auch nicht sehbar, im Vordergrund, und somit die Buttons nicht klickbar.


    Also Vielen Dank und ich habe wieder was gelernt.

  • Einfacher Button

    • CrazyER
    • 9. November 2009 um 21:53

    aaahhhh nun bin ich ein schritt weiter ;o))

    Wenn ich mit der Tab Taste auf Exit gehe und mit Enter bestätige, dann geht der Knopf wirklich ;o) Also liegt es an meiner unwissenheit *gg* Wie bekomme ich es hin, das der Exit mit der Maus klickbar wird ??

  • Einfacher Button

    • CrazyER
    • 9. November 2009 um 21:50

    ok, dann zweifel ich schonmal nicht an meinem verstand ;o))


    OK, gehen wir zur Fehlersuche über. Gibt es mit AutoIt Probleme unter Vista 32bit oder 64bit ?? Wie sieht es mit Windows 7 aus ?? Hat da schon jemand Erfahungen ??

  • Einfacher Button

    • CrazyER
    • 9. November 2009 um 21:38

    Tach zusammen, ich steh total aufm Schlauch,


    bin gerade dabei für ein Brettspiel "Arkham Horror" mir ein kleines Programm zu basteln. Problem ist mit der GUI. Ich kann die GUI starten, aber wenn ich auf Exit drücke, passiert nichts. Wo ist mein Fehler ??


    C
    #include <ButtonConstants.au3> 
    #include <EditConstants.au3> 
    #include <GUIConstantsEx.au3> 
    #include <StaticConstants.au3> 
    #include <WindowsConstants.au3> 
    #Region ### START Koda GUI section ### Form=G:\Pete sein Kruscht\Arkham Horror - Auto IT\Forms\hauptmenu.kxf 
    $mainwindows = GUICreate("Arkham Horror - Basisspiel", 1025, 601, 211, 152, BitOR($WS_MAXIMIZEBOX,$WS_MINIMIZEBOX,$WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_TABSTOP,$WS_BORDER,$WS_CLIPSIBLINGS)) 
    $aktuelleKarte = GUICtrlCreateEdit("", 48, 184, 520, 320, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN)) 
    GUICtrlSetData(-1, "") 
    GUICtrlSetBkColor(-1, 0xC0C0C0) 
    $geruechteKarte = GUICtrlCreateEdit("", 640, 48, 361, 185, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN)) 
    GUICtrlSetData(-1, "") 
    GUICtrlSetBkColor(-1, 0xC0C0C0) 
    $umgebungsKarte = GUICtrlCreateEdit("", 640, 304, 361, 209, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN)) 
    GUICtrlSetBkColor(-1, 0xC0C0C0) 
    $kartennummer = GUICtrlCreateInput("Kartenummer eingeben", 264, 32, 153, 24) 
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") 
    $Exit = GUICtrlCreateButton("Exit", 888, 544, 81, 41, $WS_GROUP) 
    $OK = GUICtrlCreateButton("OK", 440, 32, 75, 25, $WS_GROUP) 
    GUISetState(@SW_SHOW) 
    #EndRegion ### END Koda GUI section ### 
    While 1 
    $nMsg = GUIGetMsg() 
    Switch $nMsg 
    Case $GUI_EVENT_CLOSE 
    Exit 
    Case $Exit 
    Exit 
    
    
    EndSwitch 
    WEnd
    Alles anzeigen


    Ist bestimmt nur ne kleinigkeit.


    Grüße

    CrazyER

  • Rückgabewert bei DirCopy

    • CrazyER
    • 6. April 2009 um 15:08

    Danke dir Lenny,

    da war tatsächlich mein Denkfehler. Nun funzt es.

  • Rückgabewert bei DirCopy

    • CrazyER
    • 6. April 2009 um 14:10

    Hallo zusammen,

    ich fülle mal wieder meine grauen Zellen und steh wieder vor einem großen Fragezeichen.

    Ich hab folgendes geschrieben:

    [autoit]

    If _Backup($Quelle,$Ziel1) == "1" Then
    $Ergebnis = "Die Dateien von " & $Quelle & " wurden nach " & $Ziel1 &" kopiert."
    _LogWrite($Ergebnis)
    Else
    $Ergebnis = "ACHTUNG !!! Dateien wurden nicht auf " & $Ziel1 & " gesichert."
    _LogWrite($Ergebnis)
    EndIf
    Func _Backup($srcDir, $destDir)
    DirCopy($srcDir,$destDir,1)
    EndFunc

    [/autoit]

    Mein Problem ist nun, das mir mir DirCopy immer nur 0 zurückliefert, auch wenn die Daten kopiert worden sind. Kann mir einer erklären warum das so ist ?? Oder habe ich einen Denkfehler drin ??

    Schonmal DANKE im voraus
    Grüße
    CrazyER

  • Script soll Netzwerkverbindung überprüfen.

    • CrazyER
    • 29. Januar 2009 um 10:55

    sooo blödes ding läuft nun. Habe nun meine Netzwerkkarte direkt in die Abfrage mit rein genommen.

    [autoit]

    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter where ProductName = 'Marvell Yukon 88E8055 PCI-E Gigabit Ethernet Controller' ")

    [/autoit]

    Keine Ahnung, warum das andere vorher nicht funzte, aber vielleicht hat noch jemand einen Tipp.
    Dennoch sag ich nochmal DANKE an alle mitwirkenden ;o))

  • Script soll Netzwerkverbindung überprüfen.

    • CrazyER
    • 29. Januar 2009 um 10:27

    moin moin zusammen

    jetzt werd ich total bekloppt :o))

    Wenn ich mein Skript auf meinen PC startet (Netzwerkkarte angepasst) dann funktioert es wunderbar. Text kommt und ich klick OK und gut ist.

    ABER auf dem TabletPC, auf dem es nachher laufen soll verhält es sich anders. Meldung kommt, ich klick ok, und die Meldung kommt immer wieder. Als wenn er mein $x nicht auf eins 1 setzen würde. Wie kann sowas sein ??

    Hier nochmal mein Skript:

    [autoit]

    Dim $status, $nwkartenname, $counter, $x
    $counter = 1
    $strComputer = "Localhost"
    While $counter = 1
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $colComputers = $objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter")
    For $objItem In $colItems
    $nwkartenname = $objitem.Name
    $status = $objItem.NetConnectionStatus
    If $nwkartenname = "Marvell Yukon 88E8055 PCI-E Gigabit Ethernet Controller" And $status = 2 And $x = 0 Then
    MsgBox (48,"Hinweis ","blablablablablablablablablablabla")
    $x = 1
    Else
    If $status > 2 Then
    $x = 0
    EndIf
    EndIf
    Next
    WEnd

    [/autoit]
  • Script soll Netzwerkverbindung überprüfen.

    • CrazyER
    • 28. Januar 2009 um 15:52

    also irgendwie krieg ichs nicht ganz hin. (Bin wohl doch ein geborener Programiere *ggg*)

    Hier mal mein Code:

    [autoit]

    Dim $status, $nwkartenname, $counter, $x
    $counter = 1
    $strComputer = "Localhost"
    While $counter = 1
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $colComputers = $objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter where NetConnectionStatus = 2")
    For $objItem In $colItems
    $nwkartenname = $objitem.Name
    $status = $objItem.NetConnectionStatus
    If $nwkartenname = "Marvell Yukon 88E8055 PCI-E Gigabit Ethernet Controller" And $status = 2 And $x = 0 Then
    MsgBox (48,"Hinweis ","BLABLABLABLALBALBALBL.")
    $x = 1
    ElseIf $status <> 2 Then
    $x = 0
    EndIf
    Next
    WEnd

    [/autoit]

    Eigentlich garnicht so schlecht. Wenn ich das Skript ausführe läuft es los. Sobald ich das LAN Kabel anschließe, bekomm ich mein blablalba. Kann ich mit OK wegklicken und ist ok. Skript läuft weiter. Wenn ich das LAN Kabel wieder abklemme, passiert auch nichts. Soweit alles richtig. ABER: Wenn ich dann wieder das LAN Kabel anschließe, sollte doch wieder die MsgBox aufgehen, DAS tut sie aber nicht. Warum ??

    Könnte mich mal bitte jemand von der Leitung stossen ?? ;o))

  • Script soll Netzwerkverbindung überprüfen.

    • CrazyER
    • 28. Januar 2009 um 14:45

    soo das Script funktioniert. Muss nur noch ne Endlosschleife drum bauen.

    gibt es dafür eigentlich ein bestimmte Funktion, die dann den Speicher wieder frei räumt ?? OK, das skript hat "nur" 255KB so viel Arbeitsspeicher hab ich noch. Aber generell, gibt es sowas??

  • Script soll Netzwerkverbindung überprüfen.

    • CrazyER
    • 28. Januar 2009 um 12:26

    erstmal DANKE für die Hilfsbereitschaft.

    Die Lösung von ojo gefällt mir sehr gut. Nur funktioniert es nicht ;o))

    Ich bekomme nun den Netzwerkkartentyp ausgegeben, aber nicht den Status darüber.


    PS: For in ?? ich kenne nur For to. Aber du kannst es mir bestimmt im kurzem erklären.

    DANKE !!!

  • Script soll Netzwerkverbindung überprüfen.

    • CrazyER
    • 28. Januar 2009 um 10:23

    Tagchen zusammen,

    ich bin mal wieder beim AutoIT gelandet und hände auch schon wieder an einem Problem. Folgendes will ich umsetzten.

    Das Script soll als Dienstlaufen auf einen TabletPC (XP). Diese Script soll ein Dialogfenster öffnen, sobald das TabletPC ans Netzwerk angeschlossen wird.

    KAnn ich/Wie kann ich mit AutoIT überprüfen ob ein Netzwerk vorhanden ist.

    OK, ich könnte einen Dauerping laufen lassen und sobald ist eine Antwort bekomme häng ich am Netz. Doch ist es nicht noch anders Möglich ??

    Grüße
    CrazyER

  • Problem bei echo-Ausgabe von Pipes "|"

    • CrazyER
    • 25. November 2008 um 14:23

    funktioniert beides nicht ;o(

    Egal, dann muss ich eben mit dem " leben. Oder mach unter Linux wieder nen cut oder sonst was ;o))


    Aber dennoch DANKE an alle.

  • Problem bei echo-Ausgabe von Pipes "|"

    • CrazyER
    • 25. November 2008 um 11:57

    das Problem ist, es muss ein Pipe sein, da Nagios es benötigt, um es als Perfomance Daten zu erkennen. Aber wenn es nicht funktioniert, dann muss ich wohl mit dem " " Leben.

  • Problem bei echo-Ausgabe von Pipes "|"

    • CrazyER
    • 25. November 2008 um 10:42

    mag er auch nicht :o(

  • Problem bei echo-Ausgabe von Pipes "|"

    • CrazyER
    • 25. November 2008 um 10:34

    Tagchen zusammen,

    ich habe mal wieder ein kleines Probleme. Ich benöitge eine Echoausgabe, das ja eigentlich kein Problem darstellt:

    Code
    $Output = "|" &$TonerBestellMenge&"x Toner: "&$Tonerartikel[$i]&" für "&$DruckerTyp[$i]&" bestellen! "
    _RunDOS("echo Tonerbestand KRITISCH ! "&$Output)

    Das Problem ist nun das "|" Wenn ich es nur in "" setze, dann meint das echo, es folgt ein Befehl, wenn ich es in ' "|" ' setze, dann werden die "" mit ausgegeben: "|".

    Ich benötige nur |ohne jeglichen Zusatz. Wie könnte ich das hinbekommen ??

    Grüße
    CrazyER

  • Array Syntax Frage

    • CrazyER
    • 14. November 2008 um 13:40

    also $x gibt mir an, wieviel Fehlmeldungen ich haben. Werde dann eine If schleife machen, in der $x > 1 dann alle Fehlmeldungen als Echo ausgegeben werden, ansonsten kommt eine OK Meldung als Echo.

    Ob Nagios mit dem ConsoleWrite() etwas anfangen kann, muss ich erst noch testen.
    Aber das löst dann eigentlich noch immer nicht mein Problem. Ich muss wahrscheinlich alle Arrayinhalte in einen String bekommen, damit ich dies wieder absetzen kann.

  • Array Syntax Frage

    • CrazyER
    • 14. November 2008 um 13:15

    stimmt, wollte wirklich $Meldungen[$y] und oben hatte ich noch ein Endlosloop. Soweit erstmal danke.

    Doch wie bekomme ich nun alle Arrays auf einmal aufgerufen ??

    Code
    "_RunDOS("echo "&Meldungen[$y]&)

    damit bekomm ich ja nur ein Arrayinhalt. Und mit einer Schleife bekomme ich mehrere Echos, was ich auch nicht möchte.

    Gibt es da ein Befehl für ?? *grübbel*

  • Array Syntax Frage

    • CrazyER
    • 14. November 2008 um 12:39

    Ok, versuche es nochmal zu verdeutlichen.

    Hier mein aktueller Code:

    Code
    #include <Process.au3>
    Const $dateiname = "c:\TONERSTAND\Kyocera FS3900DN.txt"
    Const $inifile = "D:\AUTOIT\Tonerstandplugin.ini"
    $i = 0
    $y = 1
    $x = 0
    $Section = IniReadSectionNames ($inifile)
    $maxArray = $Section[0]
    Dim $DruckerTyp[$maxArray]
    Dim $Tonerartikel[$maxArray]
    Dim $Tonermeldebestand[$maxArray]
    Dim $Tonerbestand[$maxArray]
    
    
    While $i < $maxArray 
    $DruckerTyp[$i] = IniRead($inifile, $Section[$y], "DruckerTyp","")
    $Tonerartikel[$i] = IniRead($inifile, $Section[$y], "Tonerartikel","")
    $Tonermeldebestand[$i] = IniRead($inifile, $Section[$y], "Tonermeldebestand","")
    $Tonerbestand[$i] = IniRead($inifile, $Section[$y], "Tonerbestand","")
    $i = $i + 1
    $y = $y + 1
    WEnd
    $i = 0
    While $i < $maxArray
     If $Tonerbestand[$i] <= $Tonermeldebestand[$i] Then
      $x = $x +1
     EndIf
    WEnd
    Dim $Meldungen[$x]
    $i = 0
    $y = 0
    While $i < $maxArray
     If $Tonerbestand[$i] <= $Tonermeldebestand[$i] Then
      $Meldungen[$x] = " Toner Lagerbestand Kritisch || "&DruckerTyp[$i]& ": "&$Tonerartikel[$i]& " || Aktueller Stand: "&$Tonerbestand[$i]&"
      $y = $y +1
      $i = $i +1
     Else
      $i = $i +1
     EndIf
    WEnd
    Alles anzeigen

    Frage 1:
    Diesen Syntax mag er nicht:

    Code
    $Meldungen[$x] = " Toner Lagerbestand Kritisch || "&DruckerTyp[$i]& ": "&$Tonerartikel[$i]& " || Aktueller Stand: "&$Tonerbestand[$i]&"

    Frage 2:
    ich benötige ein "_RunDOS("echo" das mit mein ganzes Array komplett in einer Zeile ausgibt. Ist sowas möglich, oder muss ich mir ne ganz neu Strategie einfallen lassen ??


    Hoffe, das es nun verständlicher rüber kommt.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™