例子 1
假设您希望将一个 Microsoft Access 窗口置于最前面:
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");
如果没有发现该窗口,随后 Microsoft Access 将重新启动。
FindWindow 函数的注意事项:
- 第一个参数是窗口的类。
可以使用编译器(比如:用 Visual C++ 中的 Spy 命令)找到类。
- 第二个参数是窗口的标题(标题栏)。可以指定两个参数中的任何一个,或者两个都指定。在本例中命令类似于以下形式:
Handle=FindWindow(NULL,"Microsoft Access -");
如果你在寻找窗口名,那么请注意对于一些程序标题是有规定语言的,对于不同的语言有可能寻找不到。类总是独立于语言的。
如果知道窗口的类,那么也可以将此过程用于其它的应用程序。
以下是一些应用程序的窗口类的名称:
Windows 7下的类名称
OMAIN
IEFrame
XLMAIN
OpusApp
ConsoleWindowClass
Notepad
MSPaintApp
CalcFrame
CabinetWClass
s7tgtopx
WinCC V4.x Control Center
---
WinCC V5.x / V6.x / V7.x WinCC Explorer
WinCCExplorerFrameWndClass
WinCCExplorerFrameWndClass
WordPadClass
表 01
例子 2
WinCC V5.x / WinCC V6.x / WinCC V7.x: WinCC项目编辑器置最前端
HWND Handle= NULL;
Handle= FindWindow("WinCCExplorerFrameWndClass",NULL);
if(Handle)
{
ShowWindow(Handle, SW_MINIMIZE);
// This entry is only necessary in Windows 2000
//(or in Windows XP and Windows 7 in the case of WinCC V6.x / WinCC V7.x)
ShowWindow ( Handle, SW_SHOWNORMAL );
SetForegroundWindow(Handle);
}
例子 3
WinCC V4: 控制面板置最前端
HWND Handle= NULL;
Handle= FindWindow("MCPFrameWndClass",NULL);
if(Handle)
{
ShowWindow ( Handle, SW_SHOWNORMAL );
SetForegroundWindow(Handle);
}