在mfc中操作本当前进程窗体非常简单,根据当前窗体句柄,通过调取api或者mfc封装的接口即可。不过我们实际项目中可能会有操作另一个进程窗体,那么如何在不需要进程通讯情况下,操作一个其他进程的窗体呢?
核心思路是获取操作对象进程的窗体句柄,只要获取到句柄,窗体放置位置、显示、关闭、最大化等等所有操作都可以实现;具体分为以下几步:
- 根据要操作的进程名称获取进程id;
- 根据进程id获取进程的窗口句柄;
- 根据获取到的句柄调用windowsAPI操作窗体;
- 涉及到的接口函数为CreateToolhelp32Snapshot、Process32First、Process32Next、EnumWindows、操作窗体相关Windows Api;