Create an invisible application with Delphi
[lang_it]
produrre un applicazione non visibile con Delphi è un gioco da ragazzi.
per nascondere il form principale dell’applicazione dovete semplicemente aggiungere la seguente riga al codice del vs. progetto :
Application.ShowMainForm:=False;
esempio concreto, modifico il “dpr” della mia applicazione:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {DataModule2: TDataModule}, Unit3 in 'Unit3.pas' {Form3}; {$R *.res} begin Application.Initialize; Application.ShowMainForm:=False; Application.CreateForm(TDataModule2, DataModule2); Application.CreateForm(TForm1, Form1); Application.Run; end. |
non finisce qui, voglio anche esser sicuro che non si veda sulla taskbar il bottone associato all’applicazione, per far ciò nell’evento onCreate del form principale aggiungo quanto segue, se sto usando Delphi 7.0 o versioni precedenti :
(with Delphi 7.0)
1 2 3 4 5 6 |
procedure TForm1.FormCreate(Sender: TObject); begin ShowWindow(Application.Handle, SW_HIDE) ; SetWindowLong(Application.Handle, GWL_EXSTYLE, getWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW) ; ShowWindow(Application.Handle, SW_SHOW) ; end; |
Con Delphi 2007 o maggiore, per nascondere il bottone sulla taskbar è necessario semplicemente settare la proprietà dell’oggetto form “MainFormOnTaskbar” a false.
e questo è tutto, ora l’applicazione gira, pre chiuderla ovviamente non vi resta che il taskmanager.
[/lang_it]
[lang_en]
to produce an invisible application with Delphi is soo simple….
to hide the main form at application start you need to add in your project source a this code :
Application.ShowMainForm:=False;
full piece of code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {DataModule2: TDataModule}, Unit3 in 'Unit3.pas' {Form3}; {$R *.res} begin Application.Initialize; Application.ShowMainForm:=False; Application.CreateForm(TDataModule2, DataModule2); Application.CreateForm(TForm1, Form1); Application.Run; end. |
for hiding the taskbar button you need to add following code on the create event handler of you main form like :
(with Delphi 7.0)
1 2 3 4 5 6 |
procedure TForm1.FormCreate(Sender: TObject); begin ShowWindow(Application.Handle, SW_HIDE) ; SetWindowLong(Application.Handle, GWL_EXSTYLE, getWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW) ; ShowWindow(Application.Handle, SW_SHOW) ; end; |
with Delphi 2007 or greater, to hide task bar button you need to set the property “MainFormOnTaskbar” to false of your main form.
thats all, now you can’t see the application on your DeskTop.
[/lang_en]