AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Zusätzlicher leerer Taskbar-Eintrag unter Vista
Thema durchsuchen
Ansicht
Themen-Optionen

Zusätzlicher leerer Taskbar-Eintrag unter Vista

Offene Frage von "MasterEvil"
Ein Thema von MasterEvil · begonnen am 18. Jun 2008 · letzter Beitrag vom 7. Jul 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von MasterEvil
MasterEvil

Registriert seit: 12. Feb 2005
Ort: Hannover
234 Beiträge
 
Delphi 7 Enterprise
 
#1

Zusätzlicher leerer Taskbar-Eintrag unter Vista

  Alt 18. Jun 2008, 14:57
Hallo,

ich habe ein Problem mit meinem Programm unter Windows Vista.
Und zwar wird ab und zu (konnte noch keine Regel finden) ein zusätzlicher leerer (nur das Icon des Programms ist drauf) Taskbar-Eintrag erstellt.

Das Programm ist mit Delphi 2007 erstellt und Application.MainFormOnTaskBar ist true.
Bevor allerdings das Hauptformular aufgerufen wird, wird ein SplashScreen angezeigt. Das Auftauchen des zusätzlichen Taskbar-Eintrages passiert (wenn es denn passiert) irgendwann wärend der SplashScreen angezeigt wird. Manchmal gleich beim Start, ab und zu später oder kurz bevor der SplashScreen wieder geschlossen wird.

Dem SplashScreen habe ich einen eigenen Taskbar-Eintrag spendiert, über:
Delphi-Quellcode:
procedure TFormSplash.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.ExStyle:=Params.ExStyle and not WS_EX_TOOLWINDOW or WS_EX_APPWINDOW;
end;
Zusätzlich wird über den SplashScreen zwischendurch noch ein Login-Fenster angezeigt. Dies hat keinen Taskbar-Eintrag, nur den SplashScreen als PopupParent.
Nach dem Laden wird der SplashScreen geschlossen und das MainForm created. Falls ein leerer Taskbar-Eintrag aufgetaucht ist, bleibt er auch weiterhin dort, bis das Programm gänzlich geschlossen wird.

Sehr irritierend finde ich es, dass der leere Taskbar-Eintrag irgendwann erscheint und nicht immer beim Start oder so. Ist dies vielleicht der Eintrag von der Application?

Jemand eine Idee? Ich verzweifel langsam (vorallem das sporadische Auftreten macht die Fehlersuche nicht einfacher)
Gruß,
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Zusätzlicher leerer Taskbar-Eintrag unter Vista

  Alt 18. Jun 2008, 14:59
Das dürfte einfach nur ein weiteres Fenster Deiner Applikation sein...ein Splashscreen hat in der Regel keinen Titel, deswegen ist es leer. Vergib doch einfach mal zum Testen eine Caption für deinen Splashscreen...das dürfte dann da drin stehen.

Sherlock
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von MasterEvil
MasterEvil

Registriert seit: 12. Feb 2005
Ort: Hannover
234 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Zusätzlicher leerer Taskbar-Eintrag unter Vista

  Alt 18. Jun 2008, 15:04
Der SplashScreen hat aber eine Caption, genauso der LoginScreen. Und Application.Title ist auch vergeben.

  Mit Zitat antworten Zitat
Bebe

Registriert seit: 3. Apr 2005
Ort: Berlin
104 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: Zusätzlicher leerer Taskbar-Eintrag unter Vista

  Alt 18. Jun 2008, 15:41
Hallo,

ich kenne das Problem nur von Delphi selbst, das man aber mit einem Update beheben kann.
Bei mir war es wie gesagt Delphi 2007 selbst und nicht das Projekt. Der Fehler entsteht nur unter Vista.

Gruß
Matze
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Zusätzlicher leerer Taskbar-Eintrag unter Vista

  Alt 18. Jun 2008, 15:44
Zitat von Bebe:
Hallo,

ich kenne das Problem nur von Delphi selbst, das man aber mit einem Update beheben kann.
Bei mir war es wie gesagt Delphi 2007 selbst und nicht das Projekt. Der Fehler entsteht nur unter Vista.

Gruß
Matze
/offtopic
Diesen "Fehler" hab ich aber auch unter XP-SP2
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Zusätzlicher leerer Taskbar-Eintrag unter Vista

  Alt 18. Jun 2008, 15:45
