展开全部
HWND wnd;
wnd=::FindWindow(NULL,_T("xx"));
if(wnd)
{
// AfxMessageBox(_T("已经在运行"));
SendMessage(wnd,WM_CLOSE,0,0);
}
其中xx为主程序左上角的标题,除非你做了修改,否则就跟项目名称是一样的
这些语句要放在App类的InitInstance()任意位置,但一定要放在CxxDlg dlg;的前面,xx是项目名,不确定的话直接放最上面
wnd=::FindWindow(NULL,_T("xx"));
if(wnd)
{
// AfxMessageBox(_T("已经在运行"));
SendMessage(wnd,WM_CLOSE,0,0);
}
其中xx为主程序左上角的标题,除非你做了修改,否则就跟项目名称是一样的
这些语句要放在App类的InitInstance()任意位置,但一定要放在CxxDlg dlg;的前面,xx是项目名,不确定的话直接放最上面
更多追问追答
追问
SendMessage(wnd,WM_CLOSE,0,0);
这句话怎么会出现这种问题,我也多打个A呀
error C2660: 'SendMessageA' : function does not take 4 parameters
还有一个疑问,这个sendmessage能发送到前面的那个exe程序使其关闭吗?
追答
你确定放在app类的InitInstance()里面了吗?还有你是用vc6还是vs?
你可以这样,打出SendMessage以后 打一个左括号,这时不管什么软件的开发都会会出来函数的参数,你看需要的参数是什么,至少有一个HWND hWnd和一个UINT Msg,如果只有这两个的话,去掉后面的两个0就可以了
是的,sendmessage可以给某个特定的窗口发送消息 关闭只是其中一个消息
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询