Czy jest sposób aby program sam sobie zmodyfikował kod ??
dajmy na to jest forma i button na niej i jka klikne na buttona to on zniknie ale przy okazji zmodyfkuje kod programu że już wiecej się nie pokazę. Zaznaczam że nie chce żadnych wartości w rejestrze albo spawdzania czy istnieje plik jakiś albo coś podobnego ...
Mozesz uzyc INI! [sex] [snajper]
Zapisuj strumieniem formę, a potem odczytuj to NA PUSTĄ. Chodzi mi o to, że wstępne ustawienia formy muszą się znajdować w pliku konfiguracyjnym, a nie zostać zrobione w IDE Delphi razem z progiem.
W procedurze BUTTONA wpisz następującą komendę:
button1.Visible : = false;
Przede wszystkim system Windows NIE POZWOLI na modyfikacje jakiegokolwiek programu w trakcie jego dzialania...
Lub zamist INI wykorzstaj rejestr, a co do kody to rzeczywiście się nie da bo kiedyś też to chciałem
Przecież pisze wyraźnie że nie chce używać rejestru ani plików ini wpadłem na taki pomysł żeby program miał w sobie np. plik textowy i w nim napis "button" i jak się kliknie button to on usunie ten napis a przy włanczania programu sprawdza czy jest linijka "button" w plik w zasobach, jak jej nie ma to nie pokazuje buttona. a jeszcze do buttona można przy kliknięciu napisać button1.visible:=false;
Ale nie wiem czy dobrze to sobie rozumuje.
Przeczytaj post Adama!!!! :-[ :-[
ale moglby zrobic tak, ze umiescil by komplator z zasbach i po wlaczniu jakiejs procedury program generowalby np. kod pascala w memo1 i zapisywal do pliku, potem run kompilatora i skompilowanie proga. po komplacji zakonczenie programu starego i uruchoienie tego nowego.... :-)
ale ten sposob jest troszke dziwny....
To raczej zły pomysł, bo trzebaby mieć kompilator, a gdzie taki znajdziesz. Z legalnym może być kłopot... Trzebaby też mieć wszystkie moduły itd.
Da się, popatrzcie na wiry które same mogą modyfikować swój kod, korzystając z asm wszystko jest możliwe.
Azgon czy mam ci stworzyć kod?
Kiedyś pamietam jeszcze na ATARI 65 (lata 80) pisaelm programy w BASIC-u
tam robilo się pauzę programową i dopisywalo do kodu programu nowe linie, ale w DELPHI z tego nie korzystalem gdyż w nowych językach nie bylo takiej potrzeby.
tam byla dyrektywa PAUSE aresztę musial bym sobie przypomnieć.
Ale Basic był interpretowany a nie kompilowany... To zupełnie inna sprawa.
Ja bym to rozwiązał w ten sposób: by zmodyfikować swój kod, program zmieniałby swoją nazwę ( bo to jest w tym przypadku możliwe ) na np. Program.bak i nadawał atrybut ukryty, a następnie kopiował samego siebie robiąc w locie modyfikacje do tego samego katalogu nadając nazwe Program.exe . Przy następnym uruchomieniu program byłbym juz zmodyfikowany i dla dopełnienia formalności kasowałby plik Program.bak, jesli by istniał...
Pozdrawiam
Kev
mozna by bylo jescze pogrzebac w hexach, toznaczy program by robil kopie i w kopi zmienial odpowiednie bajty na nowe :-) ale trza sie znac