先看FindWindow函数具体使用,可以查找现在电脑上软件是否打开
HWND pWnd = NULL;
pWnd = ::FindWindow(NULL, "CutterComServer");
if (pWnd == NULL)
{
pWnd = ::FindWindow(NULL, "CutterServer");
if (pWnd == NULL)
{
pWnd = ::FindWindow(NULL, "切割控制中心");
if(pWnd==NULL)
pWnd = ::FindWindow(NULL, "EchoStudio");
}
}
FindWindow
函数是Windows API提供的一个函数,用于在当前活动的桌面窗口中查找具有指定类名和窗口名的*窗口。
函数原型如下:
HWND FindWindow(
LPCTSTR lpClassName,
LPCTSTR lpWindowName
);
参数说明:
-
lpClassName
:指定要查找的窗口类名,可以是窗口类名字符串或者是一个原子型的类名原子。如果为NULL
,则表示匹配所有的窗口类名。 -
lpWindowName
:指定要查找的窗口名,可以是窗口名字符串或者是一个原子型的窗口名原子。如果为NULL
,则表示匹配所有的窗口名。
返回值:
- 如果函数成功,返回找到的窗口的句柄(
HWND
)。 - 如果函数失败,返回
NULL
。
FindWindow
函数的作用是根据指定的类名和窗口名,在当前活动的桌面窗口中查找匹配的*窗口,并返回该窗口的句柄。通过窗口句柄,可以进行其他操作,如发送消息、获取窗口信息等。
以下是一个示例代码,演示如何使用FindWindow
函数查找记事本窗口并发送消息:
#include <>
int main()
{
// 查找记事本窗口
HWND hWnd = FindWindow(NULL, TEXT("记事本"));
if (hWnd != NULL)
{
// 向记事本窗口发送消息
SendMessage(hWnd, WM_CLOSE, 0, 0);
}
else
{
// 找不到记事本窗口
MessageBox(NULL, TEXT("找不到记事本窗口"), TEXT("错误"), MB_OK | MB_ICONERROR);
}
return 0;
}
在上述示例中,我们使用FindWindow
函数查找窗口类名为NULL
(匹配所有窗口类名)且窗口名为"记事本"的*窗口。如果找到了记事本窗口,则使用SendMessage
函数向该窗口发送WM_CLOSE
消息,以关闭记事本窗口。如果找不到记事本窗口,则弹出一个错误提示框。