![]() |
kein Fenster öffnen bei Programmaufruf mit Parameter!
Wenn mein Programm mit einem Parameter gestartet wird, soll dies nur ein anderes Programm aufrufen und sich selbst gleich wieder beenden.
Im Moment überprüf ich das alles im OnCreate-Ereignis des Forms. Man sieht leider kurz das Fenster aufblitzen. Das geht doch sicher irgendwie eleganter oder? |
Re: kein Fenster öffnen bei Programmaufruf mit Parameter!
Ja, du kannst das in der DPR Datei erledigen. Beispiel :
Delphi-Quellcode:
Ungetestet, sollte aber funktionieren.
if paramstr[1]='noWindow' then
// Shellexecute - Befehl else begin Application.Initialize; Application.CreateForm(TMainForm, MainForm); Application.Run; end; |
Re: kein Fenster öffnen bei Programmaufruf mit Parameter!
paramStr musste in eckige runde Klammern gesetzt werden, aber sonst funktioniert es perfekt:
Delphi-Quellcode:
program Test;
uses Forms,shellapi, MainForm in 'MainForm.pas' {Form1}; {$R *.res} begin //Parameter auswerten if paramstr(1)<>'' then ShellExecute(0, 'open', PChar('http://www.bing.de'), nil, nil, 0) else begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TForm1, Form1); Application.Run; end; end. |
Re: kein Fenster öffnen bei Programmaufruf mit Parameter!
Es geht auch im FormCreate:
Delphi-Quellcode:
if ParamCount > 0 then begin
ShellExecute(0, 'open', PChar('http://www.bing.de'), nil, nil, 0); Application.ShowMainForm := false; Application.Terminate; end; |
Re: kein Fenster öffnen bei Programmaufruf mit Parameter!
wobei in diesem Fall das FormCreate der falsche Platz ist. Denn wozu sollte mein ein Form erstellen wenn es doch nicht gebraucht wird? Dann lieber vorher prüfen ob das Form gebraucht wird und entsprechend form erzeugen oder eben andere Aktion ausführen.
|
Re: kein Fenster öffnen bei Programmaufruf mit Parameter!
Zitat:
Ob das Form wirklich als Instanz gebraucht wird oder nicht, hängt sicher vom entsprechenden Einsatz ab. So könnte man ja auch bestimmte Eigenschaften des Forms verwenden ohne das Form darzustellen (z.B. die Web-Adresse, die anderfalls als Vorgabe in einem Edit-Feld stehen würde). Gefragt war lediglich das "Aufblitzen" des Forms zu verhindern. Dies ist somit nur einer von mehreren möglichen Lösungsansätzen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz