hMutex := CreateMutex(nil, False, '');
if (GetLastError() = ERROR_ALREADY_EXISTS) then
begin
Application.MessageBox('该程序已在运行!','请注意……',
MB_OK + MB_ICONWARNING);
Exit;
end;
if (GetLastError() = ERROR_ALREADY_EXISTS) then
begin
Application.MessageBox('该程序已在运行!','请注意……',
MB_OK + MB_ICONWARNING);
Exit;
end;
解决方案 »
- SetWindowLong (GWL_WNDPROC) 为何不能截获WM_KEYDOWN的VK_NEXT?
- 送分求解答两条笔试题目
- 如何用sql语句在Access表中创建一个字段的问题?
- 如何返回按键盘时的key值
- 急!!!坐标系映射后,用CopyRect拷贝图像的问题?
- 请教一个SQL2000的超时问题
- 我用DELPHI做的ActiveX不能发布??
- 求助:哪儿有DELPHI控件dbgrideh下载,请知道的朋友告诉我,谢谢了
- bde连接SqlServer数据库(装在win2000), 为什么第一天正常, 第二天98客户机连接不上?
- 备份
- 我要投诉!!!!!!!
- 我想让form打开后自动隐藏,怎么办?
program project1;uses
Forms,
windows,
.....{$R *.RES}begin
CreateMutex(Nil,false,'project1');
if GetLastError = ERROR_ALREADY_EXISTS then
begin
if Application.MessageBox('程序project1正在运行,是否再另外打开一个?','project1',4)=IDNO then
begin
SendMessage(HWND_BROADCAST,RegisterWindowMessage('project1'),0,0);
Halt(0);
end;
end;
Application.Initialize;
Application.CreateForm(Tfrmmain, frmmain);
Application.Run;
end.这样可以让用户自己决定是否再运行一次本程序。