Avatar billede bizty Nybegynder
16. april 2001 - 19:38 Der er 23 kommentarer og
1 løsning

Sammensmelning med andet program

Er det muligt at sammensmelte sit Delphi-program med en anden exe-fil? Altså sådan at når jeg i MIT program indtaster et kodeord, så starter det andet program, resultatet skal helst smeltest ned til en exe-fil, så det ikke er muligt bare at starte det andet program manuelt. En anden løsning er også ok, bare man ikke kan starte den eksterne exe-fil uden først at skrive det rigtige kodeord.
Avatar billede stigc Nybegynder
16. april 2001 - 19:41 #1
Her hvad du har brug for:

http://download.cnet.com/downloads/0-10105-100-871028.html?tag=st.dl.10001-103-1.lst-7-1.871028

mere på:

http://download.cnet.com/downloads/1,10150,0-10001-103-0-1-7,00.html?tag=srch&qt=password+program&cn=&ca=10001
Avatar billede borrisholt Novice
17. april 2001 - 08:30 #2
du kan kompilere exe-fil nummer 2 ind i din exe fil ... Det gør du på samme måde som du stoppen en wav fil ind i exefil. En beskrivelse af dette er laver her :

http://www.eksperten.dk/spm/51461

Jens B
Avatar billede bizty Nybegynder
17. april 2001 - 17:26 #3
Jeg tror du er inde på det jeg mangler, Borrisholt, men jeg forstår ikke rigtigt, så hvis du vil maile mig et eksempel, så blir jeg glad.
Bizty@tanke.dk
Avatar billede kaspikov Nybegynder
18. april 2001 - 18:54 #4
Her er måske en løsning:

Program nummer 2 skal se sådan ud, enten i OnCreate eller OnShow:

procedure TForm1.OnShow(sender: TObject);
begin
  if paramstr(0) <> \'Dit Kodeord\' then
  begin
  messagebox(Handle, PChar(\'Du indtastede ikke det korrekte password\'), PChar(\'Mit Program\'), MB_OK or MB_ICONERROR);
  Application.Terminate;
end;

Program nummer 1 skal så se sådan ud:

uses ShellApi //Din Uses del øverst skal indeholde denne.

procedure TForm1.Button1Click(Sender: TObject);
Begin
  ShellExecute(PChar(\'OPEN\'), PChar(\'Program2.exe kodeord\', nil, nil, 0);
end;

Eneste problem er at den kan hackes, men du kan jo bare sætte flere  parametre og få adgang ved hjælp af Paramstr(n) metoden.
n = det nummer du skal have fat i
OBS: hvis n = 0 så får du stien til dit program.

/Kaspikov
Avatar billede bizty Nybegynder
18. april 2001 - 18:57 #5
kapirov, du har ikke fattet det!
program 2 har jeg ikke selv lavet og kan derfor ikke ændre source.
Avatar billede bizty Nybegynder
18. april 2001 - 19:00 #6
Borrisholt, det eksempel du sendte mig kan jeg ikke få til at virke. Meningen er at program 2 skal startes op og ikke slettes eller hvad det nu er du har sendt mig! Prøv igen, og sig til hvis du vil have flere points!
Avatar billede kaspikov Nybegynder
18. april 2001 - 19:02 #7
Nå OK! kult nok!

/Kaspikov
Avatar billede borrisholt Novice
18. april 2001 - 19:41 #8
bizty >> Du sagde ikke hvad jeg skulle gøre bløt sammen smelte to exefiler, således den ene først kom frem når der blev trykket en speciel kode ...

Hvis du ikke vil have slettet den exefil vi pakker ud af din oprindelige exefil så kan du jo bare lade være ...

prøv det her :
procedure TForm1.Button1Click(Sender: TObject);
var
  FileName : TFileName;
begin
  FileName := ExtractFromRes(\'EXEFILE\', \'App2\');
  Hide;
  ExecAndWait(FileName,\'\', SW_NORMAL);
  Show;
end;

Den henter exe fil nummer 2 ud af din application, og exekverer den. Der udover gemmer den dit oprindelige program indtil den selv bliver stoppet ...

Det er sq lidt nemmere hvis du siger hvad du vil hvae, fordi den oprindelige opgave er løst ..

Hvis den sidste del af din opgave skal være løst så skal du slette exefilen efter dig endelig er der den mulighed at ligge program nummer 2 i en DLL fil ....

Jens B

Avatar billede borrisholt Novice
19. april 2001 - 07:32 #9
bizty >> Det jeg laver er at jeg kompilerer Application2 int i Application1. Således de er en og samme exefil.

Når så jeg skal bruge APP2 så pakker jeg den ud af resourseområdet i APP1, gemmer den på HD\'en. For den ikke skal lige og flyde, og være til offenlig beskuelse så sletter jeg den når jeg er færdig med at exekvere den.

Men der ligger stadig en kopi af APP2 inde i APP1, således du senere kan gentage tricket ....


Så derfor skal du slette den når du er færdig ...


Jens B
Avatar billede bizty Nybegynder
19. april 2001 - 18:34 #10
Nå ok,
Men jeg kan desværre ikke bruge det til noget så for det skal altså være temmelig sikkert. D.v.s. at exe-filen ikke må \"pakkes ud\" på noget tidspunkt. Så vi skal vel have gang i nogle dll-filer. Dem har jeg aldrig brugt før, så du må skære det ud i pap....
Avatar billede borrisholt Novice
20. april 2001 - 07:30 #11
Ok .. Så findet vi papet frem :

Du har To applikationer App1 og App2.
App1 som du selv har skrever, og app2 som en anden har skrevet.
App2 har du ingen source kode til, modsat App1.
App1 skal eksekvere App2.
App2 må ikke være synlig. Ærgo den skal pakkes ind i resoursen på App1.

Hvis alt dette skal lykkes er du nødtil at æde min løsning med at pakke App2 ud af App1 exekvere den og selt den igen når du er færdig !

Jens B
Avatar billede bizty Nybegynder
20. april 2001 - 14:50 #12
Der må være en anden løsning, for når app2 er pakket ud kan man jo bare tage en kopi af den!
Avatar billede borrisholt Novice
20. april 2001 - 14:55 #13
joeee .... men man kan skjule sådan meget godt ....
Avatar billede bizty Nybegynder
20. april 2001 - 15:19 #14
hvordan?
Avatar billede borrisholt Novice
21. april 2001 - 12:15 #15
du kan gemme den i dit temt biblotek under navnet  .exe (altså \"mellemrum\".exe)
Avatar billede bizty Nybegynder
22. april 2001 - 12:36 #16
Det duer ikke for app2 skal bruge de filer som ligger i det oprindlige dir. Kan man ikke køre det fra hukommelsen?
Avatar billede borrisholt Novice
17. maj 2001 - 14:45 #17
bitzy >> Man kan IKKE køre sådan et andet program fra hukommelsen ...

Jens B
Avatar billede bizty Nybegynder
17. maj 2001 - 17:13 #18
Avatar billede borrisholt Novice
18. maj 2001 - 12:27 #19
du er nød til først at gemme filen og så exekvere den.

Jens B
Avatar billede bizty Nybegynder
18. maj 2001 - 14:53 #20
hvordan kan jeg så skjule det meget godt (MENER MEGET)?
Avatar billede borrisholt Novice
18. maj 2001 - 14:55 #21
jammen .. Den eksisterer jo kun mens den ekekverer. Så derfor kan du bare gemme den i system bibloteket under navnet \' .exe\' (mellemrum). Og så slette den igen bag efter ...

Jens B
Avatar billede stigc Nybegynder
18. maj 2001 - 16:11 #22
må jeg spørger hvorfor du ikke bare bruger de programmer jeg henviste til? Er det ikke det du søger?
Avatar billede bizty Nybegynder
19. maj 2001 - 13:12 #23
Borrisholt> min eksterne exe-fil skal bruge nogle filer som ligger i samme bib!
Avatar billede bizty Nybegynder
21. august 2003 - 17:27 #24
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester