Delphi kopírovanie alebo vytvorenie programu

Programovacie jazyky, rady, poradňa...
feromakovi
Expert
Expert
Príspevky: 165
Registrovaný: 24 okt 2008, 14:16
Bydlisko: Bánovce nad Bebravou

Delphi kopírovanie alebo vytvorenie programu

Príspevok od používateľa feromakovi »

Zdrawím...
rieším v delphi taký problém, že potreboval by som vedieť ako prekopírujem program ktorý mám momentálne otvorený??
Že mám otvorený program a do eventu OnCreate by som chcel zadať nejaký algoritmus, že ten program ktorý som si spustil sa mi automaticky prekopíruje do c:\...napríklad ale nie premiestnil..

alebo pomohlo by mi aj keby, že po spustení programu by sa tam ten program vytvoril. Napríklad keď máme inštalačku tak tá tiež obsahuje nejaké exe programy a akopíruje ich na isté miesto. ale nemôžem z toho môjho programu spraviť inštalačku.príklad: mám program1.exe a program2.exe ten program2 nejakým spôsobom zakomponujem do programu1.exe a v tom programe1 napr kliknutým na button sa mi ten program2 automaticky vytvorí v priečinku(cesta:string);

hádam som to dobre opísal, čo potrebujem...a vôbec netuším či sa niečo také dá ale veľmi by som to potreboval.
Ďakujem za každú schopnú odpoveď.. 8)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

program do programu nezakomponuješ, ani ho nemáš ako dynamicky vytvoriť ak nechceš používať nejaký inštalátor (btw: borland delphi má tuším v sebe nejaký tool na robenie inštalátorov, no s tým som sa ešte nehral). Môžeš ale ten program2.exe prekopírovať tak ako si písal. Prekopírovanie by bolo takto:

Kód: Vybrať všetko

var
  fileSource, fileDest: string;
begin
  fileSource := ExtractFilePath(application.exename) + '/nejakypodadresar/cokolvek/program2.exe';
  fileDest := 'C:\program2.exe';
  CopyFile(PChar(fileSource), PChar(fileDest), False);
end;
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Jedna z možností je hodiť to do resource sekcie. Na to ale treby vygenerovať rc súbor a z neho potom Delphi vytvorí res súbor (a v pas súbore treba Delphi naznačiť, že má ten res súbor použiť). V programe sa potom tá vec v resource nájde, uzamkne, vytvorí sa nový súbor, dáta z resource sa tam skopírujú... :) (návod určite nájdeš na internete).

Prípadne sa to dá "prilepiť" za obsah toho exe a potom nejako nájdeš, kde sa to začína (či už spracovaním exe hlavičky, alebo si za ten obsah zapíšeš aj veľkosť tých dát a potom toľko dát z konca toho exe súboru použiješ). Toto sa dá urobiť aj bez návodu, problém je, že po každom skompilovaní to tam treba pridať, takže by si ten program mal poradiť aj s tým prípadom, že tam tie údaje ešte nie sú (asi najjednoduchšie je hodiť tam nejaké dáta/text, ktorý tam potom budeš hľadať).

Pravdepodobne sú aj ďalšie možnosti, nič iné mi už ale nenapadá. :)
Napísať odpoveď