f:tstream=openfile(appfile)
Übersicht

sinjinBetreff: f:tstream=openfile(appfile) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ist es möglich die eigene EXE-Datei zum Schreiben zu öffnen? Bzw welcher Handle da auch immer offen ist, den zu schliessen. Ich wollte Informationen direkt an die EXE schreiben. | ||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
WTF?
Normalerweiße geht umbennen und dann eine neue hinschreiben. Aber dass eine Exe in sich selbst schreibt, klingt etwas komisch |
||
between angels and insects |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also BB konnte das. Wie das bei BlitzMax aussieht weiß ich nicht genau, aber ich glaube, dass es bei Windows executables auch auf den PE Header ankommt. Ich glaub da gibt es ein Flag ("removable media" oder so), was dem OS sagt, dass die exe von einem externen Medium ausgeführt wird und das Betriebssystem keinen Handle offen lassen soll (was bei Windows afaik standardmäßig der Fall ist).
btw: du zerstörst dir damit vermutlich komplett die plattformunabhängigkeit von BlitzMax (und eventuell die ausführbare Datei), wenn du einfach anfängst in die executable zu schreiben. |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum willst du sowas Abartiges denn tun? | ||
Gewinner der 6. und der 68. BlitzCodeCompo |
sinjin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Anstatt einer CFG-Datei will ich die Programmeinstellungen einfach an die EXE hängen. Ich weiss dass es geht denn selbst bei manchen grossen Spielen kann man die EXE zu Laufzeiten löschen. Zu DOS-Zeiten war es nicht unethisch sowas zu machen ![]() |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist unnötig und macht debugging extra schwer.
Der Appdata Ordner von Windows ist für sowas der richtige Ort. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
sinjin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das würde gar nicht im Debugger auftauchen, zumindest nicht die angehangenen Daten. Die Größe des eigentlichen Programms, die auch der Debugger nutzt, stehen im Header, die wollte ich nie ändern. | ||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich dachte eher an Bugs, nicht den Debugger.
Was passiert, wenn du die Grafikeinstellungen da speicherst, jemand verschiebt die exe auf einen anderen Rechner, der mit den Werten nichts anfangen kann und abschmiert/hängt? Es gibt keine Konfigurationsdateien die ein Nutzer selber editieren oder einfach löschen könnte, um den Standard wieder her zu stellen. Wenn man's aus Spaß mal programmieren will: nur zu. Ansonsten ist das eine sinnlose Fehlerquelle. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Xeres hat einen guten Punkt. Mir ist das schon Mal passiert. Hatte ein Spiel installiert und eine Grafikoption
gesetzt, die es abstürzen ließ. Auch Deinstallieren und wieder Installieren brachte nichts, weil die Konfigurationsdatei nicht gelöscht wurde. Glücklicherweise habe ich die dann im AppData-Ordner gefunden und da sie in einem einfachen INI-Format war, konnte ich sie editieren. |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
sinjin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da ist mir gerade ein gutes Beispiel vor die Augen gekommen, Adobe Flashplayer, man downloaded eine EXE startet die, und weg ist 'se ![]() |
||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich persönlich finde das auch nicht wirklich gut. Als Benutzer erwartet man doch das sich ein bestimmter Vorgang immer gleich verhält. D.h. wenn ich was runterlade und es danach automatisch ausführen lasse, dann ist die Datei im Normalfall noch dort. Dann mach ich das gleiche mit Flash, will die Datei evtl. noch auf ein USB-Medium kopieren, aber sie ist nicht mehr aufzufinden... (nicht was man erwartet, und das wirft dann mehr Fragen auf, als es jemandem was nützt).
Nur meine Meinung ![]() |
||
ohaz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du könntest die alternate data streams von windows verwenden. Allerdings gilt es als extrem uncool die settings mit in die exe zu speichern | ||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist eigentlich vor allem schon mit dem Windows-Sicherheitskonzept eine echt blöde Idee.
Um in den Programme-Ordner schreiben zu können braucht dein Program Admin-Rechte. Auf diese Weise sorgt Windows dafür, dass es für Malware schwerer ist, Programme zu editieren/zu ersetzen. Auf diese Weise darf dein Programm nicht mehr im vergleichsweise sicheren Programme-Ordner gespeichert werden oder verlangt bei jedem Start unnötigerweise nach Admin-Rechten. Wäre für mich als Nutzer ein großes Minus, muss ich sagen. Dazu sind dann, wie schon erwähnt, die Settings in der Datei und damit nicht mehr löschbar. Von wegen Abstürzen, da muss es noch gar nicht sein, dass die Datei auf einen anderen Computer kopiert wird. Da genügt es, dass man es auf einem Laptop am Full-HD-externen Bildschirm startet, und beim nächsten Mal auf dem internen Bildschirm mit geringerer Auflösung. Würde stark davon abraten. Dass etwas auf einem völlig anderen Betriebssystem vor 20-30 Jahren Gang und Gebe war, ist keine gute Ausrede um es heutzutage noch zu tun. Auf DOS war es auch noch normal den Prozessor im Real-Mode ohne Speicherschutz zu verwenden, und auf Win95 war es auch normal, dass ein Spiel Windows verwendet, um in eben jenen Real-Mode zu kommen. Wenn mir heutzutage ein Spiel den Computer ungefragt in Real-Mode umbootet, dann war es das letzte Mal, dass ich irgendwas von diesem Hersteller ausgeführt habe. Gleiches gilt für selbstmodifizierende EXEs. Die einzige Art Programm, die heutzutage noch sinnvollerweise die eigene EXE umschreibt, sind selbstmodifizierende Viren. Behalte bitte deine Malware-Techniken auf deinem PC ![]() |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group