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

Beiträge von Ealendil

  • _MaxEx.au3

    • Ealendil
    • 17. Februar 2010 um 22:02

    Hi,

    teh_hahn: Nehm ich nicht böse auf, hab ja um Feedback gebeten...hab nun die Funktionsweise beinahe komplett verändert, siehe Post#1. Vielen Dank für die Krtitk übrigens.
    Der Grund für die Func() war: wieder was zu lernen, immer mehr in AutoIt zu denken und weil ich sie gebraucht hab.

    @MathiasG.: Dachte mir doch, ich hab irgendwo schonmal im Forum so eine ähnliche Func() gesehen....der Grund, warum ich meine Func() allerdings geschrieben habe, war, dass ich auch mit Strings vergleichen wollte.... hab mir auch ein bisschen was von deiner Func() abgeschaut ;)


    LG Ealendil

  • _MaxEx.au3

    • Ealendil
    • 15. Februar 2010 um 21:44

    Argh, das hab ich vergessen, wollte es eigtl, als eine Art Gag machen, dass so gut wie jedes Zeichen als Trenner fungiert.

  • _MaxEx.au3

    • Ealendil
    • 15. Februar 2010 um 21:37

    Hi,

    da es mich immer wieder nervte, wenn ich mehrere Zahlen miteinander vergleichen musste, und mit der Funktion _Max() nur zwei gleichzeitig vergleichen konnte, habe ich diese kleine UDF geschrieben, um x-beliebig viele Zahlen miteinander zu vergleichen lassen (hab sie noch nicht allzu oft getestet).

    Um die einzelnen Zahlen voneinander zu trennen fungieren alle Zeichen, außer Zahlen und dem "-"-Zeichen, sowie dem "."-Zeichen, da die Funktion sonst keine negativen Zahlen und keine Kommazahlen erkennt, es funtkionieren auch Leerzeichen, ebenso Buchstaben. ;)

    Mittels dem $Flag-"Parameter" kann entschieden werden, ob die Funktion die größte Zahl oder die kleinste Zahl zurückgeben soll.
    $Flag = 0, bedeutet die Größte.
    $Flag <> 0, bedeutet die Kleinste.

    !!!ACHTUNG: Nicht mehr aktuell bitte im Spoiler für richtige Informationen nachschauen.

    Spoiler anzeigen
    [autoit]


    ;#_SortMinMax-FUNKTION-Start#======================================================================================
    ;Funktion:.................._SortMinMax
    ;Autor:.....................Ealendil (http://www.AutoIt.de)
    ;Beschreibung:..............gibt bei Erfolg ein Array zurück, welches von der höchsten
    ; zur kleinsten bzw. umgekehrt sortiert ist.
    ;Infos:.....................$Nr_1_to_Nr_n = Hier die Zahlen zum Vergleichen eingeben,
    ; diese müssen als String ("1,2,3,...") oder ('1,2,3,...')
    ; eingegeben werden.
    ; Es funktioniert ebenso mit einem Array,
    ; dieses muss allerdings 0-basiert sein.
    ;
    ; $SortMax = 1 bedeutet das die Funktion ein Array zurückgibt, welches
    ; folgendermaßen ausschaut:
    ; $Array[0] = Anzahl der zurückgegebenen Zahlen
    ; $Array[1] = höchste Zahl
    ; $Array[2] = zweithöchste Zahl
    ; $Array[3] = dritthöchste Zahl
    ;
    ; usw.
    ; $Array[n] = kleinste Zahl
    ; sollte $Sort_Max <> 1
    ; sein, so wird das Array umgekehrt sortiert zurückgegeben.
    ; $Split: hierbei kann angegeben werden, welche Zeichen zum trennen
    ; der Zahlen fungieren sollen, wird keines angegeben, so wird ","
    ; verwendet, man muss (falls ein String verwendet wird) jede Zahl mit den in
    ; $Split angegebenen Zeichen trennen.
    ;Return-Werte:..............ein Array, welches von der höchsten zur kleinsten bzw. umgekehrt
    ; sortiert ist.
    ; $Array[0] gibt die Anzahl der zurückgegeben Zahlen an.
    ; Als Trennzeichen fungieren alle Zeichen, welche bei $Split
    ; angegeben werden, sollten keine Angegeben, so wird "," verwendet.
    ;@Error-Werte:.............
    ; @Error = 0, kein Fehler
    ; 1, $Nr_1_to_Nr_n ist kein String ,falls ein String verwendet wird.
    ; 2, $Sort_Max ist entweder keine Zahl oder 0.
    ;#_SortMinMax-FUNKTION-End#========================================================================================
    Func _SortMinMax($Nr_1_to_Nr_n, $Sort_Max = 1, $Split = '')

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

    ;Prüft ob $Sort_Max ein Integer ist, falls nicht, wird die Funktion verlassen.
    If Not IsInt($Sort_Max) Then Return SetError(2, 0, 0)

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

    Local $i, $Str = '', $i_i, $i_i_i, $i_Copy = 0

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

    ;Prüft ob Zeichen für $Split vorhanden sind, falls nicht, dann $Split = ','.
    If $Split = '' Then $Split = ','

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

    ;Prüft ob $Nr_1_to_Nr_n ein Array ist. Falls dies zutrifft, wird ein String erstellt,
    ;welches jedes Zeichen, in $Split eingegebenen Zeichen, voneinander trennt.
    If IsArray($Nr_1_to_Nr_n) Then
    Local $Str_Trim = ''
    For $i = 0 To UBound($Nr_1_to_Nr_n) - 1
    $Str_Trim &= $Nr_1_to_Nr_n[$i] & $Split
    Next
    $Str = StringTrimRight($Str_Trim, 1)
    Else
    $Str = $Nr_1_to_Nr_n

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

    ;Prüft ob $Str ein String ist, falls nicht wird die Funktion verlassen.
    If Not IsString($Str) Then Return SetError(1, 0, 0)
    EndIf

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

    ;"Haupt"-String wird nun gesplitet.
    Local $sp = StringSplit($Str, $Split, 0), $aMax[$sp[0] + 1], $Zahl_Min = -9223372036954775808

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

    ;Weißt $aMax[0] die Anzahl der Elemente zu und weißt jedem Element in $Sp die Nummer zu,
    ;die das jeweilige Element darstellt.
    $aMax[0] = $sp[0]
    For $i = 0 To $sp[0]
    $sp[$i] = Number($sp[$i])
    Next

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

    ;Weißt jedem Element in $aMax $Zahl_Min zu
    For $i = 1 To $sp[0]
    $aMax[$i] = $Zahl_Min
    Next

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

    ;Sortiert nun alle Zahlen von der Höchsten zur Kleinsten und weißt ihnen die entsprechenden Elemente
    ;in $aMax zu.
    For $i_i = 1 To $sp[0]
    For $i = 1 To $sp[0]
    If $sp[$i] > $aMax[$i_i] Then
    $aMax[$i_i] = $sp[$i]
    $i_i_i = $i
    EndIf
    Next
    $sp[$i_i_i] = $Zahl_Min
    Next

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

    ;Sollte der $Sort_Max Parameter <> 1 sein, also, soll das Array von der kleinsten zur höchsten Zahl
    ;sortiert sein, dann wird nun ein weiteres Array erstellt, welches jedes Element von $aMax enthält und
    ;alle Zahlen entsprechend miteinander vertauscht.
    ;Anschließend wird das neu sortierte Array zurückgegeben.
    If Not $Sort_Max = 1 Then
    Local $aMax_Copy[$sp[0] + 1]
    For $i = 1 To $aMax[0]
    $aMax_Copy[$i] = $aMax[$i]
    Next
    For $i = $aMax[0] To 1 Step -1
    $i_Copy += 1
    $aMax[$i] = $aMax_Copy[$i_Copy]
    Next
    Return $aMax
    Else
    Return $aMax
    EndIf
    EndFunc ;==>_SortMinMax

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

    #include <Array.au3>

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

    $test = _SortMinMax('2,34,356256,7843,9787945.67,-4,-245246,346', 1, ',')
    _ArrayDisplay($test)
    $try = _SortMinMax('-2,-34453.67434,57342', 0, ',')
    _ArrayDisplay($try)
    Dim $array[7]
    $array[0] = '1'
    $array[1] = 2
    $array[2]= 235425.5421
    $array[3]= -35326.352462
    $array[4]='3523'
    $array[5]=556578457546.454
    $array[6]='3456534.34653'
    $tryit = _SortMinMax($array)
    _ArrayDisplay($tryit)

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


    Da ich die Funktion noch nicht ausführlich getestet habe, bitte um Feedback.

    Hoffe sie hilft jemandem.

    LG

    Ealendil


    #Edit1: Rechtschreibung korrigiert.
    #Edit2: Es funktioniertem nur noch "," und Leerzeichen als Trennzeichen.
    #Edit3: Man kann nun die Trennzeichen frei wählen, sowie wurde die Arbeitsweise verändert, Kommazahlen, werden nun auch unterstützt. Erklärungen dazu geschrieben. Name der Func() geändert. Statt dem String kann auch ein 0-basiertes Array verwendet werden.

    Dateien

    SortMinMax.au3 12,86 kB – 569 Downloads
  • Beep-Tonleiter UDF

    • Ealendil
    • 2. Februar 2010 um 18:50

    Hi,

    ich hab dir die Frequenzen ausgebessert, bzw. auf virtuelles Klavier umgestellt. (siehe hier)

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Dadurch wurde das Skript zwar länger, aber du hast mehr Töne zur Auswahl.

    LG
    Eal

  • Nutzung eines PCs anhand von Mausbewegung protokollieren

    • Ealendil
    • 1. Februar 2010 um 18:03

    Hi,

    vlt. kannst du was damit anfangen.

    Spoiler anzeigen
    [autoit]


    Opt('TrayIconHide', 1)
    Opt('MustDeclareVars', 1)
    Global $MousePos = MouseGetPos(), $Check_MousePos[2]
    $Check_MousePos[0] = $MousePos[0]
    $Check_MousePos[1] = $MousePos[1]
    While 1
    $MousePos = MouseGetPos()
    Select
    Case $MousePos[0] <> $Check_MousePos[0]
    IniWrite(@DesktopDir & '\Protokoll.ini', 'Position', @MDAY & '.' & @MON & '.' & @YEAR & ' / ' & @HOUR & ':' & @MIN & ':' & @SEC & ':' & @MSEC & '_', ' X: ' & $MousePos[0] & ' Y: ' & $MousePos[1])
    $Check_MousePos[0] = $MousePos[0]
    Case $MousePos[1] <> $Check_MousePos[1]
    IniWrite(@DesktopDir & '\Protokoll.ini', 'Position', @MDAY & '.' & @MON & '.' & @YEAR & ' / ' & @HOUR & ':' & @MIN & ':' & @SEC & ':' & @MSEC & '_', ' X: ' & $MousePos[0] & ' Y: ' & $MousePos[1])
    $Check_MousePos[1] = $MousePos[1]
    EndSelect
    WEnd

    [/autoit]

    LG

  • Fokus auf Editbox ohne in den Vordergrund zu holen?

    • Ealendil
    • 31. Januar 2010 um 23:07

    Hi,

    meinst du so?

    [autoit]


    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 450, 285, 192, 124)
    $Button1 = GUICtrlCreateButton('Button1', 10,100,20,20)
    $Edit1 = GUICtrlCreateEdit("", 40, 24, 369, 217)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    HotKeySet('^f','_Focus')
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func _Focus()
    ControlFocus($Form1,'',$Edit1)
    EndFunc

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

    LG

  • Frage: PasswortChar Textfeld auslesen

    • Ealendil
    • 30. Januar 2010 um 16:00

    Danke, bitte gerne.

  • Frage: PasswortChar Textfeld auslesen

    • Ealendil
    • 30. Januar 2010 um 15:28

    Damit dein Script überhaupt weiß, was $oPasswd ist, musst du zuerst einmal angeben, was es machen soll um dort hinzukommen, ich hoffe du weißt, was ich meine.

    Also folgendermaßen:

    [autoit]


    #include <IE.au3> ;damit du die _IE-Funktionen nutzen kannst
    $oIE = _IECreate('http://www.gmx.net') ;erklärt sich von selbst
    _IELoadWait($oIE) ;damit das Skript wartet, bis die Seite fertig geladen ist, die von _IECreate() aufgerufen wird.
    $oForm = _IEFormGetCollection($oIE, 1) ;$oIE, damit die Funktion weiß von welchem IE-Objekt sie die Infos bekommen soll*...... 1 weil die Form mit dem Passwort die Erste ist.
    $oPasswd = _IEFormElementGetCollection($oForm, 7) ;$oForm, damit die Funktion weiß, von welcher Form sie die Infos sammeln soll...... 7, weil das Passwort-Feld, in welchen man den Text eingibt das Siebte ist.
    ;Ab hier kannst du das Passwort-Feld auslesen oder Text hineinschreiben.
    ;_IEFormElementGetValue($oPasswd) ;gibt dir den Inhalt von $oPasswd zurück oder
    ;_IEFormElementSetValue($oPasswd, 'Text') ;schreibt dir "Text" in das Passwort-Feld ($oPasswd).

    [/autoit]

    Ich hoffe, ich habe das übersichtlich genug erklärt, und dass du dein Passwort-Feld nun auslesen kannst.
    Falls du noch Fragen hast stell sie.
    LG
    Eal

  • Frage: PasswortChar Textfeld auslesen

    • Ealendil
    • 30. Januar 2010 um 11:30

    Hi,

    mit

    [autoit]


    #include <IE.au3>
    $oIE = _IECreate('http://www.gmx.net')
    _IELoadWait($oIE)

    [/autoit]


    lade ich die Seite GMX.net und füge mittels

    [autoit]


    $oForm = _IEFormGetCollection($oIE, 1)
    $oPasswd = _IEFormElementGetCollection($oForm, 7)
    _IEFormElementSetValue($oPasswd,'Test')

    [/autoit]


    den Text "Test" in das Passwort-Feld ein.

    Daraufhin lese ich dieses mit

    [autoit]


    $Inhalt = _IEFormElementGetValue($oPasswd)
    MsgBox(0,'Info',$Inhalt)

    [/autoit]


    aus und lasse eine MsgBox mit dem Inhalt des Passwort-Felds erstellen.

    Ich hab leider keine Ahnung, was genau das Programm "PantsOff" macht, aber mit diesem Code kannst du, wenn du weißt welches Input-Feld dein Passwort-Feld ist,
    dieses auslesen.

    #Edit: Du musst die Form"nummer" und die Passwort"nummer" noch mit deiner Website abgleichen, also aus dem Quelltext auslesen.
    Sprich:

    [autoit]


    $oForm = _IEFormGetCollection($oIE, {Hier die, ich glaub Index-Nummer heißt die Zahl, deiner Form})
    $oPasswd = _IEFormElementGetCollection($oForm, {Hier die, ich glaub Index-Nummer heißt die Zahl, deines Passwort-Felds}

    [/autoit]

    LG
    Eal

  • Frage: PasswortChar Textfeld auslesen

    • Ealendil
    • 30. Januar 2010 um 10:57

    Hi,

    meinst du ungefähr so?

    Spoiler anzeigen
    [autoit]


    #include <IE.au3>
    $oIE = _IECreate('http://www.gmx.net')
    If IsObj($oIE) Then
    _IELoadWait($oIE)
    $oForm = _IEFormGetCollection($oIE, 1)
    $oPasswd = _IEFormElementGetCollection($oForm, 7)
    _IEFormElementSetValue($oPasswd,'Test')
    $Inhalt = _IEFormElementGetValue($oPasswd)
    MsgBox(0,'Info',$Inhalt)
    Else
    MsgBox(48, 'Erstellen des Internet-Browsers fehlgeschlagen', 'Es konnte keine neue InternetExplorer-Instanz erzeugt werden!')
    EndIf

    [/autoit]

    LG
    Eal

  • Oscar hat Geburtstag.

    • Ealendil
    • 18. Januar 2010 um 09:57

    Ebenfalls alles Gute und genieß den Tag

    8):thumbup:8)

  • Arbeitsspeicher auslesen

    • Ealendil
    • 17. Januar 2010 um 20:51

    Hi,

    damit sich die Adressen nie ändern brauchst du BasePointer, also du suchst zuerst den Wert, dann den Pointer, dann den Pointer vom Pointer usw., bis du eine Adresse findest die auf deine "Pointersammlung" zeigt und eine grüne Beschriftung hat, welche im Normalfall dann der Basepointer ist.
    Steht in Tut-3, was ich gepostet hab.
    Bzw. mach mal das Cheat Enigine Tutorial, und gib diesen Code (PW=525927)ein, um zum Basepointer-Tut zu kommen, oder schau dir folgendes Video-Tut an: Klick mich

    LG

    Eal

  • Arbeitsspeicher auslesen

    • Ealendil
    • 15. Januar 2010 um 16:18

    Hi,

    hatte nur Teil 2 und Teil 3.

    Dachte es erklärt sich irgendwie von selber in Teil 2 und dann gibt es auch noch das englische mitintegrierte Tutorial bei Cheat Engine.

  • Arbeitsspeicher auslesen

    • Ealendil
    • 15. Januar 2010 um 16:04

    Hi,

    herzlich willkommen im Forum.

    Da du schreibst, du willst auslesen, denk ich mal, dass du sowas noch nicht gemacht hast.
    Falls ich Speicheradressen suche, dann verwende ich Cheat Engine 5.5 und verändere diese zum Spaß, bsp, Solitärtime mittels AutoIt.
    Du kannst allerdings die Werte einfach nur auslesen und dein Programm dementsprechend handeln lassen, was von den Bots auf Speicherebene ausgenutzt wird.
    Weg von diesem her zu deinem Thema.

    Falls du dich damit mehr beschäftigen willst, hänge ich dir ein Textdokument mit an, welches zwei Tutorials enthält um Speicheradressen zu finden, sowie die NoMadMemory.au3 um diese zu lesen etc.

    Solltest du dann noch fragen haben, stell sie ruhig.


    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Die Tut´s sind nicht von mir, ich hab sie mir abgespeichert, allerdings die Website nicht mehr gefunden.

    Sollte ich gegen die Anti-Bot-Regel verstoßen haben, was ich nicht glaube, da ich nur die Grundsätze kurz angerissen hab, bitte sagen, ich änder es dann dementsprechend.

    #Edit: Sehe, dass SEuBo schon geantwortet hat, lasse daher die NoMadMemory weg.

    Dateien

    Speicheradressen.txt 8,03 kB – 2.231 Downloads
  • Etwas In einer Combo Abspeichern

    • Ealendil
    • 14. Januar 2010 um 20:35

    Hi,

    gleich mein 3.Post und wieder mal ein evtl. nicht mehr gebrauchtes Skript.
    Ich poste es trotzdem, vlt. kann es irgendwer mal gebrauchen.
    Anm: Es kann sein, dass ich es etwas umständlich gemacht hab und dass es einen leichteren Lösungsweg gibt.

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=c:\users\chris-comp\desktop\fenster.kxf
    Global $aSprache[7][2] = [ _
    ["Ealendil´s Combo-Lösch-GUI", "Ealendil´s Combo-Delete-GUI"], _
    ["Ausgabe", "Output"], _
    ["Hier Text eingeben", "Enter Text here"], _
    ["Hinzufügen", "Add"], _
    ["Sprachen", "languages"], _
    ["Lösche ausgewähltes Item", "Delete selected item"]]
    $Fenster = GUICreate($aSprache[0][0], 402, 112, 192, 124)
    $Combo = GUICtrlCreateCombo("", 8, 8, 97, 25)
    IniReadSection(@ScriptDir & "\Combo.ini", "Combo")
    If Not @error = 1 Then
    _ItemsToCombo()
    EndIf
    $Ausgabe = GUICtrlCreateButton($aSprache[1][0], 16, 40, 83, 25, 0)
    $Neu = GUICtrlCreateInput($aSprache[2][0], 120, 8, 121, 21)
    $AddButton = GUICtrlCreateButton($aSprache[3][0], 128, 40, 107, 25, 0)
    $Sprachen = GUICtrlCreateGroup($aSprache[4][0], 272, 8, 113, 65)
    $Deutsch_Radio = GUICtrlCreateRadio("Deutsch", 280, 24, 65, 17)
    GUICtrlSetState($Deutsch_Radio, $GUI_CHECKED)
    $English_Radio = GUICtrlCreateRadio("English", 280, 48, 73, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Delete = GUICtrlCreateButton($aSprache[5][0], 40, 72, 145, 17, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    IniWrite(@ScriptDir & "\Combo.ini", "Combo", "0", "Platzhalter"); Damit _ItemsToCombo nicht abschmiert ;)
    IniWrite(@ScriptDir & "\Combo.ini", "Combo", "0.0", "Platzhalter"); Damit _ItemsToCombo nicht abschmiert ;)
    Global $i = 0
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $AddButton
    Local $Ini_Zahl = IniReadSection("Combo.ini", "Combo")
    Local $Input_Read = GUICtrlRead($Neu)
    If GUICtrlRead($Deutsch_Radio) = 1 Then
    If $Input_Read = $aSprache[2][0] Or $Input_Read = "" Then
    MsgBox(0, "Fehler", "Bitte Text eingeben")
    Else
    $hi = _CheckIniHihgest()
    GUICtrlSetData($Combo, $Input_Read)
    IniWrite(@ScriptDir & "\Combo.ini", "Combo", $hi, $Input_Read)
    EndIf
    ElseIf GUICtrlRead($English_Radio) = 1 Or $Input_Read = "" Then
    If $Input_Read = $aSprache[2][1] Then
    MsgBox(0, "Error", "Please type some text in")
    Else
    $hi = _CheckIniHihgest()
    GUICtrlSetData($Combo, $Input_Read)
    IniWrite(@ScriptDir & "\Combo.ini", "Combo", $hi, $Input_Read)
    EndIf
    EndIf
    GUICtrlSetData($Neu, "")
    Case $Deutsch_Radio
    ControlSetText($Fenster, "", $Fenster, $aSprache[0][0])
    GUICtrlSetData($Ausgabe, $aSprache[1][0])
    GUICtrlSetData($Neu, $aSprache[2][0])
    GUICtrlSetData($AddButton, $aSprache[3][0])
    GUICtrlSetData($Sprachen, $aSprache[4][0])
    GUICtrlSetData($Delete, $aSprache[5][0])
    Case $English_Radio
    ControlSetText($Fenster, "", $Fenster, $aSprache[0][1])
    GUICtrlSetData($Ausgabe, $aSprache[1][1])
    GUICtrlSetData($Neu, $aSprache[2][1])
    GUICtrlSetData($AddButton, $aSprache[3][1])
    GUICtrlSetData($Sprachen, $aSprache[4][1])
    GUICtrlSetData($Delete, $aSprache[5][1])
    Case $Ausgabe
    If GUICtrlRead($Deutsch_Radio) = 1 Then
    If GUICtrlRead($Combo) = "" Then
    MsgBox(0, "Fehler", "Nichts ausgewählt")
    Else
    MsgBox(0, "Info", "in der Combo ist folgendes ausgewählt: " & GUICtrlRead($Combo))
    EndIf
    ElseIf GUICtrlRead($English_Radio) = 1 Then
    If GUICtrlRead($Combo) = "" Then
    MsgBox(0, "Error", "Nothing selected")
    Else
    MsgBox(0, "Info", "you selected: " & GUICtrlRead($Combo) & " in the combo.")
    EndIf
    EndIf
    Case $Delete
    $x = _IniRead(GUICtrlRead($Combo))
    IniDelete(@ScriptDir & "\Combo.ini", "Combo", $x)
    _ItemsToCombo()
    GUICtrlSetData($Neu, "")
    EndSwitch
    WEnd
    Func _IniRead($Wert)
    Local $i = 0
    Local $check_ini
    Local $highest = _CheckIniHihgest()
    Do
    $i = $i + 1
    If $i > $highest Then
    MsgBox(0, "Error", "Wert nicht gefunden")
    ExitLoop
    Return -1
    EndIf
    $check_ini = IniRead(@ScriptDir & "\Combo.ini", "Combo", $i, "")
    Until $check_ini = $Wert
    If $check_ini = $Wert Then
    Return $i
    Else
    Return 1
    EndIf
    EndFunc ;==>_IniRead
    Func _CheckIniHihgest()
    Local $ini = IniReadSection(@ScriptDir & "\Combo.ini", "Combo")
    Local $i = 1, $a = 0, $aMax = 0
    Do
    $aMax = $aMax + $ini[$i][0]
    $a = $a + 1
    $i = $i + 1
    Until $a = $ini[0][0]
    If $aMax = 0 Or 1 Then
    $aMax = $aMax + 1
    EndIf
    Return $aMax
    EndFunc ;==>_CheckIniHihgest
    Func _ItemsToCombo()
    Local $ini = IniReadSection(@ScriptDir & "\Combo.ini", "Combo")
    If Not @error = 1 Then
    Local $i = 1, $a = 0
    Local $z = $ini[0][0] - 1
    Local $aItems[$z]
    Local $ini_item
    Local $Ini_Max = _CheckIniHihgest()
    Do
    $ini_item = IniRead(@ScriptDir & "\Combo.ini", "Combo", $i, "")
    If Not $ini_item = "" Then
    $aItems[$a] = $ini_item
    $a = $a + 1
    EndIf
    $i = $i + 1
    Until $i >= $Ini_Max
    $a = 0
    Local $x = UBound($aItems)
    GUICtrlDelete($Combo)
    $Combo = GUICtrlCreateCombo("", 8, 8, 97, 25)
    Do
    GUICtrlSetData($Combo, $aItems[$a])
    $a = $a + 1
    Until $a = $x
    EndIf
    EndFunc ;==>_ItemsToCombo

    [/autoit]

    Wie schon zuvor, Kritik erwünscht.

    Falls fragen zum Skript auftauchen, ich beantworte diese gerne.

  • Gui in 2 Sprachen darstellen - Wie?

    • Ealendil
    • 11. Januar 2010 um 03:58

    Hi,

    vielen Dank, hab den Fehler eben mal schnell editiert.

    PS: Kannte Oscars LoginBox noch nicht, hab sie aber gerade gefunden. Nice Work kann ich da nur sagen.

  • Gui in 2 Sprachen darstellen - Wie?

    • Ealendil
    • 11. Januar 2010 um 01:11

    Hi liebe AutoIt-ler,
    ich glaube zwar, dass dieses Thema schon beantwortet ist, dennoch wollte ich mal mein Sprachen-GUI-Beispiel zeigen.


    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)
    Opt("MustDeclareVars", 1)
    #Region ### START Koda GUI section ### Form=
    Global $Sprache[5][2] = [ _
    ["MsgBox öffnen", "Open MsgBox"], _
    ["Sprache: Deutsch", "language: English"], _
    ["Deutsch", "English"], _
    ["Beispiel, das ist ein bisschen Text", "Example, this is some text"], _
    ["Sprachen-Beispiel", "languages-example"]]
    Global $i = 0
    Global $Form = GUICreate($Sprache[4][0], 410, 187, 192, 124)
    Global $Group1 = GUICtrlCreateGroup("Sprachen/languages", 40, 16, 153, 65)
    Global $Radio_Deutsch = GUICtrlCreateRadio("Deutsch", 48, 32, 129, 17, 1)
    GUICtrlSetState($Radio_Deutsch, $GUI_CHECKED)
    Global $Radio_English = GUICtrlCreateRadio("English", 48, 56, 137, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Global $Button_MsgBox = GUICtrlCreateButton($Sprache[0][0], 256, 40, 89, 33, $WS_GROUP)
    Global $Label1 = GUICtrlCreateLabel($Sprache[1][0], 32, 96, 171, 17)
    Global $Progress1 = GUICtrlCreateProgress(16, 128, 361, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    Func Exits()
    Exit
    EndFunc ;==>Exits
    Func Deutsch()
    $i = $i + 100
    GUICtrlSetData($Progress1, $i)
    GUICtrlSetData($Button_MsgBox, $Sprache[0][0])
    GUICtrlSetData($Label1, $Sprache[1][0])
    ControlSetText($Form, "", $Form, $Sprache[4][0])
    EndFunc ;==>Deutsch
    Func English()
    $i = $i + 100
    GUICtrlSetData($Progress1, $i)
    GUICtrlSetData($Button_MsgBox, $Sprache[0][1])
    GUICtrlSetData($Label1, $Sprache[1][1])
    ControlSetText($Form, "", $Form, $Sprache[4][1])
    EndFunc ;==>English
    Func MsgBoxs()
    If GUICtrlRead($Radio_Deutsch) = 1 Then
    $i = $i + 100
    GUICtrlSetData($Progress1, $i)
    MsgBox(0, $Sprache[2][0], $Sprache[3][0])
    ElseIf GUICtrlRead($Radio_English) = 1 Then
    $i = $i + 100
    GUICtrlSetData($Progress1, $i)
    MsgBox(0, $Sprache[2][1], $Sprache[3][1])
    EndIf
    EndFunc ;==>MsgBoxs

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "Exits");Damit bei einem Klick auf "X", die GUI auch geschlossen wird.
    GUICtrlSetOnEvent($Radio_Deutsch, "Deutsch")
    GUICtrlSetOnEvent($Radio_English, "English")
    GUICtrlSetOnEvent($Button_MsgBox, "MsgBoxs")
    While 1
    Sleep(10)
    If $i = 100 Then
    Sleep(750)
    $i = 0
    GUICtrlSetData($Progress1, $i)
    EndIf
    WEnd

    [/autoit]


    PS: Ich progge erst seit 2 1/2 Monaten.
    PPS: Kritik erwünscht, solange diese konstruktiv ist. :S

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™