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

Beiträge von L3viathan

  • Videos in einem Gui

    • L3viathan
    • 18. Februar 2011 um 00:20

    Wenns dann noch nicht geht, tippe ich auf fehlenden Codec (also nicht im System installiert).
    Müsste aber eigentlich gehen, solange du es im Windows Media Player öffnen kannst.

  • Videos in einem Gui

    • L3viathan
    • 17. Februar 2011 um 23:29

    Kristallkugel geht grad nicht.

    Code?

    edit:

    Zitat

    was willst mir mit ner Kristallkugel sagen?
    und was fürn code`?

    Ich übersetze:
    Was hast du probiert? Zeig mir deinen Versuch!

    Und bitte Antworten nicht per PM, sondern hier.

  • Jeopardy! (beta)

    • L3viathan
    • 17. Februar 2011 um 23:03

    Hallo allerseits!
    Viele kennen bestimmt die bekannte Quizshow Jeopardy!, die zumindest mir hauptsächlich durch das alljährliche Hacker-Jeopardy des CCC bekannt ist.
    Ich habe das also mal in AutoIt nachgebaut, man kann es dann (wenn es fertig ist) als Partyspiel oder so verwenden.

    Es ist soweit funktionsfähig, nur leider fehlen noch Funktionen wie Double-Jeopardy-Felder. Und da ich die Hardware dazu noch nicht habe, sind die drei "Buzzer" vorerst auf den Tasten 1, 2 und 3 definiert.

    Ich empfehle euch, das RAR-File herunterzuladen, da dort auch Bilder und Sounds enthalten sind. (Hinweis: Etwa 10 Sekunden nach Programmstart laut "This... is Jeopardy!" rufen)

    Funktionen&Spielablauf


    Nach einem kleinen Intro geht es los: Die Usernamen werden vergeben, wenn ihr nur 2 User braucht, einfach beim dritten Mal ESC drücken.
    Dem Host steht es dann frei, die Person zu bestimmen, die das erste Feld auswählen darf (5 Kategorien à 5 Schwierigkeitsstufen). Dabei werden die Kategorien und Fragen aus der selbsterklärenden QDB.ini ausgelesen, man kann also die Thematik (hier: AutoIt & Co.) den Gegebenheiten anpassen.
    So der entsprechende Button geklickt wurde, erscheint die Antwort unten im Benachrichtigungsbereich, der Host liest die Frage währenddessen vor. Nun können die Spieler die Tasten drücken und mit einer Frage antworten (z.B. "Das Wahrzeichen von Paris." - "Was ist der Eiffelturm?"). Der Host entscheided dann mittels Ja/Nein-MsgBox, ob die Frage richtig beantwortet wurde. Wenn nein, ist der nächste Spieler an der Reihe (das System "merkt" sich die Reihenfolge, in welcher die Spieler auf die Buzzer gehauen haben).
    Wenn keiner antworten will, drückt der Host die Leertaste (der Button wird so auch deaktiviert).
    Wenn alle Felder beantwortet wurden, wird der/die Sieger bekanntgegeben.

    Die Spielstände werden laufend gespeichert. Also wirklich laufend, nach jeder Aktion.
    Dem Host steht eine Möglichkeit zur "Manipulation" des Spiels zur Verfügung, mit Shift-0 erhellt er eine Eingabezeile, mit der er Befehle wie Beenden und Spielstand löschen ("x"), Neustart und Spielstand verwerfen ("r"), Punkte jetzt auswerten und Spiel beenden ("e") sowie die Reaktivierung einzelner Buttons ("a$x$y", $x=Spalten 0-4, $y=Zeilen 0-4), die Manipulation der Punkte ("uc$x$y", $x=Spieler 0-2, $y=Punkte) sowie die Änderung des Usernames ("un$x$y", $x = Spieler 0-2, $y = neuer Name) zur Verfügung.

    Skriptvorschau
    [autoit]


    ;~ #include <WindowsConstants.au3>

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

    GUICreate("Jeopardy", @DesktopWidth, @DesktopHeight, 0, 0, 0x80000000)
    ;Berechnungen&Definitionen:
    $ContinueGame = False
    $sQDB = "QDB.ini"
    $sAutoSave = "autosave.ini"
    $sBGMusic = "10minbg.mp3"
    If FileExists($sAutoSave) Then $ContinueGame = True
    $xborder = 10; border
    $xwidth = @DesktopWidth - 2 * $xborder
    $yborder = 10; border
    $ywidth = @DesktopHeight - 2 * $xborder

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

    ;GUI-Aufbau:

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

    ;Developer/Host-Tool:
    HotKeySet("+0","_AdminPanel")
    ;--

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

    Dim $buttons[5][5]
    Dim $captions[5]
    Dim $names[3]
    Dim $credits[3] = [0, 0, 0]
    Dim $username[3] = ["User1", "User2", "User3"]
    Dim $buttonsleft = 25

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

    For $x = 0 To 4
    $captions[$x] = GUICtrlCreateLabel("Kategorie" & $x, $xborder + $x * ($xwidth / 5), $yborder, (($xwidth - 20) / 5), 50, 0x01)
    GUICtrlSetFont(-1, 16)
    For $y = 0 To 4
    ;~ $buttons[$x][$y] = GUICtrlCreateButton($y+1 & "00",$xborder+$x*($xwidth/5),$yborder+50+$y*120,(($xwidth-20)/5),100)
    $buttons[$x][$y] = GUICtrlCreateButton($y + 1 & "00", $xborder + $x * ($xwidth / 5), $yborder + 50 + $y * ($ywidth / 8), (($xwidth - 20) / 5), 100)
    GUICtrlSetFont(-1, 16)
    Next
    Next

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

    For $x = 0 To 2
    $names[$x] = GUICtrlCreateLabel("Username: 0", $xborder + $x * ($xwidth / 3), $yborder + 100 + 5 * ($ywidth / 8), (($xwidth - 20) / 3), 100, 0x01)
    GUICtrlSetFont(-1, 20)
    Next
    GUICtrlSetColor($names[0], 0xff0000)
    GUICtrlSetColor($names[1], 0x00ff00)
    GUICtrlSetColor($names[2], 0x0000ff)

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

    ;Notify-feld:
    $oNotify = GUICtrlCreateLabel("Willkommen!", 0, $yborder + 100 + 6 * ($ywidth / 8), @DesktopWidth, 100, 0x01)
    GUICtrlSetBkColor(-1, 0xaaaaaa)
    GUICtrlSetFont(-1, 26)

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

    $player1 = GUICtrlCreateDummy()
    $player2 = GUICtrlCreateDummy()
    $player3 = GUICtrlCreateDummy()
    $host = GUICtrlCreateDummy()
    Dim $accel[4][2] = [["1", $player1],["2", $player2],["3", $player3],["{SPACE}", $host]]
    GUISetAccelerators($accel)
    _Highlight(0, 0)
    _Highlight(1, 0)
    _Highlight(2, 0)
    ;GUI-Aufbau Ende

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

    GUISetState()

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

    _LoadCaptions($captions)

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

    If $ContinueGame Then
    _LoadSaveFile()
    Else
    SoundPlay("3mintheme.mp3",0)
    _ThisIsJeopardy()
    _AskForNames()
    EndIf
    _updateCredits()
    SoundPlay("10minbg.mp3",0)
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    Case Else
    For $x = 0 To 4
    For $y = 0 To 4
    If $msg = $buttons[$x][$y] Then _ClickButton($x, $y)
    Next
    Next
    EndSwitch
    WEnd

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

    Func _Notify($sText = "", $iType = 0)
    ;iType: 0 = normal, 1 = Info, 2 = Error
    GUICtrlSetData($oNotify, $sText)
    Switch $iType
    Case 1
    GUICtrlSetColor($oNotify, 0x0000ff)
    Case 2
    GUICtrlSetColor($oNotify, 0xff0000)
    Case Else
    GUICtrlSetColor($oNotify, 0x000000)
    EndSwitch
    EndFunc ;==>_Notify
    Func _LoadCaptions(ByRef $captions)
    $sections = IniReadSectionNames($sQDB)
    For $i = 1 To $sections[0]
    GUICtrlSetData($captions[$i - 1], $sections[$i])
    Next
    EndFunc ;==>_LoadCaptions
    Func _ClickButton($x, $y)
    Local $text = IniRead($sQDB, GUICtrlRead($captions[$x]), $y, "")
    _Notify($text, 1)
    While 1
    Switch GUIGetMsg()
    Case $player1
    $ret = _Play(0, $y)
    If $ret Then ExitLoop
    Case $player2
    $ret = _Play(1, $y)
    If $ret Then ExitLoop
    Case $player3
    $ret = _Play(2, $y)
    If $ret Then ExitLoop
    Case $host
    ExitLoop
    EndSwitch
    WEnd
    GUICtrlSetState($buttons[$x][$y], 128)
    $buttonsleft -= 1
    IniWrite($sAutoSave, "buttons", $x & $y, "1")
    If $buttonsleft = 0 Then _FinishGame()
    EndFunc ;==>_ClickButton
    Func _Highlight($user, $set = 1)
    Switch $set
    Case 0
    GUICtrlSetBkColor($names[$user], 0xffffff)
    Case Else
    GUICtrlSetBkColor($names[$user], 0xaaaaaa)
    EndSwitch
    EndFunc ;==>_Highlight

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

    Func _Play($who, $y)
    _Highlight($who, 1)
    $res = MsgBox(4, "Jeopardy", "Gewonnen?")
    Switch $res
    Case 6;YES
    $credits[$who] += GUICtrlRead($buttons[0][$y])
    _Notify($username[$who] & " hat " & GUICtrlRead($buttons[0][$y]) & " Punkte gewonnen!")
    Case 7;NO
    $credits[$who] -= GUICtrlRead($buttons[0][$y])
    _Notify($username[$who] & " hat " & GUICtrlRead($buttons[0][$y]) & " Punkte verloren!", 2)
    EndSwitch
    _updateCredits()
    _Highlight($who, 0)
    If $res = 6 Then Return True
    Return False
    EndFunc ;==>_Play

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

    Func _updateCredits()
    For $i = 0 To 2
    GUICtrlSetData($names[$i], $username[$i] & ": " & $credits[$i])
    IniWrite($sAutoSave, "credits", $i, $credits[$i])
    Next
    EndFunc ;==>_updateCredits
    Func _LoadSaveFile()
    For $i = 0 To 2
    $credits[$i] = IniRead($sAutoSave, "credits", $i, 0)
    $username[$i] = IniRead($sAutoSave, "usernames", $i, "User" & $i+1)
    Next
    For $x = 0 To 4
    For $y = 0 To 4
    If IniRead($sAutoSave, "buttons", $x & $y, 0) = 1 Then
    GUICtrlSetState($buttons[$x][$y], 128)
    $buttonsleft -= 1
    EndIf
    Next
    Next
    If $buttonsleft < 1 Then _Reset()
    EndFunc ;==>_LoadSaveFile
    Func _FinishGame()
    If $credits[0] > $credits[1] And $credits[0] > $credits[2] Then $w=0
    If $credits[1] > $credits[0] And $credits[1] > $credits[2] Then $w=1
    If $credits[2] > $credits[1] And $credits[2] > $credits[0] Then $w=2
    If $credits[0] = $credits[1] Or $credits[2] = $credits[1] Or $credits[0] = $credits[2] Then
    If $credits[0] = $credits[1] And $credits[1] = $credits[2] Then
    _Notify("Alle gewinnen! (Jeweils mit " & $credits[0] & " Punkten)",1)
    ElseIf $credits[0] = $credits[1] Then
    _Notify($username[0] & " und " & $username[1] & " teilen sich den Sieg mit jeweils " & $credits[0] & " Punkten.",1)
    ElseIf $credits[0] = $credits[2] Then
    _Notify($username[0] & " und " & $username[2] & " teilen sich den Sieg mit jeweils " & $credits[0] & " Punkten.",1)
    Else
    _Notify($username[2] & " und " & $username[1] & " teilen sich den Sieg mit jeweils " & $credits[1] & " Punkten.",1)
    EndIf
    Else
    _Notify($username[$w] & " gewinnt mit " & $credits[$w] & " Punkten!",1)
    EndIf
    EndFunc
    Func _Reset()
    FileDelete($sAutoSave)
    Exit ShellExecute(@ScriptFullPath)
    EndFunc
    Func _AskForNames()
    For $i = 0 To 2
    $answer = InputBox("Jeopardy","User " & $i+1 & ", wie möchten Sie heißen?","User" & $i+1)
    $username[$i] = $answer
    IniWrite($sAutoSave,"usernames",$i,$answer)
    Next
    EndFunc
    Func _AdminPanel()
    $cmd=InputBox("Jeopardy","Befehl?")
    Select
    Case $cmd = "r"
    _Reset()
    Case $cmd = "x"
    FileDelete($sAutoSave)
    Exit
    Case $cmd = "e"
    $buttonsleft = 0
    _FinishGame()
    Case StringInStr($cmd,"uc") = 1
    $credits[StringTrimLeft(StringLeft($cmd,3),2)] = StringTrimLeft($cmd,3)
    IniWrite($sAutoSave,"credits",StringTrimLeft(StringLeft($cmd,3),2),StringTrimLeft($cmd,3))
    Case StringInStr($cmd,"un") = 1
    $username[StringTrimLeft(StringLeft($cmd,3),2)] = StringTrimLeft($cmd,3)
    IniWrite($sAutoSave,"usernames",StringTrimLeft(StringLeft($cmd,3),2),StringTrimLeft($cmd,3))
    Case StringInStr($cmd,"a") = 1
    GUICtrlSetState($buttons[StringTrimLeft(StringLeft($cmd,2),1)][StringRight($cmd,1)],64)
    EndSelect
    _updateCredits()
    EndFunc
    Func _ThisIsJeopardy()
    $gui3 = GUICreate("This is BG",@DesktopWidth,@DesktopHeight,0,0,0x80000000,0x00000080)
    GUISetBkColor(0x000000)
    GUISetState()
    $gui2 = GUICreate("This is Jeopardy!",@DesktopWidth,@DesktopHeight,0,0,0x80000000,0x00000080)
    GUISetBkColor(0x000000)
    GUICtrlCreatePic("jeopardy_logo.jpg",@DesktopWidth/2-221,@DesktopHeight/2-63,443,127)
    WinSetTrans("This is Jeopardy!","",0)
    GUISetState(@SW_SHOW,$gui2)
    For $i=0 To 255 Step 2
    Sleep(50)
    WinSetTrans("This is Jeopardy!","",$i)
    Next
    GUIDelete($gui3)
    Sleep(3000)
    For $i=255 To 0 Step -5
    Sleep(80)
    WinSetTrans("This is Jeopardy!","",$i)
    Next
    GUIDelete($gui2)
    EndFunc

    [/autoit]

    Hinweis: Die Sounds sind von YouTube gerippt, dürfte kein Problem sein, oder?

    Dateien

    Jeopardy.rar 10,08 MB – 427 Downloads
  • Problem mit InetGet()

    • L3viathan
    • 15. Februar 2011 um 19:59

    Was steht denn unter Fehlercode 13?

  • Endloser Fortschrittsbalken

    • L3viathan
    • 15. Februar 2011 um 18:30

    Geht nicht. Du kannst di Richtung des Marquee-Balken nicht beeinflussen.

  • MySetup

    • L3viathan
    • 15. Februar 2011 um 18:13

    Abgesehen davon, dass das:

    Zitat

    Auch könnten Benutzer an den ini Dateien rumspielen

    bewuust so ist:

    Der Thread ist anderthalb Jahre alt. Seitdem gab es ein paar neue AutoIt-Versionen, daher vermutlich der Fehler.
    Wegen deinen verlangten Funktionen:

    Ich stelle normalerweise hier nur Sachen hoch, die ich selber brauche. Offenbar brauchte ich das, was du brauchst, nicht.

    Es gibt aber haufenweise andere (neuere, bessere) Setupskripte hier im Forum, einfach mal genauer suchen ;)

  • Code verkürzen (StringReplace + array??)

    • L3viathan
    • 13. Februar 2011 um 18:22

    Ohne den Code getestet zu haben: Vermutlich musst du erstens die Anführungszeichen um Chr(37) entfernen, zweitens das Array zweidimensional erstellen.
    Momentan ist es eindimensional. Deshalb gibt es auch Fehler, wenn du versuchst auf $aRepl[1][$i] zuzugreifen.
    Also dann auch das Array mit Local $aRepl[2] definieren.

  • Intervalle (Musik) berechnen lassen

    • L3viathan
    • 12. Februar 2011 um 14:33

    Schöne Sache, das hätte ich damals bei meinem Akkordprogramm brauchen können.

    Wenn du nichts zu tun hast, dann mach doch das daraus, was ich damals versucht hatte: Ein Tool zum Transponieren.

  • Maus-O-Meter wie viel Meter hat die Maus zurückgelegt? | Jetzt mit Speicherfunktion

    • L3viathan
    • 12. Februar 2011 um 12:57

    Kleine Kritik: Du verwirfst ein bisschen Weg. Dadurch, dass dass du immer wieder eine neue Startmessung machst.
    Macht lieber pro Schleifendurchgang nur eine Messung und vergleiche mit dem letzten Wert.

  • Gleichungen lösen

    • L3viathan
    • 12. Februar 2011 um 12:40

    Naja, GANZ billig kann man die Gleichung so lösen:

    [autoit]


    $gleichung="x+6 == 0"
    For $i=-1000 To 1000 Step 1
    If(Execute(StringReplace($gleichung,"x",$i/100))) Then MsgBox(64,"Lösung","x ist " & $i/100)
    ConsoleWrite(Execute(StringReplace($gleichung,"x",$i/100)) & @CRLF)
    ConsoleWrite(StringReplace($gleichung,"x",$i/100) & @CRLF)
    Next

    [/autoit]
  • Win XP nochmal installieren

    • L3viathan
    • 12. Februar 2011 um 00:24

    Das mit der Großzügigkeit ist nicht erst seit Vista/7 so. Schon vor Jahren erinnere ich mich, bei MS angerufen zu haben, und ohne einen Nachweis einen neuen Produkt-Key bekam... (war aber wirklich, ehrlich, legal :) )

  • "Schrift"-Problem auf AutoIt.de

    • L3viathan
    • 10. Februar 2011 um 20:56

    ClearType? Also Schriftenglättungseinstellungen.

  • RSA Verschlüsselung Zeichenlänge der Primzahlen

    • L3viathan
    • 9. Februar 2011 um 13:06

    Kommt drauf an.
    Wenn ich das richtig verstehe, arbeitet eine 128-bit-Verschlüsselung mit Primzahlen der Bit-Länge 128, also Zahlen bis 2^128 (38-stellig).
    Eine 4096-Bit-Verschlüsselung (das stärkste, dass mir je untergekommen ist), arbeitet daher mit bis zu 1233-stelligen Zahlen.

  • mathematik frage

    • L3viathan
    • 6. Februar 2011 um 13:34

    Fresapore: Stimmt! (Mathe ist lange her)

    Aber wir haben ja jetzt AspirinJunkies Lösung.

  • mathematik frage

    • L3viathan
    • 6. Februar 2011 um 11:30

    Wenn wir das mal von autoit unabhängig sehen, wäre eine Vektorgleichung am einfachsten. Dann setzt du den Betrag des Vektors mit 1 gleich, und das Ergebnis müsste erscheinen ;)

    Aber hast du deine Lösung mal ausprobiert? Bei mir kommt je Wurzel 2 raus, was doch stimmen müsste... du musst allerdings noch die x- und y-Werte des ersten Punkts addieren.

    edit: Hier als UDF umgeschrieben:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    ;; Bewegung des Punktes 3 in einer Sekunde auf der Schrägen:
    $array=_Math_GetXYFromPointsandLength(1,1,3,3,1)
    _ArrayDisplay($array)
    Func _Math_GetXYFromPointsandLength($X1,$Y1,$X2,$Y2,$Schritt)
    $h = Abs($X1-$X2)
    $b = Abs($Y1-$Y2)

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

    $LaengeDia = Sqrt($h^2 + $b^2)

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

    $Prozent = ($LaengeDia/100)*$Schritt

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

    $x3 = (100/$h)*$Prozent + $x1
    $y3 = (100/$b)*$Prozent + $y1
    Local $return[2] = [$x3,$y3]
    Return $return
    EndFunc

    [/autoit]
  • Script schließt sich sofort [REOPENED]

    • L3viathan
    • 4. Februar 2011 um 18:55

    Ich würde sagen, du kannst die Leertaste nicht doppelt verwenden. Soll heißen: Du brauchst eine andere Taste, die du gedrückt hältst (oder zweimal drückst - zum Starten und zum Beenden), während das Skript dann die Leertaste wiederholt drückt.

  • Script Fragen

    • L3viathan
    • 3. Februar 2011 um 21:09

    Das erste Skript sieht richtig aus.
    Beim zweiten musst du STdYControlServer durch WarnService ersetzen.

  • Script Fragen

    • L3viathan
    • 3. Februar 2011 um 20:48

    Das schon, aber nicht das:

    [autoit]


    Func _CreateService($sComputerName, $sServiceName, $sDisplayName, $sBinaryPath, $sServiceUser = "LocalSystem", $sPassword = "", $nServiceType = 0x00000010, $nStartType = 0x00000002, $nErrorType = 0x00000001, $nDesiredAccess = 0x000f01ff, $sLoadOrderGroup = "")

    [/autoit]
  • Script Fragen

    • L3viathan
    • 3. Februar 2011 um 20:18

    :D made my day.

    Ne, du darfst die Funktion nicht verändern. Du musst einfach beim Funktionsaufruf die passenden Daten eintragen:

    [autoit]


    _CreateService("ZFBOCS001.falta.local", "WarnService", "WarnService", "C:\Users\offlimits\Desktop\Symantec Backup Exec.exe", "LocalSystem", "",$SERVICE_WIN32_OWN_PROCESS + $SERVICE_INTERACTIVE_PROCESS, $SERVICE_AUTO_START)

    [/autoit]
  • Script schließt sich sofort [REOPENED]

    • L3viathan
    • 3. Februar 2011 um 20:14

    [autoit]

    Send("{SPACE DOWN}")

    [/autoit]


    Edit: Bullshit.

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™