AGB  ·  Datenschutz  ·  Impressum  







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

Vollbildanwendung im Autostart

Ein Thema von Sven M. · begonnen am 2. Nov 2015 · letzter Beitrag vom 4. Nov 2015
Antwort Antwort
Sven M.

Registriert seit: 21. Okt 2006
Ort: Halle/Saale
106 Beiträge
 
Delphi 5 Enterprise
 
#1

Vollbildanwendung im Autostart

  Alt 2. Nov 2015, 15:55
Moin,
ich habe eine Client-Software, die auf dem Rechner im Vollbild laufen soll - und beim Start des Rechners automatisch gestartet werden soll. Dazu habe ich eine entsprechende Verknüpfung im Autostart-Menü angelegt.

Die Eigenschaften werden zur Designzeit gesetzt:
Delphi-Quellcode:
WindowState:=wsMaximized;
BorderStyle:=bsNone;
Nun habe ich das Problem, das seit einem Update auf einem Rechner (Software läuft auf drei Rechnern momentan) beim Systemstart unten die Taskleiste zu sehen ist, das Programm läuft aber im Vollbild, schimmert durch die Leiste durch.

Durch einen Klick auf das Fenster oder durch Drücken der Leertaste kann das Fenster aktiviert werden, die Taskleiste verschwindet und das Fenster reagiert auch auf Eingaben - was es vorher nicht tut.


FormStyle:=fsStayOnTop; hat keine Verbesserung gebracht.


edit sagt:
Schließe ich das Programm nach dem Systemstart und starte es manuell, dann wird es dargestellt wie gewünscht. Vollbild und ohne Taskleiste.


Mit der Bitte um Hilfe,
Sven
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Vollbildanwendung im Autostart

  Alt 2. Nov 2015, 16:29
Wahrscheinlich kam noch was anderes in den Autostart-Ordner rein. Das Programm das zuletzt darüber gestartet wurde, erhält den Fokus. Dummerweise lässt sich die Autostart-Reihenfolge meines Wissens mit Windows-Bordmitteln nicht beeinflussen. Da muss man entweder auf Fremdsoftware ausweichen, oder sich eine Batch-Datei schreiben.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#3

AW: Vollbildanwendung im Autostart

  Alt 2. Nov 2015, 16:50
Falls ausschließlich Deine Anwendung benutzbar sein soll, wäre evtl. ein Blick auf den Kiosk-Modus sinnvoll. Der Benutzer kuba hat sich da richtig in die Thematik reingewühlt, danach würde ich ggf. einmal im Forum recherchieren.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.093 Beiträge
 
Delphi 12 Athens
 
#4

AW: Vollbildanwendung im Autostart

  Alt 3. Nov 2015, 15:16
Hallo Sven,

so ein ähnliches Problem hatte ich auch.
Allerdings etwas verschärft, weil ich eine TopMost Anwendung über eine andere TopMost Anwendung (Flash-Kiosk)
bringen musste.

Das ging nur einigermassen in dem ich regelmäßig, z.B. per Timer, die App wieder nach vorne geholt habe.

Code:
    //Make me TopMost
    SetWindowPos(FhwndSelf, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE or SWP_NOACTIVATE);
Generell würde ich das aber auch bei normalen TopMost-Apps empfehlen, weil es immer sein kann das
z.B. die AutoHide Taskbar oder irgendetwas anderes sichtbar bleibt.

Deshalb hole ich immer regelmäßig die App wieder nach vorne.

Rollo
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#5

AW: Vollbildanwendung im Autostart

  Alt 3. Nov 2015, 18:50
Wenn du nicht möchtest, dass der Explorer überhaupt sichtbar ist, kannst du auch dein Programm als shell registrieren.

Das ist vermutlich der beste Weg solche Wettkämpfe um die "TopMost"-Position zu verhindern. Wenn dein Programm als shell registriert ist, bist du automatisch vorne und es wird kein Explorer gestertet. Auch keine (bzw. auf jeden Fall weniger) andere Autostart-Programme. Dazu einfach den Pfad zur exe als Zeichenkette in
Code:
HKEY_Current_User\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
hinterlegen.
  Mit Zitat antworten Zitat
Der schöne Günther
Online

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Vollbildanwendung im Autostart

  Alt 3. Nov 2015, 18:51
Und was passiert wenn sich die eigene Anwendung aufhängt oder beendet?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Vollbildanwendung im Autostart

  Alt 3. Nov 2015, 18:54
Wahrscheinlich das gleiche, wie wenn sich der Explorer als Shell aufhängt oder abstürzt, was ja durchaus schon mal passieren kann. Entweder startet Windows die Shell automatisch neu oder man muss sie eben per Taskmanager neu starten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#8

AW: Vollbildanwendung im Autostart

  Alt 3. Nov 2015, 21:59
Aus Erfahrung: Man sieht nur noch einen schwarzen Bildschirm (habe aber auch gehört, dass Windows die Shell automatisch neustartet. Keine Ahnung wovon das abhängt).
Also werden auch keine sensitiven (?) Informationen präsentiert, wenn mal was schiefgeht. Man kann den PC dann einfach aus und wieder an machen und das System ist wieder da (oder eben den Task-Manager aufrufen und das Programm starten). Oder einen Watchdog programmieren, der die Hauptanwendung regelmäßig prüft und ggf. abschießt und neu startet.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#9

AW: Vollbildanwendung im Autostart

  Alt 4. Nov 2015, 07:57
Wir haben in Fertigungshallen Leitrechner und BDE-PC rumzustehen. Auf diesen PC läuft 'eigentlich' immer nur ein Programm, nämlich das Leitrechnerprogramm bzw. die BDE. Die Bediener wollen aber manchmal ein anderes Programm starten (sehr selten, ist aber so gewünscht).

Lösung:
1. Die Anwendung erzwingt die Topmost-Position mit den Mitteln von Rollo62.
2. Die Anwendung kann mit Sondertasten/Menüpunkt mit Bestätigung beendet werden.
3. Die Anwendung lässt sich über ein nicht zu übersehendes Icon auf dem Desktop wieder starten.
4. Die Anwendung startet sich bei Absturz oder Hängern neu (bzw. wird neu gestartet => Sentinel-Service)
5. Die Anwendung befindet sich im Autostart.
6. Der PC ist als Auto-Login konfiguriert

Der Sentinel-Service schickt in periodischen Abständen eine Keep-Alive Message an die Anwendung. Reagiert diese nicht, wird der User zwangsausgeloggt. Nun greift sofort das Auto-Login und die Anwendung ist wieder da: Verzögerung im Ernstfall: Ca. 1 Sekunde.

Sollte ein DAU das nicht zu übersehende Icon doch übersehen, oder des Doppelklicks nicht mächtig sein, oder einfach nur blöd, dann schaltet er den Rechner aus und wieder ein. Autologin=> Programm wieder da. Und: Ja, Rechnerneustart kriegen alle hin.

Natürlich sollte man seine Anwendung so schreiben, das sie nie abstürzt oder hängt. Aber mit Delphi ist das nicht immer möglich (mit anderen Sprachen vielleicht auch nicht), wobei das natürlich eher an den Treibern und Drittanbietern liegt und nicht an Delphi selbst.
  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 17:12 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