#include <windows.h>
#include <iostream>
#include <stdlib.h>
int main()
{
HWND h = FindWindow(NULL, L"我的电脑"); //"本地磁盘 (D:)"、"我的电脑"
std::cout << h << std::endl;
if (h)
{
//最小化窗口
BOOL b = CloseWindow(h);
std::cout << "最小化窗口" << (b? "成功" : "失败") << std::endl;
最大化窗口
//ShowWindow(h, SW_SHOWMAXIMIZED);
///修改标题栏,居然可以
SetWindowText(h, L"哈哈哈~");
}
system("pause");
return 0;
}
如上代码所示通过调用windows的函数FindWindow,根据标题获取其他程序的句柄,然后做一些操作(例子中是调用CloseWindow最小化窗口)。
参考博文:http://hi.baidu.com/it_ibear/item/aa3e11f53d06760384d2785b
这篇参考文章较好,不仅讲了如何获取窗口句柄,还讲了如何获取窗口中的按钮、文本框的句柄,以及如何通过发消息修改和操作这些控件。用到的函数简单列出来:
CWnd *pwnd=pWnd->GetWindow(GW_CHILD);//枚举保存对话框的所有子控件
pwnd = pwnd->GetNextWindow(); //获取同一层的其他窗口
::GetClassName(pwnd->GetSafeHwnd(),buf,512);//得到枚举的控件是什么类型的
::SendMessage(pwnd->GetSafeHwnd(),WM_LBUTTONDOWN,0,0);
pwnd->SendMessage(WM_GETTEXT,sizeof(BUF)/sizeof(TCHAR),(LPARAM)(void*)BUF);
pedit->SendMessage(WM_SETTEXT,0,(LPARAM)filename);