Exe szerkesztése Visual Basic-el?
A resources mappát akarom módosítani a programomon keresztul , hogy a játékomban a mentés az exe-ben legyen és a program teljes mértékben egy exe-ből álna . A gond hogy az exe-t nem tudja a program úgy megnyitni mint a jegyzettömb vagy más szövegszerkesztő .
RichTextBox1.Text = My.Computer.FileSystem.ReadAllText(Application.ExecutablePath)
És az eredmégy 3 karakter MZ� .
Minden ötletre kiváncsi vagyok és előre köszönök .
Én írok hülyeségeket... mondja ezt az, aki TextBox-ban akar EXE-t szerkeszteni, LOL :DDDD
Tudod mit, mondok egy példát: tegyük fel, hogy az EXE-ben van véletlenül valahol egy 0x0A, és máshol egy 0x0D 0x0A szekvencia. (0A az újsor jel, 0D a kocsivissza jel szöveges fájlokban. Unix rendszerek csak újsor jelet használnak, a 2 bájtos szekvencia pedig a Windows-os forma.)
Mi van akkor, ha a VB annyira jófej, hogy univerzálisan kezeli a Unix és Windows újsor jeleket:
- beolvasáskor mindkét formáról felismeri, hogy az sortörés
- kiíráskor pedig egységes formátumban írja ki, mondjuk a Windows-os formában
Máris bekerült egy plusz bájt az EXE-d közepére, ahol addig nem volt. Hogy fogod kijavítani?
> Ezt kérdem (!!!Ezt kérdem a legelejétől !!!).
Én meg ezt mondom a legelejétől:
AZ EXE NEM STRING, NE STRINGBE OLVASD, HANEM BÁJT TÖMBBE.
Szétszedem mert nagyon bonyolut vagyok .
A számítógépben található összes adatot byte-okra lehet osztani => Az adat egy bytelánc amit kiolvasva szöveggé lehet alakítani még akkor is ha tartalmaz az ASCII kódtáblán kívüleső elemet . A visual basicben a szövegtípus a string .
Az a kérdésem , hogy lehet stringként egy változóba vagy egy RichTextBoxba ,akár Textboxba is ;), kiolvasni . Ha csak ezt megoldja nekem Visual Basicben valaki akkor nagyon boldog vagyok és köszönöm neki szépen.
Nem vágom a VB-t, de Delphi-ben megmutatom:
procedure TForm1.Button1Click(Sender: TObject);
var s : string;
i : integer;
f : file of char;
c : char;
begin
AssignFile(f, 'd:\cserel.exe');
FileMode := 0;
Reset(f);
while not Eof(f) do
begin
Read(f, c);
if Ord(c) < 32 then c := ' ';
s := s + c;
if Length(s) > 79 then
begin
RichEdit1.Lines.Add(s);
s := '';
end;
end;
RichEdit1.Lines.Add(s);
CloseFile(f);
end;
A szóköznél 'kisebb' karaktereket lecseréli szóközre, majd 80 karakteres stringként berakja egy RichEdit-be.
Köszönöm a delphis választ megpróbálom átírni.
Amúgy nem tudom mért parázik mindenki . A .net nem hagyományos exe fájlokat készít ezt már az elején mondtam . Notepad++ban már nem egyszer módosítottam így programokat .(zatacka).A resources mappa jól elkülönített tagekkel elvan különitve a gépikódtól .Amúgy a szaktudásomról annyit, nem tudom kiknek kellett elmegyarázni mi az a byte(tudjátok egy karakter;) .A Delphis srácnak pedig köszönöm
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!