![]() |
Anwendung beim Windows-Start ausblenden ?
Hallo
mein Programm startet beim Windows-Start:
Delphi-Quellcode:
...
Registry.WriteString(extractfilepath(application.ExeName)+Application.ExeName + ' nebenuhrbinich', Application.ExeName);...
Delphi-Quellcode:
Das Problem: Wenn ich das Programm "project1.exe" über den Parameter "nebenuhrbinich" aufrufe:
program Project1;
uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}; {$R *.res} procedure HideForms; begin Form2.Timer1.Enabled:=True; end; begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); if Paramstr(1) = 'nebenuhrbinich' then HideForms else Form1.Caption:=Paramstr(1); end. __________ procedure TForm2.Timer1Timer(Sender: TObject); begin timer1.Enabled:=false; Form2.Hide; Form1.Hide; end; C:\Project1.exe nebenuhrbinich dann wird es von Windows beendet : "Project1.exe" hat ein Problem festgestellt und muss beendet werden wenn ich das Programm direkt starte dann läuft ohne Probleme wo kann das Problem liegen? Ich möchte das Programm über einen Parameter Versteckt starten und über das Icon neben Uhr einblenden |
Re: Anwendung beim Windows-Start ausblenden ?
Hallo,
warum versteckst Du die Formulare per Timer und auf welche Zeit íst der eingestellt? Hast Du im Programm eine Funktion, um das TrayIcon zu erstellen? Bei der JVCL gibt es eine entsprechende Komponente, damit sollte das eigentlich problemlos funktionieren, in dem Du da die entsprechenden Attribute setzt. Da kannst Du dann auch konfigurieren ob das Programm bei Doppelklick wieder in den Vordergrund kommen soll und sich beim Minimieren wieder in den SysTray zurück begibt... |
Re: Anwendung beim Windows-Start ausblenden ?
Wenn du ja doch die Anwendung in den Systray minimieren möchtest, dann greife doch auf die CoolTrayIcons Komponenten zurück. Da ist alles bereits fertig.
PS: In deinem Code fehlt übrigends ein Application.Run; |
Re: Anwendung beim Windows-Start ausblenden ?
Was erwartest du denn als Ergebnis von diesem Ausdruck:
Delphi-Quellcode:
Sowas wie "C:\C:\Project1.exe"?
extractfilepath(application.ExeName)+Application.ExeName
|
Re: Anwendung beim Windows-Start ausblenden ?
ehrlich gesagt verstehe ich auch nicht warum du einen Timer verwendest um die Formulare auszublenden. Wenn du willst das sie nicht angezeigt werden dann ist es besser dies von vornherein so zu machen anstelle diese erst anzeigen zu lassen um sie dann per timer wieder auszublenden.
Der Fehler wird im übrigend wohl am fehlenden Application.Run mit liegen. |
Re: Anwendung beim Windows-Start ausblenden ?
Zitat:
Delphi-Quellcode:
_____________
procedure TForm1.Button1Click(Sender: TObject);
begin Caption:=extractfilepath(application.ExeName)+Application.ExeName; end; Gibt es eine andere Idee ausser Timer? |
Re: Anwendung beim Windows-Start ausblenden ?
hat er und daraus resultiert seine Frage. Denn genau das von ihm beschriebene Beispiel müsste dabei raus kommen :)
|
Re: Anwendung beim Windows-Start ausblenden ?
Hallo,
der Dateiname ist bestimmt strubbelig, wobei mir schleierhaft ist, wieso Windows mit dem Eintrag das Programm überhaupt starten kann, oder resultiert die Fehlermeldung daraus, dass Windows nicht weiß, was es hier starten soll und deshalb eine Fehlermeldung ausgibt :?: Ausser Timer:
Delphi-Quellcode:
procedure HideForms;
begin Form2.Hide; Form1.Hide; end; begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); if Paramstr(1) = 'nebenuhrbinich' then HideForms else Form1.Caption:=Paramstr(1); Application.Run; end. |
Re: Anwendung beim Windows-Start ausblenden ?
Sowas in der Art könnte auch ganz hilfreich sein:
Delphi-Quellcode:
begin
Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); if Paramstr(1) = 'nebenuhrbinich' then begin Application.ShowMainForm = False; Form1.Visible := false; end else Form1.Caption:=Paramstr(1); Application.Run; end. |
Re: Anwendung beim Windows-Start ausblenden ?
Es hat gekappt mit diese Code:
Delphi-Quellcode:
Das lag also wie @SirThornberry vermutet hat
procedure HideForms;
begin Form2.Hide; Form1.Hide; // Form2.Timer1.Enabled:=true; // geht auch genauso Application.Run; {habe ich nachträglich hinzugefügt, da das Programm wieder beim Starten einen Fehler verursacht und musste beendet werden} end; begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); if Paramstr(1) = 'nebenuhrbinich' then HideForms else Form1.Caption:=Paramstr(1); Application.Run; end. Mit dem Timer klappt auch jetzt, nachdem ich den seine Interwahl erhöht habe |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:16 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