社区
C++ Builder
帖子详情
如何避免程序重复启动?
jukyy
2005-10-13 04:30:49
小问题,如题。
希望是一旦双击了程序图标,再双击图标的时候就不要启动了(双击的时间间隔可能只有几秒钟甚至一秒钟)。谢谢!
...全文
171
9
打赏
收藏
如何避免程序重复启动?
小问题,如题。 希望是一旦双击了程序图标,再双击图标的时候就不要启动了(双击的时间间隔可能只有几秒钟甚至一秒钟)。谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
网事随逢
2006-04-11
打赏
举报
回复
mark...
cczlp
2005-10-14
打赏
举报
回复
用文件映射最好
flowercity
2005-10-13
打赏
举报
回复
CreateMutex(0,1,"MyMainprj");
if(GetLastError() == 183)
{
MessageBox(0,"您的电脑上已经起动了本程序!","提醒:禁止多次运行。",MB_OK);
exit(-1);
};
jukyy
2005-10-13
打赏
举报
回复
程序是有多个窗口的,那就要考虑所有的窗口标题吧?能不能找一个统一的标识呢?
xibingwuqing
2005-10-13
打赏
举报
回复
学习
ccrun.com
2005-10-13
打赏
举报
回复
FAQ中说的很清楚了。三种以上的方法可以实现。
jone7319
2005-10-13
打赏
举报
回复
在WINmain函数最前部加入如下代码:
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
const char *strMutexName = "地市级业务监控系统V1.0";//主窗口标题
HANDLE hMutex = CreateMutex(NULL, true, strMutexName);
if (ERROR_ALREADY_EXISTS == GetLastError() || NULL == hMutex)
{
HWND hWnd = FindWindow(NULL, strMutexName);
if (NULL != hWnd)
{
PostMessage(hWnd, WM_SYSCOMMAND, SC_RESTORE, 0);
SetForegroundWindow(hWnd);
}
//退出
return -1;
}
...............
}
XBox360
2005-10-13
打赏
举报
回复
//-------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Application->Title=Form1->Caption;
//TrayIcon1->Hint=Form1->Caption;
HANDLE PrevInstHandle;
HANDLE Mutex = OpenMutex(SYNCHRONIZE,false,Application->Title.c_str());
if (Mutex != NULL)
{
String AppTitle=Application->Title;
SetWindowText(Application->Handle,NULL);
PrevInstHandle = FindWindow("TApplication", AppTitle.c_str());
if (PrevInstHandle != 0)
{
if (IsIconic(PrevInstHandle))
ShowWindow(PrevInstHandle, SW_RESTORE);
else
BringWindowToTop(PrevInstHandle);
SetForegroundWindow(PrevInstHandle);
}
Application->ShowMainForm = false;
Application->Terminate();
}
else CreateMutex(null, false, Application->Title.c_str());
}
ccrun.com
2005-10-13
打赏
举报
回复
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=191924
C# 禁止
程序
重复
启动
C# 禁止
程序
重复
启动
C++ QT PC端 防止
程序
重复
启动
的几种方式
在做客户端的过程中,我们通常会希望
程序
实例只运行一次,也就是只希望同时
启动
一个
程序
。所以今天就总结一下几种防止
程序
重复
启动
的方式: 1.使用QT中的QLockFile: QLockFile 使用文件提供在不同的进程间的锁。锁文件可以放置多个进程同时访问同一资源。例如磁盘上的配置文件、套接字、端口、共享内存区域等。使用的时候trylock()对资源进行上锁。当
程序
运行的时候,上锁成功后,会自动...
Linux下
避免
程序
被
重复
运行
Linux下
避免
程序
被
重复
运行 目标 在Linux下,有些
程序
同时运行多个实例时会出错。因此,需要使用一些方法
避免
程序
被
重复
运行,即同一时间段内只能有一个
程序
实例运行。 思路
程序
启动
的时候打开某个锁文件并对该文件加锁,退出
程序
时解锁。 如果无法正常加锁,则说明
程序
已经在内存中运行了,当前线程return即可。 代码实现 首先,先以创建+可读写模式打开锁文件temp.lock(可自行定义文件名) 之后使用flock文件对文件加锁,如果加锁失败,检查errno是否为EWOULDBLOCK。如果是则说明已经有进
C# WinForm
避免
程序
重复
启动
,限制
程序
只能运行一个实例
禁止多个进程运行,当
重复
运行时激活以前的进程 Program.cs: using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; using System.Runtime.InteropServices; us...
C# WinForm
程序
只
启动
一次,
避免
重复
启动
形成多个窗口
程序
C# WinForm
程序
只运行一次,限制多次
启动
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章