在http://topic.csdn.net/u/20101119/15/8fcae5f3-df45-4116-9f03-a543ef1ee910.html?45107
帖子中,有这样一个问题“编写了一个小应用程序,采用MFC工程,生成了exe文件。
代码中应添加什么内容,使得只允许打开一个exe例程。且在此点击该exe的图标时,已运行的该exe的实例放到桌面的顶端?
学MFC不久,请大家给些方法。方法越多越好!”
经常会有人提出上面的问题,但是很多帖子中都没有给出具体的代码,只是说说而已,纸上谈兵的功夫,总觉得这不应该是一个
程序员应该做的事情,一个搞程序开发的,最重要的就是要用代码来说话,好了,废话不多说了。
网上都说要创建一个互斥来实现,但是互斥有一个致命的缺陷,那就是,互斥只能实现窗口的单实例化运行,但是并不能把已经运行的
exe实例放到桌面的顶端。下面给出一个简单函数
//获得目标窗口句柄
HWND
GetTargetWndByTitle(
HWND hParentWnd,//待查找窗口的父窗口,可以是NULL表示父窗口是桌面
LPCTSTR lpWndName)//待查找窗口的标题<