Ich möchte eine ".exe" - Datei abspeichern die eine andere überschreiben soll (Dateien bis auf ein Parameter gleich), die zu überschreibende ".exe" - Datei hat schon einen vollständigen Code.
Mit dem überschreiben der Datei möchte ich das ändern einiger Parameter erreichen.
Beispiel:
Bei Datei 1 ( Zu überschreibende Datei ) gibt es ein String der den Wert "Test" trägt
Diesen Wert kann ich per Buttonclick abfragen wenn ich die Datei 1 öffne und dort auf den richtigen Button klicke.
Die Datei 2 soll nun die zu überschreibende Datei mit einem in Datei 2 eingestellten Wert (Wert = "Klappt") überschreiben.
Der Wert den ich per Button abfrage sollte jetzt in Datei 1 "Klappt" sein.
d.h. Ich möchte einige Werte die ich vorher dort eingeben habe "dauerhaft übergeben", es soll jedoch nicht über eine externe Datei (".ini" o.ä. funktionieren)
Ja ich habe 2 Projekte mit VB erstellt nun möchte ich das wenn man bei Projekt 1 die Textbox verändert & auf speichern drückt, man die exe von Projekt 2 überschreibt und die nun immernoch funktioniert allerdings den Wert klappt statt test hat (wenn man klappt in die Textbox bzw string geschrieben hat)
also den Vorgang die Datei_1.exe von string test über patchen zu string klappt zu bringen allerdings über Datei_2.exe die das ganze patchen soll in der man die Werte festlegen kann
____
Edit:
Ich habe einen Code um das ganze zu erreichen:
Code:
Dim s As New SaveFileDialog
FileOpen(1, Application.StartupPath & "\Zuüberschreibende.exe", OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Default)
Zuüberschreiben = Space(LOF(1))
FileGet(1, Zuüberschreiben)
FileClose(1)
FileOpen(1, s.FileName & ".exe", OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Default)
FilePut(1, Zuüberschreiben & TextBox1.Text & TextBox2.Text)
FileClose(1)
jedoch weiß ich nicht wie das ganze Funktioniert ( Was wird in der zu überschreibenden Datei geändert?
Wie kann ich damit erreichen dass ein bestimmter string den Wert der Textbox1 annimmt und ein anderer string den Wert von textbox2
Da will wohl wer die Credits mit seinem Namen neu beschriften.
ich besitze beide Projekte und beide von mir erstellt,
Fremde Credits könnte man mit einem Hex Editor ändern was ich ja nicht vor habe dafür bräuchte ich kein extra Programm, die Benutzer meines Projektes sollen nur später Werte an die .Exe-Datei meines anderen Projektes weiter geben, können hinzugefügt werden oder geändert werden das spielt keine Rolle
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim s As New SaveFileDialog
Dim Programm As String
s.ShowDialog()
If s.FileName > "" Then
FileOpen(1, Application.StartupPath & "\Programm2.exe", OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Default)
Programm = Space(LOF(1))
FileGet(1, Programm)
FileClose(1)
FileOpen(1, s.FileName & ".exe", OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Default)
FilePut(1, TextBox1.Text & ":" & TextBox2.Text & ":" & TextBox3.Text & ":" & TextBox4.Text & ":" & TextBox5.Text)
FileClose(1)
MsgBox("Fertig")
End If
End Sub
End Class
Für das lesen:
Code:
Public Class Form1
Public gesamtewerte As String
Public wert1 As String = "Test1"
Public wert2 As String = "Test2"
Public wert3 As String = "Test3"
Public wert4 As String = "Test4"
Public wert5 As String = "Test5"
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
FileOpen(1, Application.ExecutablePath, OpenMode.Binary, OpenAccess.Read, OpenShare.Shared)
gesamtewerte = Space(LOF(1))
FileGet(1, gesamtewerte)
FileClose()
Split(gesamtewerte, ":")
wert1 = gesamtewerte(0)
wert2 = gesamtewerte(1)
wert3 = gesamtewerte(2)
wert4 = gesamtewerte(3)
wert5 = gesamtewerte(4)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MsgBox("Wert1: " & wert1 & vbCrLf & "Wert2: " & wert2 & vbCrLf & "Wert3: " & wert3 & vbCrLf & "Wert4: " & wert4 & vbCrLf & "Wert5: " & wert5, MsgBoxStyle.OkOnly)
End Sub
End Class
Mein Problem im Moment besteht darin, dass das Programm was die Werte laden soll, schon im ungeänderten Zustand falsche Werte anzeigt.
Nach dem ändern bekomme ich auch ein Fehler, beim öffnen der Datei im geänderten Zustand gibt es die Windowsfehlermeldung zurück dass es sich um eine fehlerhafte Datei handelt und diese nicht kompatibel ist.
Mein Problem im Moment besteht darin, dass das Programm was die Werte laden soll, schon im ungeänderten Zustand falsche Werte anzeigt.
Was hindert einen daran den Debugger anzuschmeissen und zu überprüfen, woher warum wieso... ? Debuggen gehört auch zum entwickeln, mal mehr mal weniger
Was hindert einen daran den Debugger anzuschmeissen und zu überprüfen, woher warum wieso... ? Debuggen gehört auch zum entwickeln, mal mehr mal weniger
Beide Programme funktionieren (muss man theoretisch nicht debuggen),
Programm 1 läd programm 2 soll Werte ändern und es mit geänderten Werten abspeichern(überschreiben), das funktioniert allerdings nicht im Debugger-modus.
Das Problem was ich habe liegt wahrscheinlich daran dass Programm 1 das Programm 2 nicht richtig überschreibt, so dass Programm 2 das nach dem überschreiben beim Start auch richtig lesen kann.
Allerdings weiß ich dort nicht wo der Fehler liegt und kann dies auch nicht debuggen.
Verstehe ich dein Programm richtig:
Du hängst deine Werte hinten an die exe an? Also du überschreibst nicht gezielt Variablen oder Ressourcen der Datei, sondern schreibst einfach ganz hinten hinter deine neuen Werte?
Dann kann ich dir deine Probleme erklären.
Es hat am Anfang falsche Werte, weil es natürlich mit irgendwelchem Code endet und nicht mit deinen Werten. Dazu kommt, dass in der Datei überall irgendwelche Doppelpunkte stecken könnten, die du dann natürlich auch findest.
Nach dem Überschreiben lässt sich das Programm nicht mehr starten, weil Windows natürlich nicht damit klar kommt, dass die exe plötzlich mit "einTollerString123" endet. Ein Programm ist keine Textdatei, da kannst du nicht einfach so etwas hinten anhängen.
Ich würde dir wirklich empfehlen, mach irgendeine Datei in die du deine Werte speicherst. Es ist ja völlig egal ob die im selben Ordner liegt oder irgendwo tief im Benutzerprofil versteckt ist. Wenn du Spass dran hast kannst du auch die Registry dafür nehmen. Aber dieses "Variablen überschreiben" ist die Mühe kaum wert, mir will auch grade kein sinnvoller Einsatz dafür einfallen.
Ignoriert diesen Beitrag einfach, wenn ich falsch liege. Mit Visual Basic kenne ich mich überhaupt nicht aus.
Keine Ahnung wie das in VB lautet aber ich würde es folgendermassen angehen:
- Wert an einen extern Server übergeben für eine "bedinge Kompilierung des Inhalts mit dem neuen Wert"
- die zu ersetzende Exe umbennen (damit es keine probleme gibt, falls sie gerade ausgeführt wird)
- neue Assembly in das Verzeichnis der alten reinkopieren
- neue Assembly ausführen lassen
- neue Assembly löscht die alte umbenannte Assembly (sollte sie gerade ausgeführt werden, löschen sobald diese beendet ist).
Fulltilt hat damals ihren pokerclient auf diese art an die user ausgegeben, somit war der jeweilige affiliate code in die assembly integriert.
Verstehe ich dein Programm richtig:
Du hängst deine Werte hinten an die exe an? Also du überschreibst nicht gezielt Variablen oder Ressourcen der Datei, sondern schreibst einfach ganz hinten hinter deine neuen Werte?
Dann kann ich dir deine Probleme erklären.
Es hat am Anfang falsche Werte, weil es natürlich mit irgendwelchem Code endet und nicht mit deinen Werten. Dazu kommt, dass in der Datei überall irgendwelche Doppelpunkte stecken könnten, die du dann natürlich auch findest.
Nach dem Überschreiben lässt sich das Programm nicht mehr starten, weil Windows natürlich nicht damit klar kommt, dass die exe plötzlich mit "einTollerString123" endet. Ein Programm ist keine Textdatei, da kannst du nicht einfach so etwas hinten anhängen.
Ich würde dir wirklich empfehlen, mach irgendeine Datei in die du deine Werte speicherst. Es ist ja völlig egal ob die im selben Ordner liegt oder irgendwo tief im Benutzerprofil versteckt ist. Wenn du Spass dran hast kannst du auch die Registry dafür nehmen. Aber dieses "Variablen überschreiben" ist die Mühe kaum wert, mir will auch grade kein sinnvoller Einsatz dafür einfallen.
Ignoriert diesen Beitrag einfach, wenn ich falsch liege. Mit Visual Basic kenne ich mich überhaupt nicht aus.
Ja theoretisch würde das klappen aber ich bin dabei ein Server-Client-Tool zu erstellen.
Ich bin der Server und kann natürlich im Projekt selbst den Clienten seine Connectionsettings voreinstellen.
Das Problem ist, wenn ich das Programm releasen möchte sollte der Zukünftige Server-User seine Client-User Connectionsettings einstellen können.
VB Datei Speichern 11/06/2013 - .NET Languages - 1 Replies Hallo habe ein kleines Problem undzwar habe ich einen Taschenrechner programmiert und jetzt soll man den verlauf in einer txt datei speichern können und dann wieder aufrufen können habe dafür 2 extra buttons eingefügt nun weiß ich nicht welche codes ich brauch danke schonmal im voraus
[TuT]Datei in einer anderen Datei verstecken 05/01/2013 - Tutorials - 14 Replies In diesem Tutorial werde ich beschreiben wie man eine beliebige Datei in einer anderen "verstecken" kann. Als Zieldatei kann dafür jede Datei jeglicher Art verwendet werden. Der 1337-Coolness zu liebe verwenden wir aber lieber Bild- , oder auch Musikdateien.
Vorerst möchte ich allerdings erklären, dass die Datei nicht wirklich "versteckt" wird sondern nur die beiden Dateien zusammengefügt werden und der Header angepasst wird. Somit ist diese Methode als "unsicher" zu bezeichnen...spassig ist...
Datei Speichern 04/06/2010 - AutoIt - 3 Replies Hi,
Wie Speichert man eine Datei in AutoIt z.B in
AutoIt.txt?
Ich habs schon mal gewusst kommt mir so vor :D
Sorry wenn vllt die Frage hier schon mal war!