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

Beiträge von PainTain

  • Möglichkeiten externe Scripts in laufende .Exe einzubinden?

    • PainTain
    • 5. April 2014 um 18:06
    Zitat von misterspeed

    Man könnte darüber zum Beispiel einen Kopierschutz realisieren der auf eine bestehende Internetverbindung mit dem Lizenzserver angewiesen ist. Auch ein Lizenz / Upgrade Model mit erweiterten Funktionen für zahlende Nutzer wäre so realisierbar usw.

    Ist es sinnvoll, zuverlässig genug oder eher schwachsinnig sowas zu tun? Das ist immernoch eine Frage die sich der Programmierer selbst stellen muss.


    Aber für so eine Art Kopierschutz eignet sich AutoIt ja eigentlich garnicht, da eigentlich jeder das ganze dekompilieren kann.

    @TE: Die imho beste Methode, um dein Vorhaben umzusetzen, wäre die, die misterspeed vorgeschlagen hat. Also das du sozusagen eine eigene kleine "Skript-Sprache" machst.

  • InetGet - Download ohne Zeilenumbruch?

    • PainTain
    • 5. April 2014 um 14:14
    Zitat von chesstiger

    Das liegt wahrscheinlich an der Zeilenumbruchzeichensequenz (was ein Wort :D).
    Der Server ist wahrscheinlich ein Server auf Linux- oder Unix-Basis, und nutzt demnach als Zeilenumbruchzeichen Line Feed, oder kurz LF. Windows aber nutzt zum Darstellen eines Zeilenumbruchs die Sequenz Carriage Return & Line Feed, also CRLF.

    Wenn du die Datei mit CRLF von Windows per FTP irgendwo hochlädst, dann kann es passieren, dass aus den CRLF automatisch LF werden. Hin und wieder findet da eine automatische Umwandlung statt. Die meisten Browser stellen die Datei dann richtig dar, auch unter Windows. Bei einem eigenen Programm musst du dich aber selber um die LF kümmern. Eigentlich sollte ein StringReplace helfen.

    Gruß


    Er koennte auch StringAddCR benutzen. :whistling:

  • Kompilierte EXE mit 3.3.10.2 reagiert sehr langsam

    • PainTain
    • 3. April 2014 um 15:50

    Ehm .. Da auch die Funktionen, die du da verwendet hast, keine Standard-Funktionen ist, kann man nur raten. Am besten mal ganzes Skript posten. ;)
    Aber ich wuerde auf die _Recv_From_Server - Funktion tippen, da ich vermute, dass du in dieser Funktion was ueber TCP empfaengst, und das ganze in einer Schleife. Und das bremst natuerlich die Messageloop.

  • Kompilierte EXE mit 3.3.10.2 reagiert sehr langsam

    • PainTain
    • 3. April 2014 um 15:22

    Wuerde da kein Problem sehen, aber was macht den diese "KeepAlive"-Funktion? Am besten postest du die auch noch.

  • Mehrere While Schleifen?

    • PainTain
    • 1. April 2014 um 17:33

    Das hinter dem While-Keyword ist die Bedingung. Ist ein großer Unterschied (Hast du nicht gesagt du hast schon in VB gecoded?)
    Jedenfalls, am besten solltest du dir wirklich mal das Helpfile anschauen und die Beispiele durcharbeiten, da du ja anscheinend noch nichteinmal wirklich die Grundlagen beherrscht.

    Uebrigens solltest du F11/F12 als Hotkeys vermeiden, da die oft fuer bestimmte Window-Funktionen reserivert sind.
    Btw. meinst du vielleicht sowas:

    [autoit]

    HotKeySet("{F1}", "_Start1")
    HotKeySet("{F2}", "_Start2")
    HotKeySet("{ESC}", "_Exit")

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

    While 1 ; Eins ist hier die Bedingung, 1 = True somit Endlosschleife.
    Sleep(100)
    WEnd

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

    Func _Start1()
    Send('Test1', 1)
    EndFunc

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

    Func _Start2()
    Send('Test2', 1)
    EndFunc

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

    Func _Exit()
    Exit
    EndFunc

    [/autoit]
  • Send Keys in Inaktives Fenster

    • PainTain
    • 31. März 2014 um 20:57
    Zitat von SelfOwn3D

    Und wo finde ich dies? :P


    Wie waere es hiermit?
    Am besten laedst du dir auch gleich die deutsche Hilfe fuer SciTE runter. Siehe links in der Downloads-Box.

  • Verbindung mit ODB

    • PainTain
    • 29. März 2014 um 22:49

    Hier waere ein guter Anfang: http://www.autoitscript.com/wiki/ADO

    Ansonsten wuerde ich dir an dieser Stelle eine SQLite-Datenbank empfehlen, da eine SQLite-UDF direkt mit AutoIt mitkommt.
    (Wenn ich mich nicht komplett irre, kann SQLite ja auch ODBs oeffnen, oder?)

  • txt auslesen und für jede Zeile Button + Checkbox erstellen

    • PainTain
    • 28. März 2014 um 20:24
    Zitat von misterspeed

    Bringt dir nur nix, weil bei dir alle Buttons an der selben Position sind und sich überlappen. Wenn man das dynamisch erstellt muss man natürlich auch noch die Position in Abhängigkeit des Schleifenzählers berechnen.

    Also sowas in der Art:

    [autoit]


    $idButtons[$i-1] = GUICtrlCreateButton($f[$i], 20, 120 + ($i*60), 200, 40)

    [/autoit]


    Ja natuerlich, wie bloed von mir. Ich hatte das mal schnell im Browser getippt.
    Aber mal abgesehen davon, ich sagte ja auch 'Ansatz' und nicht 'fertiges Skript' :P

  • txt auslesen und für jede Zeile Button + Checkbox erstellen

    • PainTain
    • 27. März 2014 um 16:00

    Hier mal ein kleiner Ansatz:

    [autoit]

    $f = StringSplit(FileRead('pc.txt'), @CRLF)
    $idButtons[$f[0]]

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

    For $i = 1 To $f[0]
    $idButtons[$i-1] = GUICtrlCreateButton($f[$i], 20, 180, 200, 40)
    GUICtrlSetFont(-1, 14, 400, 0, "Comic Sans MS")
    Next

    [/autoit]


    Dann enhaelt $idButtons[0] das Handle des "PC1" - Button, $idButtons[1] das Handle des "PC2" - Button usw.

  • Unterstützung bei Script

    • PainTain
    • 26. März 2014 um 21:03
    Zitat von VinceA

    So ich habs.
    Leider war StringInStr zu ungenau also habe ich es mit StringRegExp versucht und es funktioniert, Tip Top.

    Spoiler anzeigen
    [autoit]

    Global $adminDataFile = @ScriptDir & "\AdminsDatabase.txt" ; Pfad und Name der Datenbank-Datei
    Global $fileJoinedPlayers = @ScriptDir & "\JoinedPlayers.txt"
    Func ReadAdminCommands()
    Local $commandkickT, $String1, $String2
    $commandkickT = StringRegExp($newReadLine, "message\:\s(.*)\s\(All\)\:\s(akick)\s(.*)\s(T)", 3); Prüft, ob ein Admin-Befehl Im Server Chat eingegeben wird ( [PlayerName] akick [PlayerName] T ).
    If IsArray($commandkickT) Then ; Prüft, ob die Variable ein Array ist.
    $String1 = FileRead($adminDataFile) ; Lesen der TXT-Datei(Admin Liste)
    If StringRegExp($String1, "\b(" & $commandkickT[0] & ")\|") = True Then ; Prüft, ob der Spieler ein Admin ist.
    _FileWriteLog($reportsFile, "Admin " & $commandkickT[0] & " message: " & $commandkickT[1] & " " & $commandkickT[2] & " " & $commandkickT[3], -1) ; Schreibt einen Eintrag in die ServerLog Datei.
    $String2 = FileRead($fileJoinedPlayers) ; Lesen der TXT-Datei(Spieler die den Server betreten haben.)
    If StringRegExp($String2, "\b(" & $commandkickT[0] & ")\|(.*)", 3) == StringRegExp($String1, "\b(" & $commandkickT[0] & ")\|(.*)", 3) Then ; Prüft, ob der Name und ID des Admins in der Admin Liste Identisch ist mit dem des Admins der gerade den Kick-Befehl gab.
    If StringRegExp($String1, "\b(" & $commandkickT[2] & ")\|") = True Then ; Wenn es zutrifft dann -
    StdinWrite($fc2, "tell " & $commandkickT[2] & " You have been Kicked " & $commandkickT[2] & @CRLF) ; wird eine Nachricht an den PLayer geschickt.
    Sleep(2000) ; Pausiert damit der Player die Nachricht noch lesen kann bevor er gekickt wird
    StdinWrite($fc2, "net_kickclient " & $commandkickT[2] & @CRLF) ; Der Kick -Befehl wird an den Server gesendet.
    StdinWrite($fc2, "say " & $commandkickT[2] & " was kicked by Admin." & @CRLF) ; Die Nachricht informiert alle anderen Spieler weshalb der Player gekickt wurde.
    StdinWrite($fc2, "say " & "Reason: Team-Killing." & @CRLF)
    _FileWriteLog($reportsFile, "Admin " & $commandkickT[0] & " kicked " & $commandkickT[2] & " for Team-Killing.", -1) ; Schreibt einen Eintrag in die ServerLog Datei.
    _FileWriteLog($bannedPlayersFile, "Admin " & $commandkickT[0] & " kicked " & $commandkickT[2] & " for Team-Killing.", -1); Schreibt einen Eintrag In Die Datei der gebannt Spieler.
    Else
    StdinWrite($fc2, "tell " & $commandkickT[0] & " Player Not Found" & @CRLF) ; Sendet eine Nachricht an den Admin wenn der Spieler nicht gefunden wurde.
    _FileWriteLog($reportsFile, "Return message to " & $commandkickT[0] & ": Player Not Found", -1); Schreibt einen Eintrag in die ServerLog Datei.
    EndIf
    EndIf
    EndIf
    EndIf
    EndFunc ;==>ReadAdminCommands

    [/autoit]

    Ich hab noch eine Frage: Ist FileOpen zwingend bei FileRead?

    Alles anzeigen


    Sehr gut, das das Problem nun gelöst ist. Bitte setz noch den Thread-Präfix auf "gelöst" ;)

    Und nein, FileOpen ist nicht benötigt, du kannst bei FileRead auch einfach den Dateinamen angeben. FileOpen ist aber von Vorteil, wenn du oft und wiederkehrend die Datei lesend musst, da dann nicht jedes Mal die Datei neu geöffnet werden muss. Aber wenn du die Datei nur einmal auslesen willst, dann genügt auch FileRead direkt.

  • Unterstützung bei Script

    • PainTain
    • 25. März 2014 um 16:13
    Zitat von VinceA

    Bitte liess den Thread aufmerksam durch das hat nichts mit Spiele-Automatisierung zu tun, es ist eine Funktion von meinem Admin Tool.


    Ja, bevor du den Thread bearbeitet hattest, war nur der Text am Anfang und der Text-Ausschnitt. ;) Und abgesehen davon, ja ich weiß, ein Admin-Tool, aber trotzdem bleib ich da gerne vorsichtig.
    Also musst du mich nicht gleich für komplett dumm hinstellen.

    Aber ich bin ja nicht so, also hier mal ein alternativer Lösungsvorschlag:
    Lies doch einfach die 2 Dateien mittels FileRead ein, und überprüfe mit StringInStr ob der Admin-Name + ID in derAdminDatabase.txt & JoinedPlayers.txt vorhanden ist. Wenn ja, dann auch noch mittels StringInStr in der JoinedPlayers.txt nachschauen, ob der Spieler überhaupt am Server ist. Wenn auch ja, dann den Kick-Befehl senden. Mehr sollte das ja nicht sein.

  • Unterstützung bei Script

    • PainTain
    • 25. März 2014 um 15:40

    Und wobei brauchst du nun überhaupt Hilfe? :huh:

    Abgesehen davon, ich bin mir nicht sicher ob das unter Spiele-Automatisierung etc. fällt. Müsste ein PU/Mod/Admin was dazu sagen.

  • MySQl starten nach FileOpenDialog nicht möglich

    • PainTain
    • 17. März 2014 um 12:31

    Hier werden grundsätzlich keine Threads geschlossen, es genügt, wenn du den Präfix des Threads auf "gelöst" setzt.
    Dazu einfach den 1. Beitrag bearbeiten.

  • Global Variablen abfragen

    • PainTain
    • 16. März 2014 um 21:36
    Zitat von Ilse

    Wie spreche ich diese Variable im 2. Script an? (...hat bei mir irgendwie nicht geklappt.)


    Du musst dir nur die Variablen $CmdLineRaw bzw. $CmdLine anschauen.
    Siehe hier.

  • Global Variablen abfragen

    • PainTain
    • 16. März 2014 um 16:49

    Entweder per IPC oder alternativ (was wesentlich unkomplizierter wäre) einfach den Wert per Commandline an das 2. Skript übergeben.

  • Wie erstellt man Dokumentationen zu einem vorhandenden Autoit Script?

    • PainTain
    • 21. Februar 2014 um 22:26

    Für solch einen UDF-Header einfach in die Zeile klicken wo dein "Func Bla(..)" steht und dann Ctrl+Alt+H drücken ;)
    (Alternativ im Tools-Menü auswählen)

  • Auslesen und darstellen von JPG aus mySQL BLOB Spalten

    • PainTain
    • 20. Februar 2014 um 20:24

    Ohne Skript können wir dir schlecht helfen.
    Poste es bitte mal.

  • Komisches Verhalten einer Variable, Anfängerfehler?

    • PainTain
    • 17. Februar 2014 um 18:30

    Mal abgesehen davon, sollte man ja globale Variablen wenn möglich vermeiden. Siehe hier: https://autoit.de/index.php?page=Thread&postID=203773

  • Text im Button unterschiedlich formatieren

    • PainTain
    • 16. Februar 2014 um 13:51
    Zitat von De Rand Ere

    misterspeed:

    Ja , das ist fast genau das, was ich gesucht habe. Danke !!!
    Eins ist mir noch unklar:

    In der Zeile: $TTTCompStart = GUICtrlCreateButton("Überschrift", 30, 190, 180, 90, 14, -1) setzt Du als Style den Wert "14". Im Normalfall wird der Style anders beschrieben, z.B. "$BS_MULTILINE ".

    Wo finde ich die Werte, die Du hier verwendest. Die Umrechnung des "Internen Wertes" hat nicht gefunzt ... oder ich habe's falsch umgerechnet.


    Das wäre der Style $BS_COMMANDLINK
    In der ButtonConstants.au3 findest du alle Button-Styles.

  • WinHttp und InetGet

    • PainTain
    • 14. Februar 2014 um 15:03

    Ich denke, alpines meinte den 3. Parameter bei InetGet ;)

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™