求程序只能打开一个实例得代码,谢谢
就是同个程序只能打开一次,不能连续打开多个实例,请问有没有示例代码,谢谢 问题点数:20、回复次数:3Top
1 楼do2008(aiGooo·闲来吹吹牛,不亦乐乎)回复于 2006-11-03 20:30:00 得分 8
JF~~~
单击菜单“Project”,单击“View Source”,这在代码编辑器中打开了工程文件
修改如下
var
hAppMutex: THandle;
begin
Application.Initialize;
//创建互斥对象
hAppMutex := CreateMutex(nil, false, PChar('OnlyOne'));
if (hAppMutex = 0) then
begin
MessageBox(0,PChar('创建互斥对象失败!'),PChar('Error'),MB_OK + MB_ICONINFORMATION);
exit;
end;
//查看是否是第一次运行程序
if ((hAppMutex <> 0) and (GetLastError() = ERROR_ALREADY_EXISTS)) then
begin
MessageBox(0,PChar('不是第一次运行这个程序!'),PChar('OK'),MB_OK + MB_ICONINFORMATION);
//关闭互斥对象,退出程序
CloseHandle(hAppMutex);
exit;
end;
Application.CreateForm(TOnlyOneWindow, OnlyOneWindow);
Application.Run;
//关闭互斥对象
CloseHandle(hAppMutex);
end.
注意:
1.在User中,要把Windows放在Form前头;
2.开始创建互斥对象的代码要在Application.Initialize之后;
3.关闭互斥对象操作要放在Application.Run之后;
参考:
http://news.newhua.com/html/VC/2006-3/6/063611375235000_27_2.shtml
http://www.stefli.com/blog/blogview.asp?logID=315
http://www.369xz.com/paper/24/7842.asp
Top
2 楼zhxfzhxf1(zhxfzhxf1)回复于 2006-11-03 21:14:32 得分 6
除了上面的方法外,还有 控件
可以在网上搜索Top
3 楼linzhengqun(风。我回来了)回复于 2006-11-03 22:48:39 得分 6
http://blog.csdn.net/linzhengqun/archive/2005/12/29/564646.aspx
看看这个。Top




