1、delphi要实现外部程序的关闭,主要需要用到两个api函数:分别是findwindow和postmessage(或sendmessage)。
2、第一个findwindow函数,主要用来通过窗口类或窗口标题来获得一个窗口的句柄,因窗口标题更直接,所以利用窗口标题来获得窗口句柄更常用。如下图语句,就可以用来获得标题为“无标题 - 记事本”的句柄。
3、第二个postmessage函数,可以向指定句柄的窗口发送消息。大家都知道,windows卺肿蓦艚系统是一个通过消息机制来执行操作的系统,如:你要最小化一个窗口,你需要先向这个窗口发送一个最小化的消息,窗口才会根据消息执行操作。而postmessage就可以帮助我们来手动向窗口发送消息。
4、所以我们可以通过postmessage函数,向前面获取到的窗口句柄发送一个关闭消息(wm_close),就可以将程序关闭,如下图所示代码。sendmessage函数也可以实禊耗髻编现相同的效果,但不同于postmessage,sendmessage发送消息后会等待消息执行的结果,如果没有成功执行,就会让程序挂起,所以这里推荐使用postmessage。
5、下面,我们再对代码进行适当的优化,如下图所示。
6、运行后,找到指定标题窗口和未找到指定标题窗口的效果如下。