Instanzen-Nummer in Titel-Leiste

25/09/2007 - 14:39 von Winfried Wolf | Report spam
Hallo,
es gab ja schon mehrfach Tipps, wie man verhindert, dass eine
VFP-Applikation mehrfach auf einem Rechner gestartet wird. Ich möchte
aber das nur begrenzen auf eine maximale Anzahl (z.B. 4 mal; nur, damit
der Benutzer noch den Überblick behàlt) und zudem im Fenstertitel (und
in der Taskleiste) die Nummer der Instanz stehen haben.
So wird es z.B. beim Total-Commander gemacht; die Fenster heißen dann
"[2] Total Commander" usw.
Ich würde das gerne mit Windows-Boardmitteln machen und nicht mit einer
Tabelle; der Total-Commander benutzt bestimmt auch nur
Windows-System-Calls dafür.
Wie macht man sowas?

Gruß,
WiWo.
 

Lesen sie die antworten

#1 Udo Bierlage
25/09/2007 - 17:08 | Warnen spam
Hallo Winfried,

"Winfried Wolf" schrieb
Hallo,
es gab ja schon mehrfach Tipps, wie man verhindert, dass eine
VFP-Applikation mehrfach auf einem Rechner gestartet wird. Ich möchte aber
das nur begrenzen auf eine maximale Anzahl (z.B. 4 mal; nur, damit der
Benutzer noch den Überblick behàlt) und zudem im Fenstertitel (und in der
Taskleiste) die Nummer der Instanz stehen haben.



Wenn der Fenstertitel Deiner Anwendung (bis auf die Nummer) statisch ist,
dann kannst Du mit der API-Funktion FindWindow() nach den bis zu vier
Fenstern suchen. Wenn Du "[1] Titel" nicht findest, dann kannst Du diesen
Totel verwenden. Wenn [1] - [4] gefunden werden, dann gibst Du eine
Schade-Meldung aus und machst das Programm wieder zu. Zusàtzlich kannst Du
ein Anwendungsfenster auch mit SetForeGroundWindow() eines der laufenden
Fenster in den Vordergrund bringen oder zumindest blinken lassen.

Ich würde das gerne mit Windows-Boardmitteln machen und nicht mit einer
Tabelle; der Total-Commander benutzt bestimmt auch nur
Windows-System-Calls dafür.



Was hast Du gegen Tabellen? zu einfach???
Hat aber den Vorteil, das das auch in spàteren Windws-Versionen noch
funktioniert. Siehe SetForeGroundWindow, das unter Win95 bis 2000 noch
einwandfrei funktionierte, aber in WinXP braucht man ein besonderes Recht
dazu...

Grüße aus Budapest

Udo Bierlage

Ähnliche fragen