![]() |
Exe verändern, mal wieder
Hi,
ich möchte auch mal eine exe (die von mir selbst stammt) verändern. Habe die SuFu benutzt, aber nichts eindeutiges gefunden. Das Problem ist also folgendes: Ein Hauptprogramm kann viele kleine unterexes erstellen. Dies tue ich über die ![]()
Delphi-Quellcode:
Das stammt aus einem Beispielprogrammlein, das ich gemacht hab. Zum Text will ich im Programm omg.exe einfahc die Konstante Message, die bisher OMG enthält, einfach in OMFG ändern. Sie befindet sich im Delphiprojekt in Zeile 23.
type
TText= record Text1, Text2: string[200];//Beispiel end; procedure TForm1.Button1Click(Sender: TObject); var FileStream: TFileStream; Text: TText; Pfad: AnsiString; begin Pfad:= 'C:\pomg.exe'; ZeroMemory(@Text, SizeOf(Text)); if FileExists(Pfad) then begin FileStream:= TFileStream.Create(Pfad, fmOpenReadWrite); try FileStream.Position:= 23;//Beispiel Leseposition FileStream.Read(Text, SizeOf(Text)); Text.Text1 := ' Message:String=''OMFG'''; //weiterverarbeiten FileStream.Position:= 23;//Leseposition if FileStream.Write(Text, SizeOf(Text))= SizeOf(Text) then Showmessage('fertig'); finally FileStream.Free; end; end; end;
Delphi-Quellcode:
steht in der Zeile.
Message:String='OMG';
Wie krieg ich das vernünftig hin, oder fällt jemanden vielleicht noch eine bessere Methode ein? mfg fortuneNext PS: Nebenfrage: Kann ich die Splitmethode eigentlich so modifizieren, dass die herausgeholte Datei trotzdem noch drin bleibt? Also nicht mehr | Datei3 =SPLIT= Datei1 + Datei2 | sondern | Datei3 =SPLIT= Datei3 + Datei2 | ? |
Re: Exe verändern, mal wieder
Du solltest eventuell mit Parametern arbeiten, die du EINER Echse beim Start übergibst.
|
Re: Exe verändern, mal wieder
Verzeihung, wie meinen?
|
Re: Exe verändern, mal wieder
Es macht allgmein keinen Sinn, für jede Version einer Anwendung, die sich bei dir letzten endes nur durch einen Integerwert unterscheidet, eine eigene Exe zu kompilieren.
Du hast prinzipiell 2 Möglichkeiten, deine Anwendung zu parametrisieren:
Du brauchst somit nur eine kompilierte Version deiner Anwendung. Alles Konfigurierbare wird über einen der beiden genannten Wege geregelt. |
Re: Exe verändern, mal wieder
Achso meinst du. Naja es ist so, die Anwendungen unterscheiden sich auch noch in ihrer Funktion; ich speichere nämlich bereits die Konfiguration in einer .ini . Im Prinzip verweisen die kleinen Dateien auf einen Ordner. In meiner Inidatei steht jetzt:
OrdnerExe1 = C:/Bla OrdnerExe2 = C:/Blabla OrdnerExe3 = C:/Blablabla OrdnerExe4 = C:/Test etc. Die Konstante soll jetzt der kleinen exe überhaupt sagen, welche ID es denn hat, d.h. ob es auf den 1,2,3,4... Wert zugreifen soll. Und ohne diese Konstante wissen die Echsen eben nicht, welchen Wert sie überhaupt benutzen sollen, wenn ich das in eine Ini schreibe, oder? Und jedenfalls, genau das ist es eben, ich brauche ganz viele Kompilierungen der kleinen exe, sonst funktioniert das Programm nicht, da es eben denn Sinn hat, mehrere zu machen! |
Re: Exe verändern, mal wieder
|
Re: Exe verändern, mal wieder
Was spricht dagegen, in der INI Datei mit anzugeben, welcher Ordner benutzt werden soll.. Oder eben per Parameter zu übergeben. Ich denke, dein Konzept ist nicht gerade optimal gewählt.
|
Re: Exe verändern, mal wieder
Mit Version meinte ich eigentlich jetzt nicht so unbedingt die Ausgabe, sondern eben auf welche es zugreifen soll. Obs jetzt Nr.1,2,3,4 etc ist. Das in die Versionsinfo zu schreiben scheint mir dann schon ein bischen billig, außerdem ist die schon belegt.
Oder was meinst du, vllt meinst du was adneres mit Ressourcen als ich? Kenne mich da nicht so aus :D @ jelly: Ja, dann zeig mal wie. Ich hab also 2 exe-Dateien. Die eine soll mich z.B. nach C:/Programme, die andere nach C:/Dokumente und Einstellungen führen. Wie will man das mit einer Ini machen? Ich schreib jetzt also rein Pfad1 = C:/Programme Pfad2 = C:/Dokumente und Einstellungen Woher weiss jetzt die eine exe dass sie Pfad1 und die andere exe Pfad2 nehmen soll? Also ich meine, wie solld er Code da aussehen?
Delphi-Quellcode:
Konzept nicht optimal gewählt... naja, wie soll ichs halt anders machen. Man hat eben 200-500 kleine exe Dateien, jede verlinkt zu einem anderen Ordner. Mag komisch erscheinen, aber muss so sein für das weitere Projekt.
Showmessage(Ini.ReadInteger('Main','Pfad//?//',0);
Und wie übergebe ich eigentlich Parameter? |
Re: Exe verändern, mal wieder
Zitat:
Code:
Und prüfe z.B. im Oncreate Ereignis deines Hauptformulars:
DeinProgramm.exe 1
Delphi-Quellcode:
An deinem Konzept ist definitiv was falsch, wenn du 200 oder 500 Echsen erstellen musst... Erzähl mal, was du überhaupt vorhast, und vor allem, warum du so überzeugt bist, dass du um diese 200 Echsen nicht drumrumkommst.
procedure TfrmMain.FormCreate(Sender: TObject);
var ini : TIniFile ; pfad : string ; begin if (ParamCount >= 1) then begin ini := TIniFile.create('settings.ini') ; pfad := ini.ReadString('PATHS', 'Pfad' + ParamStr(1),'') ; ShowMessage(pfad); end; end; |
Re: Exe verändern, mal wieder
Hm, und wie bewirke ich, dass die Zahl bei jeder der .exen sich erhöht?
Also das Programm soll vorläufig nur für meinen Nutzen da sein. Und zwar möchte ich gerne einen riesigen Haufen von Ordnern Passwortbelegen. Das muss nicht gerade sicher sein, halt nur dass man nicht direkt dran kommt. Also habe ich mir gedacht: Tausche ich einfach meine ganzen Ordnerknöpfe mit einzelnen .exe Dateien aus, die mich nach der Passwortabfrage dann dahinlinken. Die Ordner selber vergrabe ich dann irgendwo tief im System, wo man sie so gut wie nicht finden kann. Das ganze noch als Systemdatei tarnen und verstecken, alles ausblenden und der Ordner ist ohne zuhilfename besonderer Software nicht mehr zu finden. Und damit ich jetzt schnell dran komme, eben .exe Dateien auf meinen Desktop, die genau wie die normalen Verknüpfungen sind, nur dass eben vorher das Passwort abgefragt wird. Habe mich da lange umgeguckt, ob es sowas nicht schon gibt, aber ich habe nach langem Suchen nichts gefunden, was meinen Ansprüchen entspricht. FolderAcess z.B. macht die Symbole zu einem Systensteuerungslink, man kann sie entsichern indem man das Hauptprogramm startet und da das Passwort eingibt. Aber nirgendwo findet sich ein "Klick -> Passwort -> Da" - Programm. Wie gesagt, muss nicht sicher sein, nur dass mans nicht, wenn mans auf meinem Desktop sieht, einfach öffnen kann. Und da das wirklich viele Ordner sind, eben 200 Dateien, nichtwahr ;D Frage: Warum ich nicht einfach ein Programm mache, das mich erst nach dem PW fragt und dann nach dem Ordner, den ich haben möchte? Ganz einfach: Gefällt mir nicht so wie dass ich einfach normale Symbole auf dem Desktop habe :D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 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