“程序多开器”的原理

“程序多开器”的原理,第1张

防止/实现多开的原理:

程序在编程中通常使用互斥API函数如CreatMutexA防止多开。你运行程序,程序会在调用进程时检测程序是否已经运行,如果已经运行,则不再调用,返回到已经运行的程序界面,否则启动程序。

实现多开就是把其检测的返回值始终设置为程序未运行状态。

自己制作的话,需要懂得汇编和解密,非三言两语可说清楚。

你的意思是不是这样,假如A和B已经建立聊天窗口,然后不让再让A建立同样的另外一个窗口?

如果是的话,我想你可以这样,用一个List来保存已经创建的窗口,将创建人的IP放到服务器端,或者直接放到主程序中(保持存在性),每次创建新窗口的时候呢,去遍历一下,看看有没有相同的IP。当然,这种遍历效率比较低,人少的话还可以,人多了,那就惨了所以,你可以这样优化一下,按照不同的段,创建不同的索引方式,按索引查找,这样,效率会提高很多,但是系统开销就不少了,呵呵比如AList中保存0-50,BList中保存51-100

希望帮到你

百度搜索下载沙盘,并安装

在沙盘所在文件夹中运行沙盘启动文件“quicklaunchexe”启动沙盘

在右下角的沙盘图标,点击右键,在d出菜单中,选择显示窗口,则可开启沙盘主窗口,默认只有一个沙盘“DefaultBox"。每一个沙盘代表着一个隔离空间,每一个隔离空间至少可以多开一个程序。

如需创建更多的沙盘,选择上边的菜单栏的 “沙盘”,在下拉菜单中,选择创建新沙盘,输入沙盘名字,点击确定就可以,如下图,沙盘111就是新建沙盘

多开游戏或软件时,只需单击选中沙盘,右键,选择“在沙盘中运行“,d出菜单中选择”运行任意程序“

点击后,d出文件路径对话框,根据对话框提示,选择”浏览“找到要运行的程序路径,点击确定,即可运行相应程序。

每一个沙盘都可以独立启动相应的软件。假设某游戏设定电脑上只能双开该游戏客户端,则用户在使用电脑正常开启2个客户端同时,还可以启动1个沙盘再开2个客户端,如果需要继续多开,用户需要在沙盘软件中创建新的沙盘来开启更多的客户端。

---判断窗口标题

版本 2支持库 eAPI

子程序 __启动窗口_创建完毕

局部变量 i, 整数型

局部变量 wins, 文本型, , "0"

wins = 取所有窗口列表 ()

计次循环首 (取数组成员数 (wins), )

i = i + 1

如果 (取窗口标题 (到数值 (wins [i])) = 取窗口标题 (取窗口句柄 ()))

结束 ()

否则

如果结束

计次循环尾 ()

' 记住窗口一定要有标题!

---判断进程

版本 2支持库 eAPI

子程序 __启动窗口_创建完毕

局部变量 进程列表, 进程信息, , "0"

局部变量 临时名称, 文本型

局部变量 第一位置, 整数型

局部变量 第二位置, 整数型

局部变量 临时文本, 文本型

局部变量 成员, 整数型

进程列表 = 取系统进程列表 ()

临时名称 = 取执行文件名 ()

计次循环首 (取数组成员数 (进程列表), 成员)

临时文本 = 临时文本 + 进程列表 [成员]进程名称

计次循环尾 ()

第一位置 = 寻找文本 (临时文本, 临时名称, , 真)

第二位置 = 寻找文本 (临时文本, 临时名称, 第一位置 + 2, 真)

如果真 (第二位置 > 第一位置)

信息框 (“该程序正在运行中” + #换行符 + “请不要重复运行”, #警告图标, “提示信息”)

结束 ()

using SystemDiagnostics;放在load事件里foreach (Process pro in ProcessGetProcesses())

{

if (proProcessNameToUpper() == "程序EXE")//找到任务管理器里的程序名

{

MessageBoxShow("程序的实例已经在运行!","提示",MessageBoxButtonsOK,MessageBoxIconInformation);

return;

}

}

以上就是关于“程序多开器”的原理全部的内容,包括:“程序多开器”的原理、java防止窗口多开、如何解决软件多开的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9856917.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存