FreeBasic: Datei anhängen
Aus Wikibooks
Inhaltsverzeichnis |
[Bearbeiten] Allgemein
[Bearbeiten] Möglichkeiten
Alternate Data Streams- WinAPI AddResource
- Selbst programmiert
- Ressourcen
[Bearbeiten] Gemeinsame Vorteile
- Weniger Dateien
- Die Dateien sind für normale Anwender nicht findbar
[Bearbeiten] Gemeinsame Nachteile
- Die Dateien sind für Normale Anwender nicht findbar
[Bearbeiten] WinAPI AddResource
Kennt jemand den richtigen Namen + einen Link?
[Bearbeiten] Alternate Data Streams
[Bearbeiten] Grundlagen
Eine handvoll Vorteile gegen eine Schubkarre voll Nachteile.
[Bearbeiten] Vorteile
- einfach einzubauen
[Bearbeiten] Nachteile
- braucht
NTFS
- geht also nicht mit CD/Disketten
- ADS gilt als Sicherheitsrisiko
[Bearbeiten] Selbst programmiert
[Bearbeiten] Grundlagen
Eine Exe-Datei ist ziemlich einfach aufgebaut.
Wenn du irgendwas anhängen willst, musst du nur ans Ende der Ex-Datei und dort kannst du problemlos schreiben.
Da gilt das Prinzip: Was nicht aufgerufen wird, macht auch keinen Ärger.
[Bearbeiten] Vorteile
[Bearbeiten] Nachteile
- bei fixen Adressen wird das Erweitern erschwert
[Bearbeiten] Datei Anhängen Tool
dim a as ubyte dim lang as uinteger Input " Name der Exe-Datei? ", exe$ Input " Name der anderen Datei? ",file$ open exe$ for binary as #1 'Die Exe-Datei öffnen open file$ for binary as #2 'Die andere Datei öffnen lang=lof(1) 'Exe-Dateiende ? " Die Exe-Datei ist "; lang; " Bytes Lang." Input " Ab welcher Byte-Nummer soll die Datei anhaengt werden? ",ort 'Diese Zahl muss unbedingt grösser als die Länge der Datei sein! if ort<=lang then color 4 ? " Sie schreiben vor das Datei-Ende!" ? " Dadurch kann die Exe Datei beschaedigt werden!" ? " Vorgang abgebrochen" else ? " Vorgang gestartet" seek 1,ort 'Gewünschten Ort ansteuern do 'Anhängen get #2,,a put #1,,a loop until eof(2) ? " Vorgang beendet" end if sleep
[Bearbeiten] Wieder abhängen
(Hier an diese Datei wird auch die andere Datei angehängt)
Open Command$(0) for binary as #1 'mach dich selbst auf adr=18000 'die Adresse die bei Anhänger eingegeben outfile$="test2" 'Hier rein geht die Ausgabe kill outfile$ open outfile$ for binary as #2 seek 1,adr do 'Abhängen get #1,,a put #2,,a loop until eof(1) end 'ende
[Bearbeiten] Beispiel mit Bild
dim bild as any ptr Open Command$(0) for binary as #1 'mach dich selbst auf adr=200000 'die Adresse die bei Anhänger eingegeben outfile$="bild2.bmp" 'Hier rein geht die Ausgabe kill outfile$ open outfile$ for binary as #2 seek 1,adr 'Auf Adresse einstellen do 'Abhängen get #1,,a put #2,,a loop until eof(1) close 'vor dem Laden unbedingt schliessen 'Aber hier kann das Bild normal geladen werden screen 18,32 datei$="bild2.bmp" bild=IMAGECREATE(100,100) bload datei$,bild put (100,100),bild sleep 5000,1 kill outfile$ 'Nach Gebrauch entsorgen end 'ende

