AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Programm vor Taskmanager verstecken
Thema durchsuchen
Ansicht
Themen-Optionen

Programm vor Taskmanager verstecken

Ein Thema von DevilsCamp · begonnen am 18. Jul 2005 · letzter Beitrag vom 18. Sep 2005
Antwort Antwort
Seite 3 von 4     123 4      
s14

Registriert seit: 15. Mai 2003
Ort: München
251 Beiträge
 
Delphi 7 Architect
 
#21

Re: Programm vor Taskmanager verstecken

  Alt 18. Jul 2005, 14:07
@DevilsCamp: Was steht im OnCreate Ereigis des Formulars?
Zeig mal...
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#22

Re: Programm vor Taskmanager verstecken

  Alt 18. Jul 2005, 14:19
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  mdown := false;

  ShowWindow( Application.Handle, SW_HIDE );
  SetWindowLong( Application.Handle, GWL_EXSTYLE,
                 GetWindowLong(Application.Handle, GWL_EXSTYLE) or
                 WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
  ShowWindow( Application.Handle, SW_SHOW );
end;
In der Taskleiste ist es verschwunden, aber wie schon gesagt weiterhin per ALT-TAB auswählbar...
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#23

Re: Programm vor Taskmanager verstecken

  Alt 18. Jul 2005, 14:19
s14, das gehort nicht ins FormCreate. Zu diesem Zeitpunkt muss nicht notwendigerweise ein Fenster vorhanden sein und es ist durchaus moeglich das das Fenster spaeter gegen ein neues ausgewechselt wird.
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#24

Re: Programm vor Taskmanager verstecken

  Alt 18. Jul 2005, 14:31
Zitat von Olli:
@Marc: Ich schaue mal eben nochmal über deinen Code. Habe selber W2K, sollte also reproduzierbar sein

Gruß,
Anbei die neue Version
Angehängte Dateien
Dateityp: zip newuhr_129.zip (7,9 KB, 22x aufgerufen)
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#25

Re: Programm vor Taskmanager verstecken

  Alt 18. Jul 2005, 14:35
Zitat von Robert Marquardt:
s14, das gehort nicht ins FormCreate. Zu diesem Zeitpunkt muss nicht notwendigerweise ein Fenster vorhanden sein und es ist durchaus moeglich das das Fenster spaeter gegen ein neues ausgewechselt wird.
Moin Robert, doch es ist vorhanden, denn er nimmt Application.Handle
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#26

Re: Programm vor Taskmanager verstecken

  Alt 18. Jul 2005, 14:39
Ich habe den Fehler.

Das Icon, das bei Alt-Tab angezeigt wird, gehört zum MainForm.
Ich muss also auch das MainForm (in diesem Fall Form1) verstecken:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  mdown := false;

  Timer1.Enabled := True;

end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := false;

  ShowWindow( Application.Handle, SW_HIDE );
  SetWindowLong( Application.Handle, GWL_EXSTYLE,
                 GetWindowLong(Application.Handle, GWL_EXSTYLE) or
                 WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
  ShowWindow( Application.Handle, SW_SHOW );

  ShowWindow( Handle, SW_HIDE );
  SetWindowLong( Handle, GWL_EXSTYLE,
                 GetWindowLong(Handle, GWL_EXSTYLE) or
                 WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
  ShowWindow( Handle, SW_SHOW );
end;
So funktioniert es...
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#27

Re: Programm vor Taskmanager verstecken

  Alt 18. Jul 2005, 14:42
Ist der Timer den wirklich nötig?
Würde es nicht reichen den Constructor zu überschreiben? FormCreate wird ja irgendwo dazwischen aufgerufen....
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#28

Re: Programm vor Taskmanager verstecken

  Alt 18. Jul 2005, 14:51
Ich habe aber erst ein Handle auf das Fenster, NACHDEM es erstellt wurde. Und nicht schon vorher...
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#29

Re: Programm vor Taskmanager verstecken

  Alt 18. Jul 2005, 14:53
Zitat von DevilsCamp:
Ich habe aber erst ein Handle auf das Fenster, NACHDEM es erstellt wurde. Und nicht schon vorher...
DevilsCamp, verwechsele nicht VCL-Objekte und Windows-Objekte. Außerdem kannst du beim Überladen ja inherited angeben und dann dein eigenes Zeug danach machen. Dann existiert definitiv ein Handle
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#30

Re: Programm vor Taskmanager verstecken

  Alt 18. Jul 2005, 14:59
Zitat von DevilsCamp:
Ich habe aber erst ein Handle auf das Fenster, NACHDEM es erstellt wurde. Und nicht schon vorher...
richtig.

Delphi-Quellcode:
constructor TSomeForm.Create(AOwner: TComponent);
begin
   inherited;
   // OnCreate würde noch *im* Constrcutor
   // des Vorgängers (TCustomForm) aufgerufen werden
   // somit wird alles nach inherited auch nach OnCreate
   // und somit nach allem Fenstergedönst aufgerufen
   
   ShowWindow(Application.Handle, SW_HIDE);

   SetWindowLong(Application.Handle,
                 GWL_EXSTYLE,
                 GetWindowLong(Application.Handle, GWL_EXSTYLE) or
                 WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);

   ShowWindow(Application.Handle, SW_SHOW);

   ShowWindow(Handle, SW_HIDE);
   SetWindowLong(Handle,
                 GWL_EXSTYLE,
                 GetWindowLong(Handle, GWL_EXSTYLE) or
                 WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);

   ShowWindow(Handle, SW_SHOW);
end;
Nachtrag: @Ollie: Jenau!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz