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

Beiträge von VinceA

  • AdlibRegister

    • VinceA
    • 10. Oktober 2013 um 01:09

    Hallo alpines danke für deine schnelle Antwort.
    Vor lauter Hirnen und Testen hab ich die Millisekunden nicht richtig berechnet.
    Hab dein Tip ausprobiert...die Nachricht wird alle Minute an der Server gesendet und nach AdlibUnRegister wird sie nicht mehr gesendet.
    Aber nun müsste die Nachricht wieder gesendet werden nach dem Game message: Match started! gelesen wurde aber leider kommt nichts.

    Ich weiss nicht ob ich alles verständlich erklärt habe aber die Funktion ist nur ein Teil vom Script

    Werde heute Abend mehr vom Script posten... muss mal ne runde schlafen. :sleeping:

  • AdlibRegister

    • VinceA
    • 9. Oktober 2013 um 23:37

    Hallo zusammen
    Ich weiss jetzt nicht ob der Themen Titel passt....
    Meine Funktion sollte in der Editbox lesen und bei der Zeile Game message: Match started! den Text ( zBsp.Welcome to the GiTM server )aus Input lesen
    und zum Beispiel alle 1 min an den Server senden und bei der Zeile Game message: Match ended! enden aber sobald wieder Game message: Match started! erscheint,
    sollte es wieder die Nachricht senden und so weiter.

    [autoit]

    AdlibRegister("Messages",10000)
    Func Messages()
    Local $readCon = GUICtrlRead($Edit1, "")
    Local $aStarted = StringRegExp($readCon, "message:\s(Match\sstarted\!)", 0)
    Local $aEnded = StringRegExp($readCon, "message:\s(Match\sended\!)", 0)
    If $aStarted = True Then
    $readInput = GUICtrlRead($Input3)
    ControlSend("C:\Program Files (x86)\Ubisoft\Far Cry 2\bin\FC2ServerLauncher.exe", "", "", "say " & $readInput & @CRLF)
    If $aEnded = True Then
    AdlibUnRegister("Messages")
    EndIf
    EndIf
    EndFunc ;==>Messages

    [/autoit]


    Aber leider stopt die Funktion nach AdlibUnRegister("Messages")

    Hab auch andere Möglickeiten probiert hab im google gesucht und hier im Forum aber leider komme ich nicht vom fleck.
    Leider bin ich mit meinen Autoit Kenntnisse am Ende.

    Wie kann ich das lösen? Was für Möglichkeiten gibt es da?

  • Hilfe bei StrinRegExp

    • VinceA
    • 31. August 2013 um 21:08
    Zitat von James

    Du könntest .+? durch [^,]+? ersetzen, da in den Parametern sowieso kein Komma vorkommen darf. (Sollte funktionieren, ist ungetestet.)

    Super, es funktioniert :thumbup:

    Danke an euch alle für die schnelle Hilfe :)

  • Hilfe bei StrinRegExp

    • VinceA
    • 31. August 2013 um 20:45

    Hallo chesstiger

    Ich habs mit

    Code
    "joined\s\((.+?)\,"


    probiert.

    Ausgabe

    [0] = , 0x3B8DFFFFFFFF
    [1] = Anonymous
    [2] = dysiek7
    [3] = HYENA_555
    [4] = Electrosystem
    [5] = DjMill1974
    [6] = Bhodhi

    Leider zeigt es jetzt .. , 0x3B8DFFFFFFFF.... an.
    Gibt es da keine andere Möglichkeit die Zeile
    8 - Client joined (, 0x42B5FFFFFFFF, XXX.209.53.91:0, PeerId: 0, Seq: 0, Data size : 0) - Session ID: 0x7B1F
    auszulassen?
    Oder muss ich hier auch mit _ArraySearch und _ArrayDelete arbeiten um... , 0x3B8DFFFFFFFF.. zu entfernen?

  • Hilfe bei StrinRegExp

    • VinceA
    • 31. August 2013 um 17:15

    Hallo zusammen :)

    Ich hab einiges über StrinRsgExp gelernt, aber leider komme ich hier nicht weiter..

    Mit folgendem Pattern

    [autoit]

    $aResult = StrinRegExp($newline,"joined\s\((.*?)\,",3)

    [/autoit]


    suche ich in einer Text-Datei die Namen der Spieler die unser Clan Server betreten und zwar in den Zeilen mit Client joined....

    8 - Client joined (, 0x42B5FFFFFFFF, XXX.209.53.91:0, PeerId: 0, Seq: 0, Data size : 0) - Session ID: 0x7B1F
    318 - Client joined (Anonymous, 0x24F0130C63AC9332, XXX.209.53.91:0, PeerId: 0, Seq: 0, Data size : 0) - Session ID: 0x8FEF10662DF05445
    340 - Client joined (dysiek7, 0x8FAAD9E658DF515, XX.185.149.52:0, PeerId: 1, Seq: 1, Data size : 4) - Session ID: 0x8FEF10662DF05445
    356 - Client joined (HYENA_555, 0x188BA0351874E372, 192.168.1.XX:0, PeerId: 2, Seq: 2, Data size : 4) - Session ID: 0x8FEF10662DF05445
    367 - Client joined (Electrosystem, 0x4A08FF9FF9334F3D, XX.22.230.189:0, PeerId: 4, Seq: 4, Data size : 4) - Session ID: 0x8FEF10662DF05445
    383 - Client joined (DjMill1974, 0xD6221D295BEE260C, 192.168.1.X:0, PeerId: 6, Seq: 5, Data size : 4) - Session ID: 0x8FEF10662DF05445
    385 - Client joined (Bhodhi, 0x7525C3AD08557D9C, 192.168.1.X:0, PeerId: 5, Seq: 6, Data size : 4) - Session ID: 0x8FEF10662DF05445

    Ausgabe

    [0] =
    [1] = Anonymous
    [2] = dysiek7
    [3] = HYENA_555
    [4] = Electrosystem
    [5] = DjMill1974
    [6] = Bhodhi

    Es funktioniert gut aber leider werden auch die folgenden Zeilen mit einbegezogen.

    8 - Client joined (, 0x42B5FFFFFFFF, XXX.209.53.91:0, PeerId: 0, Seq: 0, Data size : 0) - Session ID: 0x7B1F
    318 - Client joined (Anonymous, 0x24F0130C63AC9332, XXX.209.53.91:0, PeerId: 0, Seq: 0, Data size : 0) - Session ID: 0x8FEF10662DF05445

    Wie kann ich die beiden Zeilen bei der suche auslassen oder ausklammern?

  • Hilfe bei Logfile aulesen

    • VinceA
    • 11. August 2013 um 10:59

    Ok vertstehe....Danke für eure Hilfe... Thread ist gelöst.

  • Hilfe bei Logfile aulesen

    • VinceA
    • 8. August 2013 um 16:57

    ja super es passt.
    Aber leider wird die Logfile nicht mehr ausgelesen wenn der Server neustartet, dieLogFile wird kommplet neugeschrieben.
    Erst wenn ich das schript dann neustarte wird wieder ausgelesen.
    Ich hab mit ...

    [autoit]

    Run(@ScriptFullPath)

    [/autoit]

    probiert aber leider hängt es sich auf...
    Was kann ich da machen?

    Zitat von BiNu
    [autoit]

    If $line = $newline Then
    ;Selbe Zeile
    Else

    [/autoit]

    Ach ja was ich nicht so richtig verstehe ist, was meinst mit "Selbe Zeile"?
    $line = $newline?

  • Hilfe bei Logfile aulesen

    • VinceA
    • 4. August 2013 um 23:17
    Zitat von PainTain


    Warum das? 8|
    --> Forenregeln

    Vestehe ich nicht, ich hab doch die Forenregeln gelesen.
    Also ich will kein Bot programmieren oder ähnliches.....
    Ich habe ein Clan https://autoit.de/www.gamers-in-the-matrix.com und wir haben einige Server für Fc2 und Battlefield 3 und möcht lediglich in der Fc2 logfile schlussendlich alle chat messages rausfiltern und dann mit Datum und Zeit versehen in eine Textdatei schreiben.

  • Hilfe bei Logfile aulesen

    • VinceA
    • 4. August 2013 um 22:47

    Hallo
    Ich möchte ein Logfile von einem Spiel auslesen also immer die letzte Zeile.
    Hab in der Hilfe Filereadline gefunden und ausprobiert.

    Spoiler anzeigen
    [autoit]

    Local $file = FileOpen("test.txt", 0)

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

    If $file = -1 Then

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

    MsgBox(0, "Error", "Unable to open file.")

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

    Exit

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

    EndIf

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

    While 1

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

    Local $line = FileReadLine($file,-1)

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

    If @error = -1 Then ExitLoop

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

    MsgBox(0, "Line read:", $line)

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

    WEnd

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

    FileClose($file)

    [/autoit]


    Aber leider zeigt mir die MsgBox die Letzte Zeile nonstop also immer die gleiche Zeile bis in der logfile eine neue Zeile geschrieben wird, dann zeigt es die an aber die dann auch nonstop.
    Was kann ich machen das die letzte Zeile nur einmal anzeigt wird bis eine neue Zeile in der Logfile geschrieben wird?

  • In ListBox items/Einträge verschieben

    • VinceA
    • 31. Mai 2013 um 10:05

    Ok, ich vertsehe es jetzt. :)

    Ich habe noch sehr viel zu lernen. :S

    Für ein Anfänger ohne jegliche Vorkenntnisse ist die Hilfe nicht immer sehr einfach zu verstehen da braucht es doch Jemand der einem das Schritt für Schritt erhlärt um die ganze Logik zu verstehen.

    Vielen Dank Friesel für deine Mühe, danke auch an i2c. :)

  • In ListBox items/Einträge verschieben

    • VinceA
    • 31. Mai 2013 um 00:54

    Vielen dank Friesel für die ausführliche Erklärung über den OnEventMode.
    Das hört sich gut an, werde es auf jeden Fall versuchen anzuwenden.

    Was ich aber noch nicht so ganz kapiere ist die Endlosschleife.

    Zitat von Friesel

    3. Jetzt noch die Gui anzeigen lassen und in eine Endlosschleife gehn. Das Programm wartet nun, bis einer der Events ausgelöst wird:

    [autoit]

    GUISetState()

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

    While 1
    Sleep(5000)
    WEnd

    [/autoit]

    Mit Sleep (5000), wartet das Programm nun 5 Sekunden bis ein Event ausgelöst wird oder checkt es alle 5 Sekunden ob was passiert.?
    Kann man die 5000 verändern oder ist das eine Vorgabe?

  • In ListBox items/Einträge verschieben

    • VinceA
    • 30. Mai 2013 um 19:48

    Da ich mich mit GUIOnEventMode noch nicht so auskenne habe ich es für mich so angepasst.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    $hGUI = GUICreate("Form1", 317, 141, 192, 148)
    $hListBox = GUICtrlCreateList("", 8, 8, 193, 110, $LBS_STANDARD + $LBS_EXTENDEDSEL + $WS_VSCROLL)
    $iButton1 = GUICtrlCreateButton("up", 216, 8, 75, 25)
    $iButton2 = GUICtrlCreateButton("down", 216, 40, 75, 25)
    $iButton3 = GUICtrlCreateButton("load", 216, 70, 75, 25)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $iButton3
    $mpath = FileSelectFolder("Choose your Fc2-Map Folder", @UserProfileDir, 1)
    $mfcontent = _FileListToArray($mpath, "*.fc2map")
    For $i = 1 To $mfcontent[0]
    GUICtrlSetData($hListBox, $mfcontent[$i])
    Next
    Case $iButton1
    Up()
    Case $iButton2
    Down()

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

    EndSwitch
    WEnd

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

    Func Down()
    $multiSel = _GUICtrlListBox_GetSelItems($hListBox);==> gibt Array mit den Indizes der ausgewählten Elemente zurück

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

    If $multiSel[$multiSel[0]] = _GUICtrlListBox_GetCount($hListBox) - 1 Then Return ;==> wenn die unterste Auswahl das Ende der Liste erreicht hat
    $first = $multiSel[0]
    $last = 1
    $step = 1

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

    $swapString = _GUICtrlListBox_GetSelItemsText($hListBox)
    For $i = $first To $last Step -$step
    _GUICtrlListBox_DeleteString($hListBox, $multiSel[$i])
    _GUICtrlListBox_InsertString($hListBox, $swapString[$i], $multiSel[$i] + $step)
    _GUICtrlListBox_SetSel($hListBox, $multiSel[$i] + $step)
    Next

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

    EndFunc ;==>Down

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

    Func Up()
    $multiSel = _GUICtrlListBox_GetSelItems($hListBox);==> gibt Array mit den Indizes der ausgewählten Elemente zurück
    If $multiSel[1] < 1 Then Return ;==> wenn die oberste Auswahl den Anfang der Liste erreicht hat
    $first = 1
    $last = $multiSel[0] ;==> $multiSel[0] enthält die Anzahl der ausgewählen Elemente
    $step = -1

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

    $swapString = _GUICtrlListBox_GetSelItemsText($hListBox)
    For $i = $first To $last Step -$step
    _GUICtrlListBox_DeleteString($hListBox, $multiSel[$i])
    _GUICtrlListBox_InsertString($hListBox, $swapString[$i], $multiSel[$i] + $step)
    _GUICtrlListBox_SetSel($hListBox, $multiSel[$i] + $step)
    Next

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

    EndFunc ;==>Up

    [/autoit]

    Wie kann ich es machen das nur Einfach Auswahl möglich ist?
    Leider sind meine Versuche fehlgeschlagen es fehlerfrei hinzukriegen.

  • In ListBox items/Einträge verschieben

    • VinceA
    • 29. Mai 2013 um 23:56

    Hi alle

    Ist es möglich in einer Listbox items mit einem Button nach oben oder unten zu verschieben?

    Habe bis her nur Bespiele für Listview oder Combobox gefunden.

  • FileSaveDialog Problem

    • VinceA
    • 26. Mai 2013 um 14:19
    Zitat von Friesel


    Dir ist aber schon klar, dass die Dateiendung mit angegeben werden muss?

    also so:

    [autoit]

    $save = FileSaveDialog("Save File", @DesktopDir, "Config(*.cfg)", 16, "TEST.cfg")

    [/autoit]

    Nein wusste ich nicht hab auch nirgends was drüber gelesen auch nicht in der Hilfe oder ich muss es übersehen haben.

    Zitat von misterspeed

    Zum einen das, zum anderen wird die Warnmeldung alleine trotzdem nicht dein Problem lösen, denn wenn der Anwender "ja" sagt, dann musst du nachher trotzdem noch verhindern, dass der Text an die existierende Datei angehängt wird, sofern das von deiner Seite unerwünscht ist. Die Warnmeldung selbst hat also keinerlei Auswirkungen auf die mögliche fatale Entscheidung des Anwenders. Sie warnt den Anwender nur, verhindern kann sie nichts. Die Lösung deines eigentlichen Problems, siehe unten...

    Das wusste ich auch nicht, steht auch leider nichts in der Hilfe darüber. Ich bin bis jetzt immer davon ausgegangen das die Datei ersetzt wird.

    Zitat von misterspeed

    $hSave = fileopen($save,2+8 ) ; öffnet Datei im (Über-)Schreibmodus, wenn sie nicht existiert wird sie mit Verzeichnisstruktur angelegt, andernfalls mit neuem Inhalt überschrieben

    Hab jetzt einiges dazugelernt.

    Der Code funktiontert jetzt genau so wie ich es wollte.

    [autoit]

    Func SaveSettings()
    $isrvname = GUICtrlRead($Input1)
    $ctext = GUICtrlRead($Edit1)
    $save = FileSaveDialog("Save File", @UserProfileDir, "Config(*.cfg)", 16, $isrvname & ".cfg")
    If @error Then Return 0
    If StringRight($save, 4) <> ".cfg" Then $save &= ".cfg"
    $hSave = FileOpen($save, 2 + 8)
    FileWrite($hSave, $ctext)
    FileClose($hSave)
    GUICtrlSetData($Input5, $save)
    EndFunc ;==>SaveSettings

    [/autoit]

    misterspeed und Friesel danke für eure Tips und Hilfe :)

  • FileSaveDialog Problem

    • VinceA
    • 25. Mai 2013 um 14:42

    Mit der Variable $isrvname wird ein Name ausgelesen den der User in $Input1 schreibt, also kein Pfad.
    16er Flag funktioniert bei mir aber nur ohne $isrvname
    Es ist egal ob ich es so benutze

    [autoit]

    $save = FileSaveDialog("Save File", @DesktopDir, "Config(*.cfg)", 16, "TEST")

    [/autoit]


    oder so

    [autoit]

    $save = FileSaveDialog("Save File", @DesktopDir, "Config(*.cfg)", 16, $isrvname)

    [/autoit]


    Der Dialog öffnet sich, der Name wird eingefügt aber es kommt kein Hinweis dass die Datei vorhanden ist und ob sie überschrieben werden soll.
    Wenn die Datei vorhanden ist wird einfach alles in die .cfg File geschrieben so habe ich alles doppelt drin.

  • FileSaveDialog Problem

    • VinceA
    • 25. Mai 2013 um 13:37

    Windows 7 64 professional

  • FileSaveDialog Problem

    • VinceA
    • 25. Mai 2013 um 13:20

    Hab nochmal alles probiert aber so wie es aussieht funktioniert bei FileSaveDialog die options nicht mit default name zusammen.

    Ist das ein Bug oder liegt es am Betriebssystem?

  • FileSaveDialog Problem

    • VinceA
    • 24. Mai 2013 um 23:16

    Hallo :)

    Ich hab da ein paar Schwierigkeiten mit FileSaveDialog. Hab mich in der Autoit Hilfe und im Google
    schlau gemacht aber versteh einiges noch nicht.

    Ich habe Probeme es mit FileSaveDialog so hinzubekommen das wenn die Datei vorhanden ist dann die Frage beim Überschreiben einer Datei kommt.

    [autoit]

    $save = FileSaveDialog("Save File", @DesktopDir, "Config(*.cfg)", "", $isrvname)

    [/autoit]


    Hab dann nach Filter mit 16 versucht ging aber nur wenn ich $isrvname entfernt habe.

    [autoit]

    $save = FileSaveDialog("Save File", @DesktopDir, "Config(*.cfg)", 16, $isrvname)

    [/autoit]


    Funktioniert aber nur wenn ich $isrvname entferne.

    [autoit]

    $save = FileSaveDialog("Save File", @DesktopDir, "Config(*.cfg)", 16)

    [/autoit]


    Aber $isrvname brauche ich denn damit schreibe ich den Namen der Datei(Servers) direkt rein, aslo so dass der User nur noch die Datei am richtigen Ort speichern muss.

    Aslo habe ich eine andere Möglichkeit gesucht und habe es dann so hinbekommen

    Spoiler anzeigen
    [autoit]

    Func SaveSettings()
    $exist = GUICtrlRead($Input5)
    $isrvname = GUICtrlRead($Input1)
    $ctext = GUICtrlRead($Edit1)
    $save = FileSaveDialog("Save File", @DesktopDir, "Config(*.cfg)", "", $isrvname)
    ;~ If $save <> ".cfg" Then $save &= ".cfg"
    If @error Then Return 0
    If StringRight($save, 4) <> ".cfg" Then $save &= ".cfg"
    If Not FileExists($exist) Then
    FileWrite($save, $ctext)
    Else
    FileDelete($exist)
    FileWrite($save, $ctext)
    EndIf
    GUICtrlSetData($Input5, $save)
    EndFunc ;==>SaveSettings

    [/autoit]


    Ist das richtig so oder gibt es da eine andere Möglichkeit?
    Der Code funktioniert, nur erscheint es mir zu umständig.

  • Listview checked items in Ini speichern

    • VinceA
    • 12. Mai 2013 um 10:01

    8o Aaah verstehe.

    Jetzt seh ich schon ein bisschen durch den Nebel.

    Danke BugFix

  • Listview checked items in Ini speichern

    • VinceA
    • 11. Mai 2013 um 21:09

    Tip Top, es funktioniert :)
    Also ich hab $sOut2 entfernt und _GUICtrlListView_GetItemText in IniWrite integriert.

    Spoiler anzeigen
    [autoit]

    For $i = 0 To _GUICtrlListView_GetItemCount($ListView1) - 1
    If _GUICtrlListView_GetItemChecked($ListView1, $i) Then
    IniWrite(@ScriptDir & "\Maps.ini", "Section", $i, _GUICtrlListView_GetItemText($ListView1, $i, 0))
    EndIf
    Next

    [/autoit]


    Die Ini Datei.

    Spoiler anzeigen

    [Section]
    0=AR-16_Rumik - Pac!ent_2921486164596879929.fc2map
    1=Avatar sniper_PcsKiller_2307221835651582756.fc2map
    2=B32 SNIPER CLIFF ( NO CROSS )_PCS KILLER_3414014144499745551.fc2map
    3=B32 Tower war ( NO CROSS )_pcs killer_2377096040381240610.fc2map
    4=Bloody Valentine b.g_Badgirl4045_2595461279577437458.fc2map
    5=castillos_rocky_2881603500334490387.fc2map
    6=Cerros_Djamboo_3387031232638884750.fc2map
    7=Copan =A.o.S=_A.o.S.Djamboo_3382536806195096634.fc2map
    8=Crater Lake Dastiquel_GiTM Djamboo_2310500427957699614.fc2map
    9=Hole In The Ground v5.2_NC {1S2K}-=VictorWolf=- _-=VictorWolf=- _2607650652194403900.fc2map


    Es funktioniert , aber ist es von der programmierlogik her richtig?
    Was ich nicht verstehe, warum fällt das EndIf weg wenn ich If und Then in einer Zeile schreibe?

    Spoiler anzeigen
    [autoit]

    For $i = 0 To _GUICtrlListView_GetItemCount($ListView1) - 1
    If _GUICtrlListView_GetItemChecked($ListView1, $i) Then IniWrite(@ScriptDir & "\Maps.ini", "Section", $i, _GUICtrlListView_GetItemText($ListView1, $i, 0))
    Next

    [/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™