⑴ 易语言怎么防止多开,,当程序已经打开时再要打开一个的时候原来的程序置顶,不打开新的程序
.版本 2
.子程序 __启动窗口_创建完毕
.局部变量 局_互斥体, 文本型
局_互斥体 = “这里随便填,要复杂点的”
.如果真 (API打开事件同步对象 (2031619, 假, 局_互斥体) ≠ 0)
API控制窗口状态 (取数值注册项 (3, “wodechengxu”, ), 1)
结束 ()
.如果真结束
API创建事件同步对象 (0, 假, 假, 局_互斥体)
写注册项 (3, “wodechengxu”, _启动窗口.取窗口句柄 ())
‘以下是DLL:
.版本 2
.DLL命令 API打开事件同步对象, 整数型, , "OpenEventA", , 禁止多开DLL
.参数 填2031619, 整数型, , dwDesiredAccess
.参数 假, 逻辑型, , bINheritHandle
.参数 资源名称, 文本型, , LpName
.DLL命令 API创建事件同步对象, , , "CreateEventA", , 禁止多开DLL
.参数 事件属性0, 整数型, , LpEventAttributes
.参数 手动复位, 逻辑型, , bManualReset
.参数 初始状态, 逻辑型, , bInitialstate
.参数 资源名称, 文本型, , LpName
.DLL命令 API控制窗口状态, 整数型, , "ShowWindow", , 控制窗口的状态(在vb里使用:针对vb窗体及控件,请使用对应的vb属性) 成功:返回TRUE(非零),失败:返回FALSE(零)
.参数 hwnd, 整数型, , 窗口句柄,要向这个窗口应用由命令
.参数 nCmdShow, 整数型, , 为窗口指定的一个命令。请用下述任何一个常数:0 隐藏取消激活 1 还原激活 2 最小化激活 3 最大化激活 4 还原 6 最小化取消激活 7 最小化 9 还原激活
4楼是个脑残,题目都没看青就在那回答,自己不懂还装懂
⑵ 如何防止程序多开
就是慢慢对抗折腾常规的多开就像你说的findwindowcreatemutex等进程-这里可以共享节另外激活自己之前进程的动作最好隐藏好检测代码vm一下,最好再效验下kernerl32,防止它hook
findwindow或者createmutex等函数来绕过
⑶ 如何防止程序多开
比较简单的方法:使用使用互斥量(Mutex)。以Winform App为例,主要代码如下:
static class Program{ [STAThread] static void Main() { bool createNew; using (Mutex mutex = new Mutex(true, Application.ProctName, out createNew)) { if (createNew) { Application.EnableVisualStyles(); Application.(false); Application.Run(new Form1()); } else { // 程序已经运行,显示提示后退出 MessageBox.Show("应用程序已经运行!"); } } }}