Anleitung:
Sie können mit der Windows API Funktion FindWindow einen Handle auf ein Fenster ermitteln.
z.B.: Sie möchten ein Microsoft Access-Fenster in Vordergrund holen:
HWND Handle= NULL;
Handle= FindWindow("OMAIN",NULL);
if(Handle)
{
ShowWindow(Handle, SW_MINIMIZE);
ShowWindow ( Handle, SW_SHOWNORMAL );
SetForegroundWindow(Handle);
}
else
ProgramExecute("C:\\MSOffice.97\\Office\\ACCESS.EXE");
Wird das Fenster nicht gefunden, dann wird Microsoft Access neu gestartet.
Hinweis zu der Funktion FindWindow:
Der erste Parameter ist die Klasse des Fensters.
Die Klasse können Sie mit Hilfe eines Compilers herausfinden (z. B: Spy von Visual C++).
Der zweite Parameter ist der Titel des Fensters (Titelleiste). Man kann entweder einen der beiden Parameter oder beide in Kombination angeben. In diesem Beispiel sieht der Befehl dann folgendermaßen aus:
Handle=FindWindow(NULL,"Microsoft Access -");
Wenn Sie nach dem Namen des Fensters suchen, beachten Sie bitte, dass der Titel bei manchen Programmen sprachabhängig ist und dann in einer anderen Sprache das Fenster evtl. nicht gefunden wird. Die Klasse ist immer unabhängig von der Sprache.
Wenn Sie die Klasse des Fensters kennen, können Sie dieses Vorgehen auch für andere Applikationen verwenden.
Hier sehen Sie die Namen der Fensterklassen für einige Applikationen:
|
Applikation |
Klasse |
|
Access |
OMAIN |
|
Internetexplorer |
IEFrame |
|
Microsoft Excel |
XLMAIN |
|
Microsoft Word |
OpusApp |
|
Msdos Eingabeaufforderung |
ConsoleWindowClass |
|
Notepad |
Notepad |
|
Paint: |
MSPaintApp |
|
Taschenrechner |
SciCalc |
|
Windows-Explorer |
ExploreWClass
CabinetWClass (bei Windows 7) |
|
Simatic Manager |
s7tgtopx |
| WinCC V4.x Control Center |
MCPFrameWndClass |
| WinCC V5.x / V6.x / V7.x WinCCExplorer |
WinCCExplorerFrameWndClass |
|
WordPad |
WordPadClass |
Beispiel 1:
WinCC V5.x / WinCC V6.x / WinCC V7.x: WinCCExplorer in den Vordergrund holen
HWND Handle= NULL;
Handle= FindWindow("WinCCExplorerFrameWndClass",NULL);
if(Handle)
{
ShowWindow(Handle, SW_MINIMIZE);
// Dieser Eintrag ist nur unter Windows 2000 //(bzw. Windows XP bei WinCC V6.x / WinCC V7.x) notwendig
ShowWindow ( Handle, SW_SHOWNORMAL );
SetForegroundWindow(Handle);
}
Beispiel 2:
WinCC V4: Control Center in den Vordergrund holen
HWND Handle= NULL;
Handle= FindWindow("MCPFrameWndClass",NULL);
if(Handle)
{
ShowWindow ( Handle, SW_SHOWNORMAL );
SetForegroundWindow(Handle);
}
Suchbegriffe: Programmierhinweise
|