16. april 2001 - 19:38Der 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.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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 :
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
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.
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.
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!
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 ....
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 ....
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....
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 !
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 ...
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.