爱克软件园:安全、高速、放心的专业下载站!

已收录|爱克资讯|软件分类|下载排行|最近更新

当前位置:首页游戏攻略攻略秘籍 → 程序多开器怎么用?多开器怎么使用

程序多开器怎么用?多开器怎么使用

时间:2023/07/02 04:39:00人气:作者:本站作者我要评论

大家好,感谢邀请,今天来为大家分享一下程序多开器怎么用的问题,以及和多开器怎么使用的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

多开器怎么使用

多开器使用方法是把软知拆件下载到桌面,接着右键这个压缩是文件选择解压到当前文件夹。拿带点击解压后的软件,然后在用户控制这里选是。把需要进行隔离打开的软件快捷方式拖入到软件地址栏,然后点击隔离打开。每点击一次隔离打开可以打开个软件,要打开多个则点击多次,以此类推。除了这个方法还可以点击软件右侧三个小点,点击计算机图标。选择C盘找到里面对应的EXE软件打开。再次点击隔离打搭敏枣开即可,点击一次打开一个程序,点击两次打开两个程序。

什么是程序多开器

有些程序只允许运行一个,打开第二个的时候仅激活前一个打开的程序。

多开器就是让只能打开冲租一铅判薯个的程序,能打槐者开多个。

qq堂程序多开器怎么用

可能你点开后没设置快捷把,你可以重新下缺配一个的,或者把这胡困个挂点开后浏览你的Q堂文件,裤扮念将打开方式更改为桌面上的那个QT快捷试试。还是不行你就只有换挂了

C#程序多开器

只让同时开一个?比如飞信是吗?

那种的不行,就可以一个,我也不知道C#如何实现

QQ那类就可以多开

如果你说的是你自己的程序应该就可以多开

windows系统下,程序空州防止多开的几种常见方法:

1)使用FindWindowAPI函数。

通过查找窗口标题(或/和类名)来判断程序是否正在运行。如果找到了,表明程序正在运行,这时可退出程序,达到不重复运行的效果;反之表明程序是第一次运行。

这种方法不适用于以下情况,程序的标题是动态变化的、系统中运行了相同标题(或/和类名)的程序

2)Mutex/Event/Semaphore

通过互斥对象/信号量/事件等线程同步对象来确定程序是否已经运行。最常用的函数如:CreateMutexA(注意:QQ堂、QQ游戏大厅就是采用这样方法来纯亏穗限制程序多开的)

3)内存映射文件(FileMapping)

通过把程序实例信息放到跨进程的内存映射文件中,也可以控制程序多开。

4)DLL全局共享区

DLL全局共享区在映射到各个进程的地址空间时仅被初始化一次,且是在第一次被windows加载时,所以利用该区数据就能对程序进行多开限制。

5)全局Atom

将某个特定字符串通过GlobalAddAtom加入全局原子表(GlobalAtomTable),程序运行时检查该串是否存在来限制程序多开。(该Atom不会自动释放,程序退出前必须调用GlobalDeleteAtom来释放Atom)

6)检查窗口属性

将某些数据通过SetProp加入到指定窗口的propertylist,程序运行时枚举窗口并检查这些数据是否存在来限制多开。

以上只列举了最常见的几种方法,具体应用中可以有n种选择,或综合运用多种方法来限制。

上面说过,QQT采用CreateMutex函数来限制多开,那么我怎么知道是使用这个函数来限制的呢?

答案就是跟踪程序,查找程序是使用哪种方法来限制的。比如先看看做卜是否使用CreateMutex来限制,如果不是,再看看是不是使用FindWindow,以此类推,直到找到方法为止。当然,有些程序也会综合使用多种方法来限制多开,方法也是一样的,只是麻烦点而已。

下面讲一讲使用CreateMutex函数来限制多开的方法:

CreateMutex函数声明如下(具体请查阅相关资料,如MSDN)

HANDLECreateMutex(

LPSECURITY_AttRIBUTESlpMutexAttributes,//pointertosecurityattributes

BOOLbInitialOwner,//flagforinitialownership

LPCtsTRlpName//pointertomutex-objectname

);

以下是使用CreateMutex函数来限制多开的典型delphi代码

hMutex:=CreateMutex(nil,TRUE,'qqtang');//建立互斥量

//调用失败?已经存在?

if(hMutex=0)or(GetLastError=ERROR_ALREADY_EXISTS)then

begin

//程序第二(或以上)次运行时,GetLastError会返回ERROR_ALREADY_EXISTS,表明互斥量已存在

//可以在这里编写退出代码

end;

该段代码首先调用CreateMutex函数创建一名为qqtang的互斥对象,如果调用CreateMutex函数失败(hMutex=nil)或互斥对象早已存在(GetLastError=ERROR_ALREADY_EXISTS),则退出程序。

好了,明白上面的内容后,我们进入修改实战:

下载OllyDbgV1.1,解压到任何目录即可使用。

启动OllyDbg,打开QQT目录下的Core.dll文件,按[是]载入DLL文件。

按Ctrl+N打开API调用列表,找到CreateMutexA后按回车,在弹出的窗口里双击第一行来到CPU窗口,反汇编代码如下:

10002FB9.51pushecx;/MutexName="qqtang"

10002FBA.6A01push1;|InitialOwner=TRUE

10002FBC.6A00push0;|pSecurity=NULL

10002FBE.FF1560E40010calldwordptr[<&KERNEL32.CreateMutexA>];\CreateMutexA建立互斥量

10002FC4.8B95D4FEFFFFmovedx,dwordptr[ebp-12C]

10002FCA.8902movdwordptr[edx],eax

10002Fcc.8B85D4FEFFFFmoveax,dwordptr[ebp-12C]

10002FD2.833800cmpdwordptr[eax],0;检查CreateMutexA函数是否调用失败

10002FD5.0F84CD000000jeCore.100030A8;把je改为jmp即可

10002FDB.FF155CE40010calldwordptr[<&KERNEL32.GetLastError>];[GetLastError

10002FE1.3DB7000000cmpeax,0B7;检查对象是否已存在

10002FE6.0F85BC000000jnzCore.100030A8;(也可以在这里把jnz改为jmp)

10002FEC.8B8DD4FEFFFFmovecx,dwordptr[ebp-12C]

10002FF2.C70100000000movdwordptr[ecx],0

10002FF8.6A00push0;/Title=NULL

10002FFA.685CC60010pushCore.1000C65C;|Class="QQTangWinClass"

10002FFF.6A00push0;|hAfterWnd=NULL

10003001.6A00push0;|hParent=NULL

10003003.FF1540E70010calldwordptr[<&USER32.FindWindowExA>];\FindWindowExA查找QQT窗口

选中这行:

10002FD5.0F84CD000000jeCore.100030A8

然后按空格,在弹出的窗口中把“je100030A8”修改为“jmp100030A8”,按[汇编]。

右键单击CPU窗口,在弹出菜单中选“复制到可执行文件”-》“所有改动”,选[全部复制]。右键单击弹出的窗口,选“保存文件”保存即可。

是否觉得上面的修改比较麻烦呢?呵呵,授人于鱼不如授人于渔,上面是告诉你为什么要这样修改,修改的原理是什么,你明白修改原理后,有新版本时你就可以自己修改了。

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

相关文章

  • 曙光英雄段位等级划分介绍 最高段位是多少

    在曙光英雄这款游戏中呢,通过匹配获胜我们可以获得积分,积分达到一定程度时即可升段,那么目前中的段位等级有哪些呢?分别叫什么名称呢?本次我就来给大家带来段位等级表,一起来看看吧。..
  • 原神大剑哪把好 值得练的双手剑推荐

    原神大剑其实就是双手剑,大剑在游戏中其实很多都不太实用,所以很多玩家都在纠结练哪些大剑,今天小编就来给大家分享一下,还不知道练那把武器的玩家赶紧来看看吧。..

关于爱克软件园 | 联系方式 | 发展历程 | 版权声明 | 下载帮助(?) | 广告联系 | 网站地图 | 友情链接

Copyright 2019-2022 IKDOWN.COM 【爱克软件园】 版权所有