AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VCL-Anwendung ohne sichtbares Fenster starten

Ein Thema von scrat1979 · begonnen am 16. Jul 2007 · letzter Beitrag vom 16. Jul 2007
Antwort Antwort
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#1

VCL-Anwendung ohne sichtbares Fenster starten

  Alt 16. Jul 2007, 22:25
Hallo zusammen,

ich möchte mir ein kleines Tool schreiben, welches ich in den Autostart integrieren möchte. Sinn dieses Programmes ist es, zu prüfen, ob ein anderes Programm vor >=x Tagen gestartet wurde. Falls nein, dann soll das Tool dieses Programm aufrufen und in eine INI-Datei das Datum der letzten Ausführen speichern. Soll also eine Art "Mikro-Taskplaner beim Systemstart" werden (Es soll ein Programm für Backup-Zwecke mind. alle 3 Tage - nach dem Systemstart - ausgeführt werden). Der Windows-Taskplaner kommt für mich nicht in Frage, da 1. deaktiviert und 2. ein kennwortgeschütztes Konto benötigt wird, welches ich auf meinem privaten REchner weder habe noch brauche

Meine Frage: Ich möchte nun, daß das Programm "im Hintergrund" gestartet wird, d.h. es soll keine DOS-Box-Anwendung werden und es sollen auch keine Fenster angezeigt werden.

Wie gehe ich denn da am besten vor? Hab mal testweise eine ShowMessage bei Form1.Create eingefügt und beim Projekt-Quellcode Application.ShowMainForm := False gesetzt. Das Ergebnis ist das Gewünschte, aber irgendwie kommt es mir doch sehr unsauber vor

Hat jemand von Euch eine andere, saubere Lösung für mich parat??

SCRaT

//EDIT: Das Programm soll, nachdem die aufgerufene Anwendung ausgeführt wurde, wieder beendet werden.
Michael Kübler
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: VCL-Anwendung ohne sichtbares Fenster starten

  Alt 16. Jul 2007, 22:42
Sollen überhaupt keine Fenster angezeigt werden? Nie?
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: VCL-Anwendung ohne sichtbares Fenster starten

  Alt 16. Jul 2007, 22:50
Richtig, ich möchte lediglich eine andere Anwendung starten, nachdem geprüft wurde, ob diese innerhalb der letzten x Tage noch nicht ausgeführt wurde. Dazu möchte ich keinerlei Fenster (also meines Tools) anzeigen lassen...

EDIT: Mir ist grad eine Idee eingefallen: Könnte ich die "Prüfroutine" nicht einfach in die Projektdatei einfügen und sämtliche Formulare rauslöschen?
Michael Kübler
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: VCL-Anwendung ohne sichtbares Fenster starten

  Alt 16. Jul 2007, 22:53
Moin Scrat,

das sehe ich prinzipiell drei Möglichkeiten:
  1. Application.ShowMainForm := false
    Da Du für Deinen Anwendungszweck nun aber so gar kein Fenster brauchst, ist eine normal VCL-Anwendung vielleicht übertrieben.
    (was daran unsauber sein soll, kann ich allerdings nicht sehen )
  2. Konsolenanwendung, aber {$APPTYPE CONSOLE} wird entfernt.
    Kein Fenster (auch kein Konsolenfenster).
    Sollte funktionieren, aber 1. halte ich da noch für sauberer
  3. Ein Dienst (TServiceApplication)
    (gefällt mir in diesem Zusammenhang noch am Besten )
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: VCL-Anwendung ohne sichtbares Fenster starten

  Alt 16. Jul 2007, 23:01
Danke für die Antwort!!!

Mit unsauber meinte ich - wie Du schon sagst - dass eine VCL-Anwendung etwas zu übertrieben ist..

Dann werde mich mal daran machen, meinen ersten Versuch in Sachen Dienst-Programmierung zu unternehmen... Falls Fragen aufkommen sollten (leider sehr wenige bis gar kein Tutorial beim googlen gefunden), dann seid Ihr ja - wie immer - zur Stelle

Liebe Grüsse,

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: VCL-Anwendung ohne sichtbares Fenster starten

  Alt 16. Jul 2007, 23:22
Ok, habe mir mal ein Mini-Dienst mit einer ShowMessage nach 5s (Timer) erstellt. Funktioniert auch schon ganz gut. Nur, wie kann ich denn den Dienst wieder (nach dem Showmessage) beenden?!? Ein Service1.Terminate, Application.Terminate etc. war leider nicht erfolgreich...

SCRaT

//EDIT: Die Forensuche brache ein Service1.DoStop; zum Vorschein, leider bekomme ich dann eine Exception und der Dienst läuft weiter...

Gute N8 und bis morgen,
SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
Antwort Antwort


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:26 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