Rufe Application.MainFormOnTaskBar := true; erst auf, wenn der SplashScreen ausgeblendet wird und bevorApplication.Run; , dann sollte das Problem gelöst sein.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von MasterEvil
MasterEvil

Registriert seit: 12. Feb 2005
Ort: Hannover
234 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Zusätzlicher leerer Taskbar-Eintrag unter Vista

  Alt 18. Jun 2008, 17:02
Mein Delphi 2007 ist auf dem aktuellen Stand.

@ sakura:
Ich hab deinen Vorschlag mal übernommen und zunächst sieht schonmal alles gut aus.
Vorallem behebt es auch das Problem mit zwei Taskbar-Einträgen in Windows98 (die waren immer da).
Ab morgen wird ein Stress-Test gemacht und dann hoffe ich mal, dass es nicht mehr auftritt.

Danke
  Mit Zitat antworten Zitat
Benutzerbild von MasterEvil
MasterEvil

Registriert seit: 12. Feb 2005
Ort: Hannover
234 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Zusätzlicher leerer Taskbar-Eintrag unter Vista

  Alt 23. Jun 2008, 08:05
Hallo,

tja, leider hat es nicht geholfen.
Das Ganze bringt mich zwar schon näher an die Ursache, aber eigentlich verstärkt es nur meine Annahme, dass es ein Bug in der VCL ist:
Wenn der zweite Taskbar-Eintrag auftaucht, dann tut er das nun nicht mehr direkt beim Programmstart, sondern erst nach dem SplashScreen. Sprich: wenn ich MainFormOnTaskbar wieder auf true setze.

Gibt es denn das Application-Fenster noch? Ist der Taskbar-Eintrag davon?

Gruß,
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von MasterEvil
MasterEvil

Registriert seit: 12. Feb 2005
Ort: Hannover
234 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Zusätzlicher leerer Taskbar-Eintrag unter Vista

  Alt 24. Jun 2008, 09:16
Keiner eine Idee?

Hab mich mal etwas durch die VCL gekramt und das Umschalten von MainFormOnTaskBar geschieht in Forms.TApplicationHelper.SetMainFormOnTaskBar.
Dort passieren im wesentlichen zwei Dinge, wenn man MainFormOnTaskBar auf true setzt.
Zum Einen:
Delphi-Quellcode:
ChangeAppWindow(FHandle, False, False);
ChangeAppWindow(FMainForm.Handle, True, FMainForm.Visible);
Welches das Fenster von TApplication verschwinden lassen soll und es dafür aufs MainForm überträgt.
Und zum Anderen:
SetWindowText(FHandle, nil); Welches verhindern soll, dass TApplication im TaskManager auftaucht.

Irgendwas geht wahrscheinlich bei ChangeAppWindow(FHandle, False, False) schief. Wieso der Taskbar-Eintrag dann allerdings leer ist und nicht Application.Title drin steht, ist mir wiederum ein Rätsel.
Die Frage ist natürlich noch, wieso scheinbar nur ich dieses Problem habe ...

Gruß,
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von MasterEvil
MasterEvil

Registriert seit: 12. Feb 2005
Ort: Hannover
234 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Zusätzlicher leerer Taskbar-Eintrag unter Vista

  Alt 7. Jul 2008, 08:55
Ich führe hier mal meinen Monolog weiter.

Ich habe mittlerweile eine einfache Test-Applikation mit einem SplashScreen erstellt, die ebenfalls dieses Problem aufweist und habe meine Erfahrungen und diese Applikation in einen QualityCentral-Eintrag verpackt. Dieser wurde auch ziemlich fix in die interne Datenbank aufgenommen, aber dann auch ziemlich schnell "closed" mit der Resolution "Test Case Error".

Leider weiß ich nicht genau, was dies bedeutet. Der Fehler ist nachvollziehbar, ansonsten wäre er ja auch nicht in die interne Datenbank gekommen. Also was ist damit gemeint? Und wieso hat scheinbar sonst niemand dieses Problem? Egal wie ich das Application.MainFormOnTaskBar einbaue, auf irgendeinem Betriebssystem ist es immer nicht in Ordnung ...

Gruß,
Steffen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:38 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