Beiträge von PainTain

    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.

    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:

    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.

    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:

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


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


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


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


    Func _Exit()
    Exit
    EndFunc

    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:


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


    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

    Hier mal ein kleiner Ansatz:

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


    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


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


    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.

    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.


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