防止程序重复运行
来源:互联网 发布:数据库读写分离的原理 编辑:程序博客网 时间:2024/04/30 01:19
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
//*******改动******
HWND hMutex;
try{
//尝试打开此程序特有的Mutex识别对象
hMutex = OpenMutex(MUTEX_ALL_ACCESS,0,"防止程序重复运行");
//若成功,则表示已有此程序正在执行中
//将此程序获得焦点或提到最前面即可
if (hMutex)
{ //寻找程序名称,返回handle
HWND han = FindWindow(NULL,"Form1");
if (han)
{ //提示已经重复打开此程序
ShowMessage("此程序重复打开!");
//取得显示在桌面的Form1窗口的handle,并提到最前面
HWND TophWnd = GetTopWindow(han);
if (TophWnd)
::SetForegroundWindow(TophWnd);
else
::SetForegroundWindow(han);
}
return 1;
}
//若此程序无特有的Mutex识别对象,则建立一新识别对象
else
CreateMutex(0,0,"防止程序重复运行");
//*****************
try
{
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
//******改动******
}
//程序结束时,释放Mutex识别对象
__finally
{
::ReleaseMutex(hMutex);
}
//****************
return 0;
}
//---------------------------------------------------------------------------
//*************附加:FindWindowEx函数******************
// HWND FindWindowEx( HWND hwndParent, //父窗体句柄
// HWND hwndChildAfter, //子窗体或控件句柄
// LPCTSTR lpszClass, //查找窗体的类名
// LPCTSTR lpszWindow //查找窗体的标题
// );
//*****************************************************
- 防止程序重复运行
- C#防止程序重复运行
- winform程序防止重复运行
- vc++ 防止程序重复运行
- 学习笔记之防止重复运行程序
- 防止程序重复运行的一种写法
- VC++防止重复运行同一个程序
- QT之防止程序重复运行方法
- #pragma data_seg 实现防止程序重复运行
- vc防止运行多个程序,重复运行,同一个程序
- 如何防止窗体重复打开(程序或表单重复运行)?
- 防止进程重复运行
- 防止shell重复运行
- 防止进程重复运行
- Vb.Net防止同一程序重复运行的方法
- 防止一个没有窗体的WINDOWS程序的重复运行
- 防止C++程序重复运行的几种方法
- 忆龙2009:windows mobile防止程序重复运行
- 刚才折腾了半天,想把自己的blog变得漂亮一些,但是。。。
- 我放弃了你,我真的不知是对是错。
- BitComet_1201_unstable 最新测试版
- Windows脚本编码器算法分析与破译
- 互联网历史上最经典的马屁回帖
- 防止程序重复运行
- asp.net 中一次性更新DATAGRID中所有记录
- 《分析模式:可重用对象模型》-- 责任模式
- Jboss jBPM中swimlane、actor和role概念的理解
- asp.net 中对datagrid中的BUTTON应用CSS样式
- 参加 BEA eWorld China2004 一天之流水帐
- [观点]要对大学生进行通才教育
- c#中重写属性
- 随机显示数据库中的记录