![]() |
Programm unsichtbar starten
Hallo zusammen,
ich möchte ein Programm schreiben, dass mittels Taskplaner mit Kommandozeilenparameter unsichtbar gestartet werden soll, bestimmte Dinge erledigt und sich selbst nach Erledigung wieder beendet. Es soll eine Form beinhalten, weil ich einige Komponenten benötige, aber wie gesagt, ein User sollte davon nichts mitbekommen. Das mit dem Taskplaner ist kein Problem, mein Programm wird mit dem richtigen Parameter aufgerufen, ebenso hab ich im Quelltext der Anwendung Application.ShowMainForm auf False gesetzt. Was ich aber nicht hinbekomme ist, wo ich den Quelltext für die Erledigung der Aufgaben einfügen soll? Ich habe das OnCreate Ereignis benutzt, aber da kommt immer eine Schutzverletzung, und das Programm beendet sich am Ende nicht. Hat hier jemand einen Vorschlag (ausser hierfür einen Dienst zu schreiben:))? |
AW: Programm unsichtbar starten
Zitat:
|
AW: Programm unsichtbar starten
Hallo,
zum Beenden nimm folgendes
Delphi-Quellcode:
Als Holzhacker get auch
PostMessage(Handle, WM_CLOSE, 0, 0);
Delphi-Quellcode:
Zur Schutzverletzung -> siehe mein Vorschreiber.
Halt;
Kann es viell. sein, dass die Exe in einem anderen Verzeichnis gestartet wird als beim Debugger ? Du kannst unter Start - Parameter deinen "AutoStart"-Parameter angeben und in der IDE testen. Heiko |
AW: Programm unsichtbar starten
Das Problem was du anscheinend hast ist, dass die anderen Komponenten die du auf das Form gelegt hast natürlich noch nicht initialisiert sind wenn du die Verarbeitung im OnCreate starten willst.
Ich hab schonmal gesehen dass jemand nen Timer auf das Form gelegt hat und in dessen OnTimer dann die Verarbeitung gestartet wurde. frei nach dem Motto:
Delphi-Quellcode:
Dafür musst du einfach das enabled auf true setzen und als Intervall 500 ms oder so eingeben je nachdem wie lang das Form zum initialisieren brauch.
procedure TfrmMain.Timer1Timer(Sender: TObject);
begin Timer1.Enabled := false; //Starte Verarbeitung end; Ist vieleicht nicht die Feine Englische Art Funktioniert aber. |
AW: Programm unsichtbar starten
Delphi-Quellcode:
procedure TForm5.FormActivate(Sender: TObject);
begin HideTimer.enabled := true; end; procedure TForm5.FormCreate(Sender: TObject); begin Left := - Width ; end; procedure TForm5.HideTimerTimer(Sender: TObject); begin HideTimer.enabled := false; Hide; end; |
AW: Programm unsichtbar starten
Könnte man nicht einfach eine Konsolenanwendung nehmen und die Komponenten zur Laufzeit erzeugen?
|
AW: Programm unsichtbar starten
Zitat:
Delphi-Quellcode:
Das sollte sogar reichen. Dialogfelder und andere modale Formulare kann man trotzdem anzeigen, wenn man's braucht :-D
program DemoProject;
uses ...; begin // Hier den Code einfügen. end. |
AW: Programm unsichtbar starten
Meinte ich eigentlich auch. Ich mach das immer über "Neu - Konsolenanwendung" und lösche dann die Zeile {$APPTYPE CONSOLE} wieder raus ;)
|
AW: Programm unsichtbar starten
Man sollte allerdings berücksichtigen, dass manche Komponenten das Application Objekt benötigen, wie zum Beispiel die Indies, welches man bei einer Konsolenanwendung nicht hat.
|
AW: Programm unsichtbar starten
Da hilft nur ausprobieren. Zumindest wäre es IMO einen Versuch wert, denn was soll ich den ganzen Forms-Ballast mitschleppen, wenn ich ihn gar nicht brauche?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 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-2025 by Thomas Breitkreuz