例子 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.97OfficeACCESS.EXE");
如果没有发现该窗口,随后 Microsoft Access 将重新启动。
FindWindow 函数的注意事项:
- 第一个参数是窗口的类。
可以使用编译器(比如:用 Visual C++ 中的 Spy 命令)找到类。 - 第二个参数是窗口的标题(标题栏)。可以指定两个参数中的任何一个,或者两个都指定。在本例中命令类似于以下形式:
Handle=FindWindow(NULL,"Microsoft Access -");
如果你在寻找窗口名,那么请注意对于一些程序标题是有规定语言的,对于不同的语言有可能寻找不到。类总是独立于语言的。
如果知道窗口的类,那么也可以将此过程用于其它的应用程序。
以下是一些应用程序的窗口类的名称:
应用程序 |
Windows 2000/XP下的类名称 |
Windows 7下的类名称 |
---|---|---|
Access |
OMAIN |
OMAIN |
Internet Explorer |
IEFrame |
IEFrame |
Microsoft Excel |
XLMAIN |
XLMAIN |
Microsoft Word |
OpusApp |
OpusApp |
MS-DOS Input Prompt |
ConsoleWindowClass |
ConsoleWindowClass |
Notepad |
Notepad |
Notepad |
Paint |
MSPaintApp |
MSPaintApp |
Calculator |
SciCalc |
CalcFrame |
Windows Explorer |
ExploreWClass |
CabinetWClass |
SIMATIC Manager |
s7tgtopx |
s7tgtopx |
WinCC V4.x Control Center |
MCPFrameWndClass |
--- |
WinCC V5.x / V6.x / V7.x WinCC Explorer |
WinCCExplorerFrameWndClass |
WinCCExplorerFrameWndClass |
WordPad |
WordPadClass |
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);
}
关键字
编程技巧
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc325011.html