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. Sen

Beiträge von Sen

  • Auslesen von Google Spreadsheet (CSV Export)

    • Sen
    • 9. Januar 2018 um 18:56

    Der Unterschied ist da relativ gesehen schon ziemlich gewaltig, wenn man bedenkt er läd pro Sekunde ~286kb, von denen ich nur 2kb verwende.

    Sorgen mache ich mir deswegen nicht - ich gucke nur gern ob es sich optimieren lässt.

    Habs jetzt derzeit so laufen;

    C
    #include <Date.au3>
    #include <Inet.au3>
    
    While 1
        ;List and Time
        $GoogleRead = _INetGetSource("https://docs.google.com/spreadsheets/d/[Hier Google Dokument ID]/edit?usp=sharing")
        $GoogleRead = StringRegExpReplace($GoogleRead, '(?s).*?og:description" content="([^"]+).*', "$1")
        $Output = StringSplit($GoogleRead, @CRLF, 0)
        $Date = StringReplace(StringReplace($Output[3], " ", "", 0), "|", " ", 0)
        $LastCMD = StringTrimLeft($Output[Ubound($Output)-1], 1)
    
        ; Last time versus current time
        If _DateIsValid($Date) And _DateDiff("s", $Date, _NowCalc()) < 3 Then
            ConsoleWrite("< Time Dif: " & _DateDiff("s", $Date, _NowCalc()) & @CRLF)
            RunCommand($LastCMD)
            Sleep(3000)
        EndIf
    
        Sleep(500)
    WEnd
    
    Func RunCommand($Cmd)
        Switch $Cmd
            Case "Logout"
                ConsoleWrite("> Starte Anmeldebildschirm - " & _NowCalc() & @CRLF)
                DllCall("user32.dll", "bool", "LockWorkStation")
            Case "Shutdown"
                ConsoleWrite("> Fahre PC herunter - " & _NowCalc() & @CRLF)
                ;Shutdown(5)
        EndSwitch
    EndFunc   ;==>RunCommand
    Alles anzeigen

    Zusammen mit IFTTT Applets die per Befehl an Google Home ein Stichwort in den Spreadsheet eintragen, was gleichzeitig den NOW() Zeitstempel aktualisiert welcher dann einfach verglichen wird. So hab ich Verzögerungen von ~1 Sekunde und die Befehle starten am PC bereits, bevor der Home Mini fertig geantwortet hat. Den ganzen String Kram am Anfang könnte man sicherlich noch ordentlicher machen, aber erst mal läuft es so. Liege jetzt bei ~33Mb pro Stunde - für etwas was nur daheim am PC läuft also okay, wenn auch irgendwie ärgerlich wenn man eigentlich nur <1Mb davon braucht.

    Aber bis Google da keine vernünftige Lösung bietet (was ich irgendwie noch nicht mal am Horizont sehe) geht es so :D

  • Auslesen von Google Spreadsheet (CSV Export)

    • Sen
    • 9. Januar 2018 um 17:42

    Ich hab zum Test mal einmal pro Sekunde mit _InetGetSource() die URL geladen, damit man auch auf den Inhalt zugreifen kann.

    Dank Weiterleitung, Oberfläche und allem was mit läd springt die Netzwerkauslastung dabei aber auch immer mal wieder auf ~2,8mb/s.

    Wenn man bedenkt, der Inhalt hat nur 4-5kb, kommt da schon einiges an unnötigem Datenvolumen auf und die Abstände zu vergrößern würde das ganze ziemlich langsam reagieren lassen.

  • Auslesen von Google Spreadsheet (CSV Export)

    • Sen
    • 9. Januar 2018 um 17:29

    In der Datei sind bis auf das Datum der letzten Bearbeitung und Stichwörtern absolut keine wichtigen Daten.

    Problem ist wie gesagt nur; Wenn ich die Datei öffentlich freigebe, kann ich zwar über die neue URL von überall auf die Datei zugreifen, aber eben nur inkl. der Google Spreadsheet Umgebung.

    Sobald ich den Export der CSV Datei oder ähnliches (PDF und co) ansteuere, lande ich wieder beim Json Fehler der mir sagt die Datei ist nicht freigegeben.. obwohl ich sie gerade darüber offen habe.

    Meine Güte, es muss doch einen halbwegs umsetzbaren Weg geben minimale Befehle (oder Stichwort - Zeitstempel) von einem Google Home (über Dienste wie IFTTT, Webhooks, oder co) an den Pc zu übertragen.

    Kann ja nicht sein wenn der PC - als intelligentester Teil des Heimes - nicht zum "smarten" Netz gehört.

  • Auslesen von Google Spreadsheet (CSV Export)

    • Sen
    • 9. Januar 2018 um 17:10

    Ich vermute mit einem Direktlink wird es so nichts, zumindest gibt er mir beim Aufruf lediglich aus;

    Zitat

    main_frame 16:59:25 (296ms)
    GET docs.google.com
    URL /spreadsheets/d/1DT-9zNrVv2qa5RqdDjKn1eIVVFIEIz8_D6cHTErtxHg/gviz/tq

    Und besagte URL läd eine "json.txt" mit dem Inhalt:

    Code
    /*O_o*/
    google.visualization.Query.setResponse({"version":"0.6","reqId":"0","status":"error","errors":[{"reason":"access_denied","message":"ACCESS_DENIED","detailed_message":"This spreadsheet is not publicly viewable and requires an OAuth credential.  For more information, see https://support.google.com/docs/?p=gviz_tq_auth"}]});

    Allerdings ist die Datei bereits freigeben und kann über die teilbare URL auch angesehen werden - nur eben nicht im CSV Format, sondern in Google Spreadsheets direkt.

  • Auslesen von Google Spreadsheet (CSV Export)

    • Sen
    • 9. Januar 2018 um 15:50

    Nach langer Zeit mal wieder ein Problem, bei dem ich vermutlich einfach nur ein Brett vor dem Kopf habe.

    Ich will den Inhalt einer Google Tabelle mit AutoIt auslesen (um daraus Befehle zu nehmen, mit einer Zeit zu vergleichen, etc).

    Dreht sich um Befehle von Google Home an den PC zu senden - was auch bereits funktioniert, ohne Verzögerung.

    Problem an meiner derzeitigen Lösung ist; Es wird der komplette Quelltext mit _INetGetSource aufgerufen über die Datei URL (inkl. ID) und dann angepasst, bzw alles unnötige ausgeblendet. Dies führt aber auch dazu bei häufiger Nutzung (etwa 1x/Sekunde) die Netzwerkauslastung ziemlich in die Höhe zu treiben, größtenteils mit Daten die am Ende eh nicht genutzt werden. Ich dachte mir also ich nutze den CSV export von google, welches mir eine kleine .csv Datei rein mit dem Inhalt der Tabelle raus wirft - was die Probleme mit der hohen Auslastung lösen würden.

    Mein Problem allerdings; Rufe ich die Datei über die URL auf (zum exportieren), Beispiel:

    https://docs.google.com/spreadsheets/d/1DT-9zNrVv2qa5RqdDjKn1eIVVFIEIz8_D6cHTErtxHg/gviz/tq?tqx=out:csv&sheet=Sheet1

    läd er die Datei problemlos runter und ich kann sie theoretisch über FileRead()einfach einlesen und verwenden.

    Versuche ich allerdings die Datei über InetGet() anzusteuern, läd er mir zwar eine CSV Datei mit dem gleichen Namen, aber mit den Infos der Seite (CSS, JavaScript, etc der Oberfläche), nicht den eigentlichen Informationen des Dokuments.

    Gibt es eine Möglichkeit die beim Aufruf der URL generierte CSV Datei direkt mit AutoIt zu laden (wenn möglich ohne temporäre Datei)?

  • GDI+ /WinAPI Absturz bei Exit

    • Sen
    • 16. März 2015 um 15:16

    Ah, da hat sich der Flüchtigkeitsfehler versteckt. X/
    Danke Oscar!

  • GDI+ /WinAPI Absturz bei Exit

    • Sen
    • 16. März 2015 um 13:51

    Für das komplette Script würden die Grafiken fehlen (und die Taskleiste wird beim Error nicht wieder eingeblendet, wäre für dich ungünstig :D)
    aber das hier läuft (siehe Kommentare im Script) und haut exakt den gleichen Fehler raus;

    Zitat

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GDIPlus.au3>

    _GDIPlus_Startup()

    ;Enter Image Name on Desktop
    $sSourceImg = "Example.png" ;must be on Desktop

    $hGUI = GUICreate("", 600, 400, -1, -1, $WS_POPUP, $WS_EX_TOOLWINDOW)

    ;Exit Button
    $h_Exit_Pic = GUICtrlCreatePic("", 10, 10)
    $h_Exit_hImage = _GDIPlus_ImageLoadFromFile(@DesktopDir & "\" & $sSourceImg)
    $h_Exit_Bmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($h_Exit_hImage)
    _WinAPI_DeleteObject(GUICtrlSendMsg($h_Exit_Pic, 0x0172, 0, $h_Exit_Bmp))

    GUISetState()

    While True
    $msg = GUIGetMsg()
    Switch $msg
    Case $h_Exit_Pic
    OnExit()
    EndSwitch

    Sleep(50)
    WEnd

    Func OnExit()
    _GDIPlus_ImageDispose($h_Exit_Bmp)
    _WinAPI_DeleteObject($h_Exit_hImage)
    _GDIPlus_Shutdown()

    GUIDelete($hGUI)

    Exit
    EndFunc ;==>OnExit

    Alles anzeigen
  • GDI+ /WinAPI Absturz bei Exit

    • Sen
    • 16. März 2015 um 13:25

    Das dachte ich zuerst auch, allerdings;

    Code
    Func OnExit()
        ;Clean GDI
        _GDIPlus_ImageDispose($h_Start_Bmp)
        _WinAPI_DeleteObject($h_Start_hImage)
        _GDIPlus_ImageDispose($h_App_Bmp)
        _WinAPI_DeleteObject($h_App_hImage)
        _GDIPlus_ImageDispose($h_Connect_Bmp)
        _WinAPI_DeleteObject($h_Connect_hImage)
        _GDIPlus_ImageDispose($h_Sound_Bmp)
        _WinAPI_DeleteObject($h_Sound_hImage)
        _GDIPlus_ImageDispose($h_Settings_Bmp)
        _WinAPI_DeleteObject($h_Settings_hImage)
        _GDIPlus_ImageDispose($h_Exit_Bmp)
        _WinAPI_DeleteObject($h_Exit_hImage)
        _GDIPlus_Shutdown()
    
    
        GUIDelete($hGUI)
        GUIDelete($hGUI_Settings)
    
    
        ControlShow('classname=Shell_TrayWnd', '', '')
        Exit
    EndFunc   ;==>OnExit
    Alles anzeigen


    Das ist mal die komplette OnExit Function so weit (ersetzt im Moment meine Taskleiste, das Script o;) und sobald sie aufgerufen wird
    stürtzt mir das Script mit exakt der gleichen Fehlermeldung wieder ab. :/
    Ist das erste mal das ich GDI+ benutze, da ich bisher alles mit nicht-transparenten Grafiken gemacht habe. :p

  • GDI+ /WinAPI Absturz bei Exit

    • Sen
    • 16. März 2015 um 13:12

    Ich lasse mehrere .png's auf einer GUI zeichnen (als Ersatz für Buttons), der Code für die jeweiligen Buttons sieht so aus;

    Code
    ;Exit
    $h_Exit_Pic = GUICtrlCreatePic("", @DesktopWidth - 18, 2)
    $h_Exit_hImage = _GDIPlus_ImageLoadFromFile("Skin\Power.png")
    $h_Exit_Bmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($h_Exit_hImage)
    _WinAPI_DeleteObject(GUICtrlSendMsg($h_Exit_Pic, 0x0172, 0, $h_Exit_Bmp))

    Was auch wunderbar funktioniert, alles wird richtig angezeigt, ist klickbar, etc.
    In der Funktion "OnExit" die mit dem Button verlinkt ist passiert dann folgendes für jeden Button;

    Code
    _WinAPI_DeleteObject($h_Exit_hImage)
    _GDIPlus_ImageDispose($h_Exit_Bmp)

    Was allerdings beim aufrufen der OnExit() Funktion zu einem Fehler führt (keine Meldung, ein einfaches "hat einen Fehler festgestellt und musste beendet werden").
    Lasse ich die beiden Befehle weg, beendet es sich alles normal aber die Ressourcen werden eben nicht freigegeben.

    Irgendwer eine Idee wodurch der Absturz entsteht?

    Interessant wäre auch noch, ob es möglich ist unter so erstellte GDI+ images ein weiteres (nicht zwingend transparentes) Bild anzuzeigen.

  • Anzeige in Symbolleiste

    • Sen
    • 11. September 2012 um 23:35

    Das mit dem PopUp hatte ich auch schon im Sinn, aber das ganze müsste ja auch als richtige Symbolleiste gehen oder?
    Ich meine NetSpeed Monitor wird auch auch als "Symbolleiste" direkt mit Text auf der Taskleiste angezeigt :/

  • Anzeige in Symbolleiste

    • Sen
    • 11. September 2012 um 22:21

    Ist es mit AutoIt möglich Infos oder ähnliches in der Symbolleiste anzeigen zu lassen?
    Beispiel wäre der "NetspeedMonitor" der Download/Upload dort anzeigt, also praktisch nur Text was mir auch
    schon reichen würde. Ich arbeite an einem kleinen Add-On für Spotify und würde gern den derzeitigen Song dort anzeigen lassen,
    daher die Frage. :)

  • Bild Breite/Höhe darstellen auf einer Webseite

    • Sen
    • 13. Juli 2012 um 14:44

    Das Problem mit Javascript ist, das viele es ausgeschaltet haben :/
    Deswegen hatte ich auch das laden neue Beiträge (endloses scrollen) und co in jQuery geschrieben.
    Ich werd's jetzt erstmal mit Javascript machen & dann mal sehen ob sich das ganze nicht kompatibler umsetzen lässt.

    Edit:
    Funktioneren css befehle wie min-width und co nicht auf img tags?
    Das würde sonst auch eine Möglichkeit sein, oder?

  • Bild Breite/Höhe darstellen auf einer Webseite

    • Sen
    • 13. Juli 2012 um 13:19

    Ich habe nebenbei ein kleines Webportfolio über Tumblr laufen und arbeite gerade daran das Bilder in der Vorschau (380x280px) so dargestellt
    werden das man zwar den Inhalt erkennt, aber nicht das komplette Bild geladen wird. Tumblr bietet dazu die Möglichkeit das Bild direkt nur in 250px oder 500px breite
    zu laden. Im Moment funktioniert das ganze so:

    Das Bild wird in einem "Entry" div der für alle Beiträge gerendert wird mit folgendem code angezeigt:

    PHP
    <a href="{permalink}"><img src="{PhotoURL-500}" alt="{PhotoAlt}" height="280"></a>


    Der Div selbst hat über css seine größe, rahmen, überlappung für info & co.
    Das funktioniert auch bestens für Bilder die breiter als hoch sind und die Fläche der Vorschau wird bestens ausgefüllt.
    Ist das Bild aber höher als breit sind rechts & links leerplätze da sich das Bild nur der Höhe nach anpassen will. (Wie gewollt im code).
    Ist es möglich das Bild wenn höhe > breite ist anders darstellen zu lassen? (Am besten ohne Javascript, vlt JQuery?)

    Zum Verständniss:

    PHP
    // If width > height then
    <a href="{permalink}"><img src="{PhotoURL-500}" alt="{PhotoAlt}" height="280"></a>
    // else (height > width)
    <a href="{permalink}"><img src="{PhotoURL-500}" alt="{PhotoAlt}" width="380"></a>

    Edit:
    Falls jemand das ganze live sehen möchte: Portfolio

  • 7-Zip Archiv packen

    • Sen
    • 25. Januar 2011 um 12:51

    Einfach nur die DLL per FileInstall und ein DllRun bringt's üprigenz auch.
    So als kleiner Tipp. :P

  • Desktopsymbole schnell ein-/ausblenden

    • Sen
    • 27. Dezember 2010 um 21:25

    Falsch nicht, nein.

    Aber selbst Desktop verstecken + Alle Fenster minimieren wäre "sinnvoller"
    als alle offenen ordner mit Pfad & Position zu speichern, alle Programme die laufen
    in eine Liste zu schreiben, die Explorer.exe zu killen & wenn mans wieder anzeigen will alle
    Ordner wieder auszulesen, zu prüfen welche Programme beendet wurden, diese neu zu starten, etc. :rofl:

  • Desktopsymbole schnell ein-/ausblenden

    • Sen
    • 27. Dezember 2010 um 20:32
    Zitat von Pinguin94


    Wieso nicht? Das wiederherstellen ist ja kein Problem.

    Falsch.
    Explorer.exe killen zieht auch mit sich das alle Ordner etc geschlossen werden
    & sogar einige Programme (ViStart etc) ausgehen bzw nicht mehr in der taskleiste auftauchen.

  • Frage: AutoIT vs Keylogger. Keylogging durch AutoIT vorbeugen?

    • Sen
    • 26. Dezember 2010 um 13:34

    Auch Send kann man abfangen, wenn man weiß wie. :P

    Zweites Problem ist, du musst die Passwörter irgendwann trotzdem
    ins Script eintragen. Hast du nen Keylogger aufm PC zeichnet er diese schon dort auf :rofl:
    Müsstest also das Autoit Script auf einem anderen Rechner schreiben der sicher ist.

    100% sicher ist man zwar nie, aber was auch ziemlich hilft ist es in Games z.b.
    den Usernamen speichern zu lassen. So das man nurnoch das Passwort eingeben muss.
    Selbst der Keylogger schreibt dann nur das PW mit, hat aber deinen Usernamen nicht.

  • Verschlüssler/Entschlüssler (der ca. 1000ste) aber wollte das mal schreiben um mich mir Arrays auseinanderzusetzen

    • Sen
    • 23. Dezember 2010 um 18:43

    Die Progressbar sollte leicht sein.
    Durchgänge der Schleife und % berechnen.

  • TicTacToe Computer als gegner

    • Sen
    • 22. Dezember 2010 um 21:12

    Vlt hilfts.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Global $board[9][2]
    ; [x][0]= CtrlId
    ; [x][1]= flag (1=X 2=O)
    Global $p1, $p2, $p3

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

    Opt("GUIOnEventMode", 1)

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

    DirCreate(@TempDir & "/Tic Tac Toe/")
    FileInstall("Base.bmp", @TempDir & "/Tic Tac Toe/Back.bmp", 1)

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

    $Form = GUICreate("Tic Tac Toe - Bot", 425, 425, -1, -1)
    $Back = GUICtrlCreatePic(@TempDir & "/Tic Tac Toe/Back.bmp", 0, 0, 425, 425)
    GUICtrlSetState($Back, $GUI_DISABLE)

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

    $board[0][0] = GUICtrlCreateButton("", 40, 40, 100, 100)
    $board[1][0] = GUICtrlCreateButton("", 162, 40, 100, 100)
    $board[2][0] = GUICtrlCreateButton("", 284, 40, 100, 100)

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

    $board[3][0] = GUICtrlCreateButton("", 40, 162, 100, 100)
    $board[4][0] = GUICtrlCreateButton("", 162, 162, 100, 100)
    $board[5][0] = GUICtrlCreateButton("", 284, 162, 100, 100)

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

    $board[6][0] = GUICtrlCreateButton("", 40, 284, 100, 100)
    $board[7][0] = GUICtrlCreateButton("", 162, 284, 100, 100)
    $board[8][0] = GUICtrlCreateButton("", 284, 284, 100, 100)

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

    For $i = 0 To 8
    GUICtrlSetOnEvent($board[$i][0], "_PlayerTurn")
    Next

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "close")
    GUISetState()

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

    Do
    Sleep(10)
    Until False

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

    Func _PlayerTurn()
    For $i = 0 To UBound($board) - 1
    If @GUI_CtrlId = $board[$i][0] And $board[$i][1] = 0 Then
    GUICtrlSetData(@GUI_CtrlId, "X")
    $board[$i][1] = 1
    $result = _CheckWin($board, 1)
    If $result Then
    _Win(1)
    Return
    EndIf
    _BotTurn()
    Return
    EndIf
    Next

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

    EndFunc ;==>_PlayerTurn

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

    Func _BotTurn()
    ;-> Check Middle
    If $board[4][1] = 0 Then
    $board[4][1] = 2
    GUICtrlSetData($board[4][0], "O")
    Return
    EndIf

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

    ;-> Check Winchance
    For $i = 0 To UBound($board) - 1
    If $board[$i][1] = 0 Then
    $board[$i][1] = 2
    If _CheckWin($board, 2) Then
    GUICtrlSetData($board[$i][0], "O")
    _Win(2)
    Return
    EndIf
    $board[$i][1] = 0
    EndIf
    Next

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

    ;-> Check Blockchance
    For $i = 0 To UBound($board) - 1
    If $board[$i][1] = 0 Then
    $board[$i][1] = 1
    If _CheckWin($board, 1) Then
    GUICtrlSetData($board[$i][0], "O")
    $board[$i][1] = 2
    Return
    EndIf
    $board[$i][1] = 0
    EndIf
    Next

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

    ;-> Check Corner
    If $board[0][1] = "0" Then
    $board[0][1] = 2
    GUICtrlSetData($board[0][0], "O")
    Return
    ElseIf $board[2][1] = "0" Then
    $board[2][1] = 2
    GUICtrlSetData($board[2][0], "O")
    Return
    ElseIf $board[6][1] = "0" Then
    $board[6][1] = 2
    GUICtrlSetData($board[6][0], "O")
    Return
    ElseIf $board[8][1] = "0" Then
    $board[8][1] = 2
    GUICtrlSetData($board[8][0], "O")
    Return
    EndIf

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

    ;-> Random Set
    $inc = 0
    Do
    $t = Random(0, 8, 1)
    $inc += 1
    If $inc > 100 Then
    _Win(0)
    Return
    EndIf

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

    Until $board[$t][1] = 0
    GUICtrlSetData($board[$t][0], "O")
    $board[$t][1] = 2
    EndFunc ;==>_BotTurn

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

    Func _CheckWin($data, $player)
    If $player = 1 Then
    $product = 1
    Else
    $product = 8
    EndIf

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

    If $data[0][1] * $data[1][1] * $data[2][1] = $product Then Return True
    If $data[3][1] * $data[4][1] * $data[5][1] = $product Then Return True
    If $data[6][1] * $data[7][1] * $data[8][1] = $product Then Return True
    If $data[0][1] * $data[3][1] * $data[6][1] = $product Then Return True
    If $data[1][1] * $data[4][1] * $data[7][1] = $product Then Return True
    If $data[2][1] * $data[5][1] * $data[8][1] = $product Then Return True
    If $data[0][1] * $data[4][1] * $data[8][1] = $product Then Return True
    If $data[2][1] * $data[4][1] * $data[6][1] = $product Then Return True
    EndFunc ;==>_CheckWin

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

    Func close()
    MsgBox(0, "Results:", "Player: " & $p1 & @CRLF & "Bot: " & $p2 & @CRLF & "Draws: " & $p3)
    Exit
    EndFunc ;==>close

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

    Func _Win($who)
    If $who = 1 Then
    MsgBox(0, "Victory", "You won!")
    $p1 = $p1 + 1
    ElseIf $who = 2 Then
    MsgBox(0, "Fail", "You lost...")
    $p2 = $p2 + 1
    Else
    MsgBox(0, "Draw", "Nobody won")
    $p3 = $p3 + 1
    EndIf
    For $i = 0 To UBound($board) - 1
    $board[$i][1] = 0
    GUICtrlSetData($board[$i][0], "")
    Next
    EndFunc ;==>_Win

    [/autoit]
  • Mousemove beenden/pausieren ohne Exit

    • Sen
    • 21. Dezember 2010 um 21:13

    Guck dir mal den Befehl ExitLoop an :P

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™