//没登陆

欢迎您来到凯恩之角,奈非天!

帖子:815

符文:25

跳转到指定楼层
1#
发表于 2023-2-13 14:44:51 |只看该作者 |倒序浏览 来自:美国
本帖最后由 Trialman 于 2023-2-15 00:20 编辑

首先声明,多开是个可能会比较敏感的事情。
如果有疑虑,还是建议用vm或者多台机器来多开。
个人意见是,一台机器用这种方法开2-3个instance问题不大。

首先需要从ms官网下载 handle 的命令行工具:https://learn.microsoft.com/en-us/sysinternals/downloads/handle

然后需要把handle64.exe加入PATH。
首先以administrator权限打开terminal, 执行:(把\path\to\handle64.exe替换成具体下载路径)
  1. setx PATH "%PATH%;C:\path\to\handle64.exe"
复制代码

重新以administrator权限开一个新的terminal。验证handle64.exe成功被加入PATH:
  1. E:\>where handle64.exe
  2. C:\Program Files\Handle\handle64.exe
复制代码


以上是工具的准备。之后需要设置battlenet app如图:
忘了说,自动登录要关掉,因为第二个d2r的battlenet打开的时候,需要输入对应的用户名/密码。
如果不关,就自动登录上一个d2r账户了。




接下来是需要把游戏安装文件夹复制一份或者多份:假设 D2R\, D2R_1\。在桌面创建快捷方式。
把下面的程序保存成 .cmd 文件,比如我放在了 e 盘下:E:\multiple_d2r.cmd

每次想要多开的时候,先开D2R\的快捷方式,创建游戏,然后以administrator权限打开terminal,执行如下命令:

  1. E:\>multiple_d2r.cmd
复制代码


这个程序的目的是把检查多开的功能关掉。之后就可以双开D2R_1了。当然如果你需要3开,每开一个副本,就需要执行一次这个程序。

程序如下:https://gitee.com/offerduo/multi ... er/multiple_d2r.cmd

  1. @echo off

  2. start /b /wait handle64.exe -p d2r -nobanner >nul
  3. if %ERRORLEVEL% == 1 (
  4.     echo D2R program is not running.
  5.     exit /b 1
  6. )

  7. for /f "tokens=3" %%a in ('handle64.exe -p d2r ^| findstr /c:"D2R.exe pid:"') do (
  8.     for /f "tokens=1 delims=:" %%b in ('handle64.exe -a -p %%a ^| findstr /c:"Check For Other Instances"') do (
  9.         handle64.exe -p %%a -c %%b -y -nobanner
  10.     )
  11. )
复制代码

免责声明:
我不支持也不反对多开。
我不是高手,这个是我参考了这个帖子之后,懒得手动,就写了个脚本偷懒的产物。
程序里面用到的handle也是别人无私放在微软社区的。
感谢在网上无私分享idea的网友们。毕竟没有这些人,互联网只是一堆网线连起来的电脑,啥都不是。
我自己是在wsl的ubuntu下的shell脚本,用chatgpt翻译成了Windows的脚本。跑了一下没啥问题。
欢迎大家下载、修改。


References:

[1] https://learn.microsoft.com/en-us/sysinternals/downloads/handle

[2] https://diablodex.com/Article/Us ... t-third-party-tools

[update1]: 果然代码自己是测不出bug的。。。根据评论各位火眼金睛,发现了ChatGPT翻译的脚本居然忽略了存在多个D2R.exe进程的逻辑。更新了一下,应该可以跑了。

[update2]: Fix incorrect `findstr` usage.


更多图片 小图 大图
组图打开中,请稍候......

帖子:1980

符文:50

2#
本帖最后由 盛意拳拳 于 2023-2-13 14:52 编辑

火钳刘明~~~这么多看的脑瓜子疼 楼主没有啥傻瓜式的成品上传我们点了就能用的么
发表于 2023-2-13 14:46:37 |只看该作者 来自:浙江

帖子:642

符文:33

3#
chatgpt还能翻译脚本啊
发表于 2023-2-13 14:49:40 |只看该作者 来自:北京

帖子:389

符文:12

4#
好帖子 邦定
发表于 2023-2-13 14:50:11 |只看该作者 来自:江苏

帖子:815

符文:25

5#
盛意拳拳 发表于 2023-2-12 22:46
火钳刘明~~~这么多看的脑瓜子疼 楼主没有啥傻瓜式的成品上传我们点了就能用的么

理论上可以呀,可是我比较懒。。。
发表于 2023-2-13 14:57:55 |只看该作者 来自:美国

帖子:389

符文:12

6#
第一步简单点 把handle64.exe放到windows系统目录下就行
发表于 2023-2-13 15:04:25 |只看该作者 来自:江苏

帖子:815

符文:25

7#
Vic2022 发表于 2023-2-12 23:04
第一步简单点 把handle64.exe放到windows系统目录下就行

没错,这个办法好。
不过我怕大家对这样做有疑虑。。。
其实把这个handle64.exe和脚本放一起应该就行,这样就不用考虑PATH了。


发表于 2023-2-13 15:08:14 |只看该作者 来自:美国

帖子:1027

符文:30

8#
好东西,不错,谢谢。
发表于 2023-2-13 15:14:46 |只看该作者 来自:上海
夏夜星空#31528
或者加我疼 训 No:15042300
https://locimg.com/

帖子:389

符文:12

9#
多开的时候,把楼主提供的最后那段代码,保存到一个BAT文件里,比如叫"D2R多开.BAT" 放到桌面上。需要执行的时候,右键点击这个BAT文件,选“以管理员身份运行”,  就可以了
发表于 2023-2-13 15:16:51 |只看该作者 来自:江苏

帖子:815

符文:25

10#
Vic2022 发表于 2023-2-12 23:16
多开的时候,把楼主提供的最后那段代码,保存到一个BAT文件里,比如叫"D2R多开.BAT" 放到桌面上。需要执行 ...

多谢。我写着写着关键这一步给忘了。。。

发表于 2023-2-13 15:20:15 |只看该作者 来自:美国

帖子:227

符文:10

11#
这个跟杀进程是一样的,只是说不用自己再去找进程来杀,更方便快捷
发表于 2023-2-13 15:22:48 |只看该作者 来自:江西

帖子:347

符文:23

12#
杀进程用的蛮舒服,不过顶一下大神。
发表于 2023-2-13 15:24:57 来自凯恩之角App |只看该作者 来自:云南

帖子:227

符文:10

13#
楼主你就不能直接通过调用procexp 来杀吗?还不用下载这个那个的
发表于 2023-2-13 15:25:28 |只看该作者 来自:江西

帖子:907

符文:50

14#
好东西,先抓紧留名,首页估计还爬的上来
发表于 2023-2-13 15:27:53 |只看该作者 来自:江苏

帖子:815

符文:25

15#
D2-冷血 发表于 2023-2-12 23:25
楼主你就不能直接通过调用procexp 来杀吗?还不用下载这个那个的

procexp和handle的作者都是一个人:Mark Russinovich
procexp和handle其实是一回事。


只不过我觉得procexp的图形界面用起来不如cli方便。
比如我假设你的使用场景是开了procexp之后还得找到那个handle,然后再杀,对吧?
还是说兄弟你有更便捷的方法?
用cli的话直接双击执行bat或者一条cli命令就把handle给杀掉了。


发表于 2023-2-13 15:31:18 |只看该作者 来自:美国
您需要登录后才可以回帖 登录 | 注册网易通行证