很多电脑软件并没有故意去杜绝用户多开,无法打开多个相同的软件只是产品逻辑上的问题。
当你运行软件后,系统将创建一个进程,并为进程分配各种资源以及运行程序指令。
软件本身是可以多开的,无法多开的原因是产品逻辑或开发者故意使用一些方法禁止多开。
今天就拿电脑版微信来说吧。
实现原理
如之前所说,软件无法多开是因为产品逻辑,大概是当系统为微信成功创建一个进程A后,企图再次开启微信时,会创建进程B,此时进程B尝试与进程A通讯,如果通讯成功,说明已存在一个微信,此时进程B将自行退出,同时进程A得知用户想要打开微信,逻辑上认为用户想要显示微信聊天框,所以处于最小化的微信将会窗口化出现。
当【进程】创建后,第一件事就是尝试去和已存在的进程进行通讯,如果通讯失败,自己将开始等待下一个进程与自己通讯。
所以,我们应该想办法让应用同时启动,这样即使N个进程都开始与已存在的进程通讯,但由于没一个进程在等待接收,所以通讯也会失败,造成没有进程的假象。
如果你尝试自己快速点击软件,来同时启动是不太可能的,因为你双击的时间足够操作系统成功创建一个进程了。
如果能让程序去连续执行启动软件的指令,速度是比手速要快的很多,想想应该是可行的。
实现思路
我们用程序的速度去启动微信,意味着我们要做个能启动多个微信的程序。
当然了,我们是不可能去开发一款程序,而是写一个脚本,让windows自己去解析脚本中的指令并执行,这也算半个程序了。
实现过程
首先看下微信程序位置在哪,才能启动。
如上图红框中所示,就是微信的主程序路径,我们把他复制一下。
创建脚本
在桌面空白位置,右键【新建】->【记事本文件】,在记事本中输入:
一行有一条指令,启动一个微信,如果多复制几下,就能启动多个微信
最后,保存退出,修改文件名【新建文本文档.txt】为【启动.bat】
主要是将后缀改为bat,如果你连txt的后缀都看不见,那就设置一下吧。
随便打开一个文件夹,点击【组织】,弹出的菜单中,选择【文件夹和搜索选项】
在弹出的窗口中,选择【查看】标签页,在下面的设置中,取消勾选【隐藏已知文件类型的扩展名】,最后点击确定即可。
现在就能双击打开【启动.bat】啦。
因为几个微信启动后都显示在屏幕正中位置,它们叠在一块了。
编者第一次没有成功启动,而是出现了如下图的问题
是因为编者的文本编辑器,将脚本内文字编码为【UTF-8】,而【命令提示符】用【ANSI】格式去解码的,造成编解码不统一,内容发生变化。
如果遇到,只需要将脚本编码改为【ANSI】即可,或者麻烦一点修改【命令提示符】的解码格式。
脚本优化
仅仅这样是不行的,想要启动3个微信,得改;想启动5个还得改,得优化一下脚本,能允许我们选择数量。
优化后的脚本
脚本运行时
文字是彩色的是因为编者用了第三方文本编辑器,能高亮显示各种编程语言的关键字或语法。
如果你懒得输入,请直接复制如下内容:
@echo off
title "我能设置窗口的标题,没啥用"
set /p count=你要启动几个微信呢(输入数字后按回车):
FOR /L %%I IN (1,1,%count%) do start E:软件WeChatWeChat.exe
echo "请享用,Bye"
注意把编者的软件路径改成你自己的。