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

Beiträge von XovoxKingdom

  • Im Input Enter anwenden

    • XovoxKingdom
    • 29. Juni 2010 um 00:12

    Es ist sehr simpel (geht auch im OnEventModus), aber hier ist erstmal ein Beispiel im GuiGetMsgmode:

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Enter im Inputfeld", 215, 100)
    $Label1 = GUICtrlCreateLabel("EnterCounter:", 8, 8, 69, 17)
    $Label2 = GUICtrlCreateLabel("0", 96, 8, 34, 17, $SS_CENTER)
    $Input1 = GUICtrlCreateInput("Tippe irgendwas und danach Enter", 8, 40, 193, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
    $Label3 = GUICtrlCreateLabel("Tippe EXIT und Enter -> Beenden", 16, 72, 165, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Input1
    If GUICtrlRead($Input1) = "Exit" Then Exit
    GUICtrlSetData($Input1,"")
    GUICtrlSetData($Label2,Execute(GUICtrlRead($Label2)+1))

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

    EndSwitch
    WEnd

    [/autoit]
  • Mausgeschwindigkeit erhöhen?

    • XovoxKingdom
    • 28. Juni 2010 um 23:44

    Hi Fischi84,
    die Lösung die ich mir ausgedacht habe (und die zu funktionieren scheint)
    basiert auf der Berechnung von "Zwischenpunkten" zwischen den Koordinaten
    des Start- und des Zielpunktes. Diese Zwischenpunkte werden nun nacheinander
    mit einem kleinen Sleep() anvisiert und können somit die Mausgeschwindigkeit beeinflussen.
    (Mehr Zwischenpunkte und/oder größere Sleepzeit = Langsamere Mausbewegung)

    Ich habe 2 Beispiele (1. ist zur Erklärung - 2. ist zur Problemlösung) mit denen du gerne
    experimentieren kannst!
    Falls Fragen aufkommen, hoffe ich sie beantworten zu können (bin recht bald unterwegs -> off)
    oder, dass jemand aus dem Forum sie klären kann :)

    Den Quellcode möchte ich nun nach all dem "Gefasel" nicht vorenthalten :D

    Spoiler anzeigen
    [autoit]

    #cs
    P(a,b)
    S(c,d)

    ^PS = (c-a, d-b) ;PS ist der Richtungsvektor von der Geraden die zwischen P und S liegt!

    Gerade = ^PS * x + P ; x ist der Faktor (bei 1/2 ist es genau die Hälfte zwischen den Punkten P und S)!

    Fehlerbehandlung ist nicht implementiert, da es sonst zu unübersichtlich werden würde!

    by XovoxKingdom :)
    #ce

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

    Func GetPoint($a, $b)
    Dim $c[2]
    $c[0] = $b[0] - $a[0]
    $c[1] = $b[1] - $a[1]
    Return $c
    EndFunc ;==>GetPoint

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

    Func Beispiel1();Anlehnung an Formel (oben)

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

    Dim $P[2];Punkt P
    Dim $S[2];Punkt S

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

    Dim $Q[2]; Punkt der Berechnung (liegt im Beispiel genau in der Hälfte - also zwischen P und S)

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

    $P[0] = 0;Initialisierung von dem Punkt P
    $P[1] = 0

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

    $S[0] = 100;Initialisierung von dem Punkt S
    $S[1] = 100

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

    $PS = GetPoint($P, $S);In PS wird der Richtungsvektor gespeichert

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

    $Q[0] = $PS[0] / 2 + $P[0];Dem Punkt Q (zwischen P und S) wird nun ein Wert zugewiesen
    $Q[1] = $PS[1] / 2 + $P[1];Die /2 sorgt für die Hälfte der Distanz zwischen P und S

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

    MouseMove($P[0], $P[1])
    MsgBox(0, "Position", MouseGetPos(0) & ", " & MouseGetPos(1), 1);Punkt P sollte angezeigt werden

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

    Sleep(500)

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

    MouseMove($S[0], $S[1])
    MsgBox(0, "Position", MouseGetPos(0) & ", " & MouseGetPos(1), 1);Punkt S sollte angezeigt werden

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

    Sleep(500)

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

    MouseMove($Q[0], $Q[1])
    MsgBox(0, "Position", MouseGetPos(0) & ", " & MouseGetPos(1), 1);Der Punkt zwischen P und S sollte angezeigt werden (Punkt Q)

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

    EndFunc ;==>Beispiel1

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

    ;:::Anwendungsbeispiel::::
    Func Beispiel2()
    Dim $x[2], $y[2], $z[2]
    $max = 30;je höher der Wert, desto öfter wird die Maus bewegt -> langsamer

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

    $x[0] = 100
    $x[1] = 100

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

    $y[0] = 200
    $y[1] = 500

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

    $w = GetPoint($x, $y)

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

    For $i = 1 To $max
    $z[0] = $w[0] / $max * $i + $x[0]
    $z[1] = $w[1] / $max * $i + $x[1]
    MouseMove(Round($z[0], 0), Round($z[1], 0), 1)
    Sleep(15); Diese Zeit kannst du beliebig anpassen
    Next
    EndFunc ;==>Beispiel2

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

    MsgBox(0, "Beispiel 1", "Beispiel 1 beginnt nun!", 2)
    Sleep(1000)
    Beispiel1()
    MsgBox(0, "Beispiel 1", "Beispiel 1 ist nun abgeschlossen!", 2)

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

    Sleep(2000)

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

    MsgBox(0, "Beispiel 2", "Beispiel 2 beginnt nun!", 2)
    Sleep(1000)
    Beispiel2()
    MsgBox(0, "Beispiel 2", "Beispiel 2 ist nun abgeschlossen!", 2)

    [/autoit]
  • Chatkürzelübersetzer

    • XovoxKingdom
    • 14. Juni 2010 um 17:26

    beim Codeüberfliegen sind mir ein paar Ungereimtheiten aufgefallen:

    [autoit]

    IniWrite("data.chat", "2L8", "2F4english", "Too Late")
    IniWrite("data.chat", "2L8", "2F4german", "Zu spät")

    [/autoit]


    muss angepasst werden.

    [autoit]

    IniWrite("data.chat", "BF", "BFenglish", "----")
    IniWrite("data.chat", "BF", "BFgerman", "Beste Freunde")

    [/autoit]


    Kann mit Best Friends übersetzt werden!
    Zusätzlich wäre eine Gleichmäßigkeit gut, indem alle englischen
    Begriffe groß geschrieben werden.

    Sry, habs verallgemeinert...
    War nur eine Unstimmigkeit :rolleyes:

    Zitat

    IniWrite("data.chat", "AFK", "AFKenglish", "Away from Keyboard")


    Trotz der kleinen Kritik muss ich sagen, dass ich die Idee ganz interessant finde ;) !

  • Sprache ändern ohne neustart des Scripts

    • XovoxKingdom
    • 10. Juni 2010 um 11:53

    Es ist recht simpel die Sprache in ein Array einzulesen/einzuspeichern und dann
    auf Wunsch zu ändern.
    Beispiel: Alle 3 Sekunden soll die Sprache wechseln und/oder auf Buttondruck

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Dim $lang[4]

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

    $lang[0] = "Hallo "
    $lang[1] = "Welt"
    $lang[2] = "Hello "
    $lang[3] = "World"

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

    Global $status = 0, $time = TimerInit()

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

    $Form1 = GUICreate("Change", 185, 85, 192, 124)
    $Button1 = GUICtrlCreateButton("Press Me", 32, 40, 97, 25, $WS_GROUP)
    $Label1 = GUICtrlCreateLabel($lang[2] & $lang[3], 8, 8, 148, 17)
    GUISetState(@SW_SHOW)

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

    While 1
    If TimerDiff($time) > 3000 Then
    changelang()
    $time = TimerInit()
    EndIf
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    changelang()

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

    EndSwitch
    WEnd

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

    Func changelang()
    $status = Not $status
    If $status = 0 Then
    WinSetTitle($Form1, "", "Wechsel")
    GUICtrlSetData($Label1, $lang[0] & $lang[1])
    GUICtrlSetData($Button1, "Drück Mich")
    Else
    WinSetTitle($Form1, "", "Change")
    GUICtrlSetData($Label1, $lang[2] & $lang[3])
    GUICtrlSetData($Button1, "Press Me")
    EndIf
    EndFunc ;==>changelang

    [/autoit]
  • Range um Variable

    • XovoxKingdom
    • 28. Mai 2010 um 20:01

    Alternativ kannst du auch das folgende angucken:

    [autoit]

    For $i=-2 To 2 Step 0.5
    $a=0
    $a+=$i
    If Abs($a) <=1 Then MsgBox(0,"Bedingung","Erfüllt!"&@CRLF&$a)
    Next

    [/autoit]
  • Real Dektop Tools [Leute gesucht & in bearbeitung]

    • XovoxKingdom
    • 23. Mai 2010 um 11:48

    Ich habe eine Funktion zum Festankern an den Bildschirmrand geschrieben:
    Funktion: Dockt an alle 4 Seiten eines Bildschirms an.
    Mögliche Fehlerquellen: Bei mehreren Bildschirmen (Es muss die Größe angepasst werden)
    Falls jemand die Funktion hat bitte posten, dann editiere ich die Funktion!
    EDIT: Es ist noch keine Fehlerbehandlung hinzugefügt, da ich es (noch) nicht als notwendig ansah.
    Im Zuge der Bildschirmgrößeanpassung werde ich es hinzufügen!

    Hier die Funktion mit Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Move Me To The Borders", 296, 214, 192, 124)
    GUISetState(@SW_SHOW)

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

    AdlibRegister("Check", 500)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func Check()
    Festankern($Form1)
    EndFunc ;==>Check

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

    Func Festankern($hwnd, $x = 50, $y = 50, $speed = 5)
    Local $a = WinGetPos($hwnd), $b = @DesktopWidth, $c = @DesktopHeight, $d = 0, $New
    $New = $a
    Select
    Case $a[0] < $x
    $New[0] = 0
    Case $a[0] + $a[2] > $b - $x
    $New[0] = $b - $a[2]
    EndSelect
    Select
    Case $a[1] < $x
    $New[1] = 0
    Case $a[1] + $a[3] > $c - $y
    $New[1] = $c - $a[3]
    EndSelect
    If $New[0] <> $a[0] Or $New[1] <> $a[1] Then
    WinMove($hwnd, "", $New[0], $New[1], $New[2], $New[3], $speed)
    EndIf
    EndFunc ;==>Festankern

    [/autoit]
  • Real Dektop Tools [Leute gesucht & in bearbeitung]

    • XovoxKingdom
    • 21. Mai 2010 um 21:00

    Ich würde auch mitmachen wollen, obwohl ich vielleicht nicht SO viel Zeit zur Verfügung habe.

  • Defense

    • XovoxKingdom
    • 21. Mai 2010 um 20:56

    Hey,
    das Spiel ist echt gut gelungen :D , wobei mein Rechner recht lange zum plazieren der Türme gebraucht hat :S .
    Einen Screenshot, der den letzten Spielstand mit 20Leben anzeigt, konnte ich noch machen.
    Ab dann hätte ich wahrscheinlich verloren.
    Hier der versprochene Screenshot:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    PS: die beiden Türme sind durchgegangen, wobei der vordere fast kein Leben mehr hatte :rolleyes:

    Dateien

    Defense1.jpg 63,74 kB – 0 Downloads
  • proxy

    • XovoxKingdom
    • 17. Mai 2010 um 13:36

    Ich würde das Auslesen mittels Interpretation durch eine Funktion tätigen.
    In meinem Beispiel ist die Ausführung nochmals in einer anderen Funktion,
    sodass du mehrere Eingaben einlesen kannst, aber nur gewisse auch wirklich ausführst.
    Du kannst sie aber trotzdem (wenn du das nicht willst) beide Funktionen zu einer machen.

    Naja, wie dem auch sei, hier mein Ansatz:

    [autoit]

    $Eingelesen = 'Httpsetproxy(2,"Proxyname:Proxyport","Username","Password")';Steht normalerweise in deiner Datei
    ;aber der Auslesenprozess ist ja klar

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

    Einlesen($Eingelesen)

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

    Func Einlesen($String)
    $rex = StringRegExp($String, 'Httpsetproxy\((\d),"(.+)","(.+)","(.+)"\)', 3)
    If IsArray($rex) And UBound($rex) = 4 Then
    Ausfuehren($rex)
    EndIf
    EndFunc ;==>Einlesen

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

    Func Ausfuehren($aParam)
    ;Test Anfang:
    ;Die Schleife dient NUR zur Kontrolle, obs klappt (bei Verwendung löschen!)
    For $i = 0 To UBound($aParam) - 1
    MsgBox(0, 0, $aParam[$i])
    Next

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

    ;Test Ende!
    HttpSetProxy($aParam[0], $aParam[1], $aParam[2], $aParam[3])
    EndFunc ;==>Ausfuehren

    [/autoit]
  • Wenn ich Maustaste 1x drücke dann 2x die Taste

    • XovoxKingdom
    • 11. Mai 2010 um 11:14

    Ich würde es (wenn es mit AutoIt gemacht werden würde) als spielunterstützendes Mittel
    (also quasi ein Bot) werten. Da Bots nicht unterstützt werden, würde ich dir raten,
    dass du den Befehl einfach in die Config schreibst.

    Ich habe selber nur 1.6 und weiss nicht, ob die Befehle identisch sind.
    alias w8 "wait;wait;wait;wait"
    bind "MOUSE1" "+attack;w8;slot3;w8;slot1"
    würde schießen, warten, auf slot3(messer) wechseln, warten und dann wieder auf slot1

    Falls das nicht wie gewünnscht klappen würde, dann musst du "lastinv" statt der slots verwenden.

    Sofern die Mods es als NICHT Bot beschreiben (was ich nicht glaube), dann könnte ich auch ne Lösung posten.

  • String verarbeitung.

    • XovoxKingdom
    • 30. April 2010 um 15:04

    Ohne Spaltenangabe bei _Arraydisplay klappts auch bei dir mit der (alten) Version:

    Spoiler anzeigen
    [autoit]

    #include <array.au3>
    $File = FileRead(@ScriptDir & "\pclist.txt")
    $reg = StringRegExp($File, "(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+([^\s]+)\s+([a-fA-F\d]{2}:[a-fA-F\d]{2}:[a-fA-F\d]{2}:[a-fA-F\d]{2}:[a-fA-F\d]{2}:[a-fA-F\d]{2})", 3)
    If IsArray($reg) And Mod(UBound($reg), 3) = 0 Then
    Dim $Info[UBound($reg) / 3][4]
    Local $c = 0
    For $i = 0 To UBound($reg) - 1 Step 3
    $Info[$c][0] = $reg[$i + 1]
    $Info[$c][1] = StringReplace($reg[$i + 2], ":", "")
    $Info[$c][2] = $reg[$i]
    $Info[$c][3] = StringRegExpReplace($reg[$i], "(\d{1,3}\.\d{1,3}\.\d{1,3})\.\d{1,3}", "$1.255")
    $c += 1
    Next
    #cs
    ;Besorge dir die neuste AutoItversion, dann sollte es auch mit der folgenden Zeile klappen!
    _ArrayDisplay($Info,"Ausgabe",-1,0,"","|","Index|Name|Mac|IP|IpBroadcast");Ausgabe aller Items
    #ce

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

    _ArrayDisplay($Info); Ausgabe ohne Spaltenbenennung

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

    MsgBox(0, "Ausgabe Item 10", "Testausgabe des 10.Items:" & @CRLF & _
    "Name" & @TAB & @TAB & "=" & @TAB & $Info[9][0] & @CRLF & _
    "$mac" & @TAB & @TAB & "=" & @TAB & $Info[9][1] & @CRLF & _
    "$IP" & @TAB & @TAB & "=" & @TAB & $Info[9][2] & @CRLF & _
    "IpBroadcast" & @TAB & "=" & @TAB & $Info[9][3])
    EndIf

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

    #cs
    Ausgabe des _ArrayDisplays:

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

    "Index|Name|Mac|IP|IpBroadcast"

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

    [0]|HOST13341|0030051D4161|192.168.88.98|192.168.88.255
    [1]|HOST13361|0030051E5900|192.168.97.20|192.168.97.255
    [2]|HOST13518|000BCD20F4D4|192.168.88.53|192.168.88.255
    [3]|HOST13520|000BCD205D62|192.168.81.127|192.168.81.255
    [4]|HOST13521|000BCD2170BC|192.168.40.79|192.168.40.255
    [5]|HOST13527|000802b701c5|192.168.64.49|192.168.64.255
    [6]|HOST13787|0030056C8DC1|192.168.65.40|192.168.65.255
    [7]|HOST13570|000bcd45d141|192.168.65.32|192.168.65.255
    [8]|HOST13580|000bcd479c0e|192.168.90.140|192.168.90.255
    [9]|HOST13581|000bcd479c21|192.168.91.176|192.168.91.255
    [10]|Server13787|0030056C8DC1|192.168.69.40|192.168.69.255
    [11]|Server3570|000bcd45d141|192.168.61.32|192.168.61.255
    [12]|Server13580|000bcd479c0e|192.168.93.140|192.168.93.255
    [13]|Server3581|000bcd479c21|192.168.94.176|192.168.94.255

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

    #ce

    [/autoit]


    PS: Lad dir einfachheitshalber das neuste Update ;)

    Mit @AutoItVersion bekommste deine Version... aktuell müsste 3.3.6.1 sein (die habe ich)

  • String verarbeitung.

    • XovoxKingdom
    • 30. April 2010 um 14:36

    Probier das hier :D
    sollte klappen

    Spoiler anzeigen
    [autoit]

    #include <array.au3>
    $File = FileRead(@ScriptDir & "\pclist.txt")
    $reg = StringRegExp($File, "(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+([^\s]+)\s+([a-fA-F\d]{2}:[a-fA-F\d]{2}:[a-fA-F\d]{2}:[a-fA-F\d]{2}:[a-fA-F\d]{2}:[a-fA-F\d]{2})", 3)
    If IsArray($reg) And Mod(UBound($reg), 3) = 0 Then
    Dim $Info[UBound($reg) / 3][4]
    Local $c = 0
    For $i = 0 To UBound($reg) - 1 Step 3
    $Info[$c][0] = $reg[$i + 1]
    $Info[$c][1] = StringReplace($reg[$i + 2], ":", "")
    $Info[$c][2] = $reg[$i]
    $Info[$c][3] = StringRegExpReplace($reg[$i], "(\d{1,3}\.\d{1,3}\.\d{1,3})\.\d{1,3}", "$1.255")
    $c += 1
    Next

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

    _ArrayDisplay($Info,"Ausgabe",-1,0,"","|","Index|Name|Mac|IP|IpBroadcast");Ausgabe aller Items

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

    MsgBox(0, "Ausgabe Item 10", "Testausgabe des 10.Items:" & @CRLF & _
    "Name" & @TAB & @TAB & "=" & @TAB & $Info[9][0] & @CRLF & _
    "$mac" & @TAB & @TAB & "=" & @TAB & $Info[9][1] & @CRLF & _
    "$IP" & @TAB & @TAB & "=" & @TAB & $Info[9][2] & @CRLF & _
    "IpBroadcast" & @TAB & "=" & @TAB & $Info[9][3])
    EndIf

    [/autoit]
  • Webradio Titel informationen

    • XovoxKingdom
    • 30. April 2010 um 11:14

    Am besten wird es bestimmt mit dem Auslesen der Website klappen..
    den "direkten" Quellcode, in dem alle Titel usw. stehen habe ich nicht
    sofort erschließen können. Du musst erst den Frame auswählen und dort
    den Code entnehmen.
    Bei mir hieß die URL dann: http://playlist.energyzueri.com/web/index_redesign.php
    dort kannst du via StringRegExp die Infos extrahieren.
    (Dazu am Besten SEuBo's StringRegExp anschauen, falls du nicht sehr firm damit bist)

  • Script zum Klammern entfernen

    • XovoxKingdom
    • 30. April 2010 um 10:59

    Ich glaube ich habe das Problem nicht 100% verstanden :S
    Vielleicht kannst du es nochmal präzisiert formulieren?
    Meine "Interpretation" ist:
    Du willst ein Script, das die Eingabe auf den Inhalt in den Klammern reduziert
    z.B.: K02 ("Name") -> "Name"
    test(Wichtig)test2 -> Wichtig
    ...
    sollte es das sein, dann kannst du das folgende zwar verwenden, aber dort steckt sicher
    noch Optimierungspotential :D

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    GUICreate("Form1", 221, 122, 221, 149)

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

    dim $i=0
    dim $msg
    $i=GUICtrlCreateInput("test",0, 0)
    $Button1 = GUICtrlCreateButton("start", 64, 64, 75, 25, $WS_GROUP)

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

    GUISetState(@SW_SHOW)

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

    $msg = 0
    While $msg <> $GUI_EVENT_CLOSE
    $msg = GUIGetMsg()
    Select
    Case $msg = $i
    exitloop
    EndSelect
    Wend
    $i=$msg
    MsgBox (4096, "test ob wafereingabe richtig ist", Eingabecheck(GuiCtrlRead($i)));Das ist neu
    #EndRegion ### END Koda GUI section ###

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

    $i=$msg

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

    Func Eingabecheck($Eingabe);Das ist neu
    $array = StringRegExp($Eingabe,".+[\(]([^\)]+)",3)
    If IsArray($array) Then Return "Korrekt: "&$array[0]
    Return "Falsch"
    EndFunc

    [/autoit]

    PS: Wenn man auf das AutoIt-Icon in den Beitragsoptionen (während der Erstellung),
    dann wird die Syntax hervorgehoben.. Bei längeren Codes sollte man auch auf "SP" für Spoiler klicken

  • Wo befindet sich Cursor in GUI (ohne das was geklickt wird)

    • XovoxKingdom
    • 30. April 2010 um 09:11

    Ich hoffe, dass du die Kritik ernst nimmst...
    Manchmal ist es wirklich einfacher mal einen Blick in die Hilfedatei (und dem Beispiel)
    zu werfen, als nen neuen Thread zu öffnen und nichts aussagende Posts zu erstellen [Bezug auf Fehlerbericht]
    Oftmals hilft es auch weiter einfach einen Teil des Quellcodes zu präsentieren...
    Als Lerneffekt solltest du erstmal das Beispiel aus der Hilfedatei angucken und
    nur, falls du es nicht verstanden hast, dann kannst du meins nehmen!

    Mein Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 625, 445, 192, 154)
    $Pos = GUICtrlCreateLabel("",20,20,100,21)
    GUISetState(@SW_SHOW)
    GUIRegisterMsg(0x0200,"MOVE")
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func MOVE()
    $Mouse = GUIGetCursorInfo()
    GUICtrlSetData($Pos,$Mouse[0]&", "&$Mouse[1])
    EndFunc

    [/autoit]
  • String beginnt mit

    • XovoxKingdom
    • 28. April 2010 um 20:08

    Mal eben auf die schnelle:

    Spoiler anzeigen
    [autoit]

    #include <array.au3>

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

    #cs

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

    ClipPut('"C0047D333.test.com"'&@CRLF&'"S00r7D333.test2.de.00.com"'&@CRLF&'"M00f7D333.teste.com"'); Simulation von STRG+C (auf die schnelle hand gemacht^^)

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

    ClipPut(StringReplace(ClipGet(),'"',""))
    $a=StringReplace(StringStripCR(ClipGet()),@LF,"")
    $b=StringRegExp($a,"^C[^\.]+",3);Statt $a müsste jeweils der einzeilige string übergeben werden
    _ArrayDisplay($b)

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

    #ce
    ;spezieller test von "C0047D333.test.com":

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

    $a = "C0047D333.test.com"
    $b=StringRegExp($a,"^C[^\.]+",3)
    _ArrayDisplay($b,"Ergebnis")

    [/autoit]
  • Send schneller ?

    • XovoxKingdom
    • 27. April 2010 um 09:52

    Die Inputbox kannst du in dem Script, in dem dieselbige aufgerufen wurde, nicht verändern (nur zum Zeitpunkt der Erstellung)!
    D.h. du kannst auch nicht dafür sorgen, dass der Mauszeiger auf "OK" klickt.
    Falls du jedoch dafür sorgen willst, dass die Inputbox nicht "unendlich" lange existiert, kannst du den Timeoutparameter setzen.
    Andernfalls musst du via GUI eine Inputbox nachbauen.
    Hier ist meine Lösung:

    [autoit]

    $Testname = "Max Mustermann"
    ClipPut($Testname);Befüllt die Zwischenablage mit dem Testnamen

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

    $Name = InputBox("Name","Geben Sie bitte unten Ihren Namen ein:",ClipGet(),"",Default,Default,Default,Default,10);Standardtext aus der Zwischenablage (Clipget()) und 10sek Beschränkung
    MsgBox(0,"Begrüßung","Hallo "&$Name&"!")

    [/autoit]
  • Bild vergrößern und bewegen

    • XovoxKingdom
    • 26. April 2010 um 23:40

    Ich denke das folgende kann in Grundzügen (Bild bewegt sich nach links) das was es soll...
    Der Ablauf des Programms sollte klar werden, dennoch kannst du gerne bei Problemen nachfragen.
    (Es ist schon recht spät -> Die Kommentierung ist auf der Strecke geblieben :rolleyes: )
    Hier meine Lösung:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ScreenCapture.au3>
    #include <gdiplus.au3>
    #Region ### START Koda GUI section ### Form=
    _GDIPlus_Startup()
    $Form1 = GUICreate("Form1", 389, 445)
    $Graphics = _GDIPlus_GraphicsCreateFromHWND($Form1)
    $Bitmap = _GDIPlus_BitmapCreateFromGraphics(337, 337, $Graphics)
    $GDI_Buffer = _GDIPlus_ImageGetGraphicsContext($Bitmap)
    $Button1 = GUICtrlCreateButton("MOVE", 32, 384, 105, 49, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Exit", 256, 384, 105, 49, $WS_GROUP)
    $Pic = _ScreenCapture_Capture("")
    $hImage = _GDIPlus_BitmapCreateFromHBITMAP($Pic)
    _GDIPlus_GraphicsClear($GDI_Buffer)
    $x = 0
    GUISetState(@SW_SHOW)
    _GDIPlus_GraphicsClear($GDI_Buffer)
    _GDIPlus_GraphicsDrawImageRect($GDI_Buffer, $hImage, 0, 0, @DesktopWidth, @DesktopHeight)
    _GDIPlus_GraphicsDrawImageRect($Graphics, $Bitmap, 24, 16, 337, 337)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _GDIPlus_GraphicsDispose($Graphics)
    Exit
    Case $Button1
    $x += 20
    If @DesktopWidth - $x - 337 < 0 Then Beenden()
    _GDIPlus_GraphicsClear($GDI_Buffer)
    _GDIPlus_GraphicsDrawImageRect($GDI_Buffer, $hImage, 0 - $x, 0, @DesktopWidth, @DesktopHeight)
    _GDIPlus_GraphicsDrawImageRect($Graphics, $Bitmap, 24, 16, 337, 337)
    Case $Button2
    Beenden()

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

    EndSwitch
    WEnd

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

    Func Beenden()
    _GDIPlus_GraphicsClear($GDI_Buffer)
    _GDIPlus_GraphicsClear($Graphics)
    _GDIPlus_GraphicsDispose($Graphics)
    Exit
    EndFunc ;==>Beenden

    [/autoit]


    PS: Wenn du eine vergrößerte Darstellung haben willst, dann ist der aus nach "Case $Button1" Teil zu folgendem zu editieren:

    [autoit]

    $x += 20
    If @DesktopWidth*2- $x - 337 < 0 Then Beenden(); Vergrößerung mit Faktor 2
    _GDIPlus_GraphicsClear($GDI_Buffer)
    _GDIPlus_GraphicsDrawImageRect($GDI_Buffer, $hImage, 0 - $x, 0, @DesktopWidth*2, @DesktopHeight*2); Vergrößerung mit Faktor 2
    _GDIPlus_GraphicsDrawImageRect($Graphics, $Bitmap, 24, 16, 337, 337)

    [/autoit]


    ggf. musst du das Startbild auch mit dem Faktor 2 vergrößern,da es sonst beim Buttonklick etwas komisch wirkt :P

  • FTP server

    • XovoxKingdom
    • 20. April 2010 um 15:10

    Das was du uns als Ausgangsmaterial zur Verfügung stellst ist ein schlecht formatiertes* und
    (nach dem ersten Überfliegen) auch nicht funktionierendes Script, das dir der KODA bereitgestellt hat.
    Du könntest wenigstens einen Ansatz probieren z.B. da du nach FTP Befehlen suchst, könntest
    du entweder via Google, der AutoItsuche oder der Hilfedatei die drei Buchstaben "FTP" eingeben.
    Sry für diesen kritischen Kommentar, aber durch eigene Initiative ist das Verständnis für den
    gewonnenen Code um ein Vielfaches gestärkt.
    Damit du jetzt auch einen kleinen Ansatzpunkt hast, damit du "weiterarbeiten" kannst,
    guck dir mal in der Hilfe die Befehle aus der:

    [autoit]

    #Include <FTPEx.au3>

    [/autoit]


    an!
    Zusätzlich ist es dir nicht vergönnt, dass du die Befehle wie:

    [autoit]

    _FTP_Open; Oder
    _FTP_Close

    [/autoit]


    anguckst.
    Falls du explizite Fragen zu den Funktionen hast, und dir die Beispiele (in der Hilfe oder im Forum)
    nicht geholfen haben, oder immernoch nicht 100% nachvollziehbar geworden sind, so wird sich sicher
    der eine oder andere User finden, um dir den nötigen gedanklichen Anstoß zu liefern.
    ... Puuh das wars von meiner Seite erstmal :D

    PS: Nimm die Kritik nicht zu Ernst, sie soll im Endeffekt nur zur Selbstständigkeit deiner selbst führen! ;)
    EDIT: Anpassung auf die Editierung des vorangegangenen Posts
    * Du kannst den AutoIt Tag + bei längerem Source auch noch einen Spoiler nach dem "Tidyprozess"(in Scite Strg+T) verwenden

  • Prüfen ob +- oder gleich eine Variable

    • XovoxKingdom
    • 20. April 2010 um 14:19

    Ist zwar schon gelöst, aber ich würde gerne meine Variante veröffentlichen ;) .
    (Bei den bisherigen Tests war alles richtig.. Falls es Fehler gibt bitte mitteilen :!: )

    [autoit]

    $vacuum = 0.2
    $Vergleich = 0.1

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

    If Not (Abs($Vergleich - $vacuum) > 0.1) Then
    MsgBox(0,":D","Bedingung erfüllt!")
    Else
    MsgBox(0,":(","Bedingung nicht erfüllt!")
    EndIf

    [/autoit]

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™