FreeBasic: Datei anhängen
Erscheinungsbild
Allgemein
[Bearbeiten]Möglichkeiten
[Bearbeiten]- Alternate Data Streams
- WinAPI AddResource
- Selbst programmiert
- Ressourcen
Gemeinsame Vorteile
[Bearbeiten]- Weniger Dateien
- Die Dateien sind für normale Anwender nicht findbar
Gemeinsame Nachteile
[Bearbeiten]- Die Dateien sind für Normale Anwender nicht findbar
WinAPI AddResource
[Bearbeiten]Kennt jemand den richtigen Namen + einen Link?
Alternate Data Streams
[Bearbeiten]Grundlagen
[Bearbeiten]Eine handvoll Vorteile gegen eine Schubkarre voll Nachteile.
Vorteile
[Bearbeiten]- einfach einzubauen
Nachteile
[Bearbeiten]- braucht NTFS
- geht also nicht mit CD/Disketten
- ADS gilt als Sicherheitsrisiko
Selbst programmiert
[Bearbeiten]Grundlagen
[Bearbeiten]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.
Vorteile
[Bearbeiten]Nachteile
[Bearbeiten]- bei fixen Adressen wird das Erweitern erschwert
Datei Anhängen Tool
[Bearbeiten] 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
Wieder abhängen
[Bearbeiten](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
Beispiel mit Bild
[Bearbeiten] 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