![]() |
Re: Servergenerator
THX und wie kann ich des jetzt mit einem anderen Programm auslesen bzw. ändern???
|
Re: Servergenerator
Oder: Programmname: Server_5000.exe -> Port = 5000
also liest das Programm den Port aus dem Dateinamen aus. Wie wäre es damit? |
Re: Servergenerator
er hat doch geschrieben, wie er es will
@topic: ich weiß nicht wie das geht |
Re: Servergenerator
Du kannst nach dem Compilieren deiner exe mit einem anderen selbst geschriebenen Programm den Port als String an die exe anhängen, also so, dass er, wenn du die exe mit dem Notepad öffnest, als letztes im Binärdurcheinander steht. Die exe stört das nicht, die läuft wie vorher.
Jetzt könntest du es so machen, dass dein Programm sich selbst kopiert, aus dieser Kopie den Port wieder ausliest und die Kopie letztendlich wieder löscht. Hoffe das war verständlich :) |
Re: Servergenerator
Des kommt mir aber auch reichlich kompliziert vor. Würde es nicht einfach gehen, dass ich den Speicherort wo der Port in der exe gespeichert ist raus finde (resourcestring) und ihn dann vor dem start mit einem selbst programmierten Programm ändere???
|
Re: Servergenerator
Das mit dem einfach hinten dranhängen ist doch noch einfacher. Du müsstest doch nur dein Proggy in einen Stream lesen und die letzten 6/7/wasauchimmer Zeichen in nen String lesen und den mit StrtoInt behandeln.
Ratte EDIT: habs eben probiert, geht wirklich. |
Re: Servergenerator
Könnte man machen, kommt ja fast auf das Selbe raus.
Aber meine Alternative ist nicht grade kompliziert :) Hier mal ein Beispiel: Du hast deinen fertig compilierten Server (Server.exe). So, jetz machst du dir folgendes Prog...
Delphi-Quellcode:
UNGETESTET!!
var
F: File; Port: String[5]; begin Port := '159'; //Port auf 159 setzen, der String "Port" bleibt trotzdem 5 Zeichen lang!! AssignFile(F, 'Server.exe'); Reset(F, 1); Seek(F, FileSize(F)); //Ganz an das Ende der Datei gehen BlockWrite(F, Port, SizeOf(Port)); //Port schreiben CloseFile(F); //Datei schließen end; Jetzt Server.exe mit Notepad öffnen. Ganz hinten müsste jetzt der Port 159 stehen, mit 2 Leerzeichen dahinter, da der String Port ja in jedem Fall 5 Zeichen lang sein soll (Macht das Ganze viel einfacher). So, Server.exe kann beim Start jetzt Folgendes tun...
Delphi-Quellcode:
UNGETESTET!!
var
F: File; Port: String[5]; begin CopyFile('Server.exe', 'Server_temp.exe', False); //Kopie erstellen AssignFile(F, 'Server_temp.exe'); Reset(F, 1); Seek(F, FileSize(F) - 5); //Dateizeiger an den Anfang des Portstrings, der ja immer 5 lang ist BlockRead(F, Port, SizeOf(Port)); //Port aus Datei in den String "Port" schreiben CloseFile(F); //Datei schließen DeleteFile('Server_temp.exe'); //Datei löschen end; Fertig :) Hoffe man kanns nachvollziehen. //EDIT: Roter Kasten is da....Hab mit so viel Mühe gegeben ... Ich schreibs trotzdem mal :mrgreen: |
Re: Servergenerator
THX für die Hilfe, funktioniert einwandfrei!!!! :thumb:
|
Re: Servergenerator
BlockRead und BlockWrite, wo ist da der unterschied zu Read und Write??
Rausgefunden hab ich das Block* das binär liest oder schreibt, aber warum muss man das machen? |
Re: Servergenerator
Daraus lässt sich schließen, dass du kein Englisch kannst :mrgreen:
Read = Lesen Write = Schreiben BlockRead liest Dateien binär und BlockWrite schreibt sie binär... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz