Ist assembly die aktive Applikation auf dem Rechner?

20/08/2008 - 10:35 von Walter Sporn | Report spam
Hallo,

ich habe ein blödes Problem und komme damit per Google einfach nicht weiter:

In einer Webseite für den InternetExplorer ist ein Usercontrol als DLL
eingebunden, das ich geschrieben habe. Dieses Usercontrol verwendet einen
Tooltip, der von einem Drittanbieter-Control stammt und der angezeigt wird,
wenn bestimmte zeitgesteuerte Ereignisse auftreten.
Das funktioniert wunderbar, aber wenn der InternetExplorer minimiert wird
und mit einer anderen Applikation gearbeitet wird und dann mein Usercontrol
den Tooltip anzeigt, dann wird der scheinbar außerhalb des Kontexts des
InternetExplorers gezeichnet (sozusagen topmost) und das mag der IE bzw. das
Betriebssystem gar nicht und der IE stürzt ganz böse ab.

Ich möchte also die Anzeige des Tooltips nur erlauben, wenn mein Usercontrol
samt InternetExplorer gerade die aktive Applikation auf dem Rechner ist. Im
anderen Fall, wenn der IE im Hintergund làuft oder minimiert ist, soll der
Tooltip geblockt werden.

Wie kann ich das aber in C# abfragen, ob meine assembly und der zugehörige
Host-Prozess aktiv ist?

Vielen Dank für Eure Tipps!
 

Lesen sie die antworten

#1 Frank Dzaebel
20/08/2008 - 11:01 | Warnen spam
Hallo Walter,

In einer Webseite für den InternetExplorer ist ein Usercontrol als DLL
eingebunden, das ich geschrieben habe. Dieses Usercontrol verwendet einen
Tooltip, der von einem Drittanbieter-Control stammt und der angezeigt
wird, wenn bestimmte zeitgesteuerte Ereignisse auftreten.
Das funktioniert wunderbar, aber wenn der InternetExplorer minimiert wird
und mit einer anderen Applikation gearbeitet wird und dann mein
Usercontrol den Tooltip anzeigt, dann wird der scheinbar außerhalb des
Kontexts des InternetExplorers gezeichnet (sozusagen topmost) und das mag
der IE bzw. das Betriebssystem gar nicht und der IE stürzt ganz böse ab.



Mögliche Hilfsmittel sind:

[pinvoke.net: GetForegroundWindow (user32)]
http://www.pinvoke.net/default.aspx...indow.html

[pinvoke.net: IsIconic (user32)]
http://www.pinvoke.net/default.aspx...conic.html

(Die IsIconic-Methode bestimmt, ob das angegebene Fenster (-Handle)
minimiert ist)

ggf. --> (WindowState == FormWindowState.Minimized)


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen