Avatar billede sirius Nybegynder
03. april 2000 - 21:07 Der er 18 kommentarer og
1 løsning

Skjult program....

Hvordan kan man lave et program der kører uden man kan se det... også uden at man kan se det under ctrl+alt+del...

hvis det ikke kan lade sig gøre, hvordan kan man så lave det sådan så man kun kan se det under ctrl+alt+del...
Avatar billede hatecaps Nybegynder
03. april 2000 - 21:34 #1
en non-visuel applikation laves ved at fjerne alle units fra et nyt project (i .dpr filen) for derefter at skrive al kode i selve .dpr filen. Du kan bruge så mange ekstra units du vil, så længe du ikke bruger visuelle komponenter nogen steder.
Avatar billede hatecaps Nybegynder
03. april 2000 - 21:36 #2
her er et lille eksempel jeg fandt i mit "arkiv".

program Launch;

uses
  shellAPI, windows, forms, sysutils;

{$R *.RES}

begin
  shellexecute(application.handle,nil,pchar(extractfilepath(paramstr(0))+paramstr(1)),'','',SW_MAXIMIZE);
end.


det er hele koden , og det står alt sammen i den eneste fil i projektet, nemlig launch.dpr
Avatar billede delphidaner Nybegynder
04. april 2000 - 09:54 #3
Hmmm.. Lad mig se... Jeg har koden derhjemme. Jeg svarer i morgen, hvis der ikke er accepteret nogen svar.
Avatar billede snowball Novice
04. april 2000 - 12:22 #4
Denne kode skjuler godt nok kun programmet fra taskbar'en, men jeg synes lige jeg ville post'e det alligevel. Det kune jo være der var en anden der kunne få glæde af det hvis du ikke kan bruge det ;)

procedure TForm1.FormCreate(Sender: TObject);
var
  xWndLong: Longint;
begin
ShowWindow(Application.handle, SW_HIDE);
xWndLong := GetWindowLong(Application.handle, GWL_EXSTYLE);
SetWindowLong(Application.handle, GWL_EXSTYLE, xWndLong or WS_EX_TOOLWINDOW and not (WS_EX_APPWINDOW or WS_EX_TOPMOST));
ShowWindow(Application.handle, SW_SHOW);
end;

Snowball
Avatar billede geek Nybegynder
05. april 2000 - 10:15 #5
http://www.eksperten.dk/spm.asp?id=5627
Der står hvordan du skjuler dit program for ctrl+alt+del listen
Avatar billede delphidaner Nybegynder
06. april 2000 - 13:49 #6
Det kan gøres meget enklere:

RegisterServiceProcess(GetCurrentProcessID, 1);

skjuler programmet i Luk program-vinduet, og

RegisterServiceProcess(GetCurrentProcessID, 0);

viser den igen.

Det virker hjemme ved mig.
Avatar billede frifoed Nybegynder
08. april 2000 - 02:18 #7
Der findes en komponent der hedder Stealth den skjuler din form fra Taskbaren og Ctrl+Alt+Del menuen hvis du kaster din e-mail ud kan jeg sende den til dig(freeware).
Avatar billede sirius Nybegynder
08. april 2000 - 15:19 #8
sirius@mail.tele.dk
Avatar billede dj Nybegynder
08. april 2000 - 22:42 #9
Delphidaner har ret ud over at han lige glemte det væsentligste:

Tilføj denne function til dit program.

function  RegisterServiceProcess(dwProcessID,dwType : DWORD) : DWORD; stdcall; external 'KERNEL32.DLL';

(Den henter oplysningerne fra kernel32-dll så du skal ikke indsætte nogen begin og end;)


Herefter kalder du den med
RegisterServiceProcess(GetCurrentProcessID, 1);
under formens Oncreate event.

og du kan så bruge
RegisterServiceProcess(GetCurrentProcessID, 0);
til at vise den med som Delphidaner også sagde ...

frifoed >> Hvorfor bruge en 3rd party komponent, når der nu ikke skal skrives mere end 2 liners kode får at gøre tricket ?

Hvad angår det med at fjerne programmet fra taskbaren så kan Snowballs måde anbefales ..

Mvh. _DJ_
Avatar billede frifoed Nybegynder
08. april 2000 - 22:50 #10
<dj>
Det er blot et forslag og da DelphiDaner allerede havde vist den anden metode så er der ikke andre tilbage. Plus at denne er lidt mere brugervenlig.
Avatar billede sirius Nybegynder
08. april 2000 - 23:05 #11
friefoed..

kan du ikke skrive lidt om hvordan man bruger det komponent..
Avatar billede dj Nybegynder
08. april 2000 - 23:21 #12
frifoed  >> Brugervenligt ? Du mener altså at det er brugervenligt at kvadre et program ved at overlæsse det med tredjeparts komponenter der gør det umuligt at anvende koden på andre maskiner end din egen, istedet for at skrive koden selv ?
Avatar billede sirius Nybegynder
09. april 2000 - 11:34 #13
Hmmm... det ser ud til at frifoed's metode ikke er så god som den anden (i følge kommentarne)

er der så ikke en anden der kan forklare den anden metode noget mere...
Avatar billede frifoed Nybegynder
09. april 2000 - 11:59 #14
<dj>Jeg er enig med din om at man skal prøve at bruge så lidt kode som overhovedt mulig for at mindske programstørrelsen, men skulle man ikke lade Sirius prøve begge metoder og skabe sin egen mening i stedet for at dikterer??!!
<sirius>
Komponenten skal installeres i Delphi's IDE dette varierer lidt fra version til version af Delphi. Men prøv med et klik i menubaren
Component>Install Component
Dernæst klikker du blot på \browse/ for alokere stealth.pas filen.
Efter komponenten er installeret ligger der et ikon inde fanebladet Additional der hedder Stealth du klikker blot på det og klikker så på din form. Herefer er ikonet så på din form og du kan ændre ved klik og din form skal være synlig fra task-baren og Ctrl+Alt+Delete menuen.
Hvis du så tilmed vil have at formen også skal være usynlig så fjerner du Border-Icons og borders i object Inspector. Og i formens onCreate skriver du Form1.Heigth := 0; Form1.Width := 0;
Avatar billede dj Nybegynder
09. april 2000 - 12:00 #15
sirius >> Som delphidaner og jeg sriver ovenover er nøjagtigt den samme metode som bruges i stealth komponenten, så kig lidt på min kommentar der skulle stå alt hvad du har brug for, for at fjerne programmet fra CTRL+ALT+DEL menuen.
Avatar billede sirius Nybegynder
09. april 2000 - 12:30 #16
Når jeg prøver at tilføje komponentet som du skrev frifoed siger den:

The procedure entry point registerServiceProcess could not be located in the dynamic link libary KERNEL32.DLL

er det fordi jeg kører win2k eller er det fordi jeg laver noget forkert ??
Avatar billede dj Nybegynder
09. april 2000 - 12:45 #17
ehh. ja, du kan kun gøre tricket i Win95/98, windows 2000 tillader ikke at man kan køre programmer der ikke bliver vist under enten taskmanageren eller services.
Avatar billede frifoed Nybegynder
09. april 2000 - 14:17 #18
Beklager sirius jeg melder pas, men mit bud kunne være at API'en i WIN2K er anderledes end strukturen i Win9x.
Avatar billede lrj Nybegynder
10. april 2000 - 01:24 #19
Og så har programmer andre rettigheder... Vist ikke helt nemt at få lov til at pille i den grad som du gerne vil i NT (dvs. incl. win2K)..
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