只运行一个实例的代码我有了,begin
Application.Initialize;
//只运行一个程序
hAppMutex := CreateMutex(nil, false, PChar('MantPlan')); //创建互斥对象
if hAppMutex = 0 then
begin
//showmessage('dfdfd');
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);
//关闭互斥对象,退出程序
//form2.Show;
closeHandle(hAppMutex); exit;
end; Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.Run; CloseHandle(hAppMutex); //关闭互斥对象end.如何在二次执行这个程序时,激活这个程序已运行的那个实例的某个窗口(如form2)呢?
Application.Initialize;
//只运行一个程序
hAppMutex := CreateMutex(nil, false, PChar('MantPlan')); //创建互斥对象
if hAppMutex = 0 then
begin
//showmessage('dfdfd');
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);
//关闭互斥对象,退出程序
//form2.Show;
closeHandle(hAppMutex); exit;
end; Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.Run; CloseHandle(hAppMutex); //关闭互斥对象end.如何在二次执行这个程序时,激活这个程序已运行的那个实例的某个窗口(如form2)呢?
解决方案 »
- Delphi7 LoadPackage 报错 'Application is not licensed to use this feature'
- 请教大家几个关于webbrowser事件的问题。谢谢!!
- 保存Jpg图片到Blob字段,内存不足的问题
- 回忆的心情
- 已经试过无数次,但是都没有办法解决的问题,请教各位!
- 如何做一个全功能的代理服务器软件?我作过一个Http代理服务器,但我想做成一个能代理http.,ftp,QQ的全功能代理软件[:)]
- 这是delphi5.0中query的一个bug吗?
- 我是初学者,请教各位大侠Ehlib2.5控件要如何安装。谢谢了、
- 一个关于动态控件事件的问题
- 简单的送分问题
- 类的成员会自动创建吗?
- 大家有没有碰到过,dxdbtreeview为什么窗体退出的时候,会自动删除数据!
A: Hwnd;A := FindWidows(nil,'窗口名');
if A <> 0 then ShowWindow(A,SW_SHowNormal); 意思是這樣的,沒有開發環境,可能有筆誤,見諒
1. hAppMutex := CreateMutex(nil, false, '');//最好用GUID ,因为Mutex为跨进程的,万一在同一服务器上运行另一个程序,是用Mutex来实现多线程互斥的,你的程序就运行不了了!
2. 激活某窗体参见F1