python分析實現微信釘釘等軟件多開分身
目前很多軟件都限制單實例,大多數軟件都是用Mutex來實現的 而這個東西咱們可以用handle去幹掉它,並且不影響使用。 釘釘也是一樣的步驟 不過Mutex的名字不一樣 我測試的釘釘的是:
”\Sessions\1\BaseNamedObjects\{{239B7D43-86D5-4E5C-ADE6-CEC42155B475}}DingTalk“
這裡要借助微軟的兩個軟件 分別是:procexp handle
接下來開始正文:
首先咱們要手動判斷下Mutex是哪個。
這就要用到procexp.exe瞭 以管理員身份運行該程序。
選中微信進程 按Ctrl+L 就會出現圖中下半部分。
在軟件中我們可以找type 是Mutant 的 然後右鍵有個關閉 一個一個試 這裡我已經試過瞭就不演示瞭 直接給大傢
name \Sessions\1\BaseNamedObjects\WeChat_GlobalConfig_Multi_Process_Mutex
到這一步之後 這個工具的使命就完成瞭!接下來該使用handle瞭 在cmd 輸入下面的代碼
handle -a -u -p 12668 "\Sessions\1\BaseNamedObjects\WeChat_GlobalConfig_Multi_Process_Mutex"
然後我們在去關閉下這個句柄就可以瞭
handle -p 12668 -c 460 -y
註意:這句代碼需要管理員權限
然後我們再去打開微信就可以瞭。
下面我們用python去實現下
代碼可能和分析不太一樣 因為
"\Sessions\1\BaseNamedObjects\WeChat_GlobalConfig_Multi_Process_Mutex"
中的1 有時候會變成其他數字,所以我用瞭匹配規則
把代碼和handle.exe 放在一個目錄下
import os import re import psutil def get_pid(name): """ 獲取所有的微信進程 """ process_list = psutil.pids() pids = [] for pid in process_list: if psutil.Process(pid).name() == name: pids.append(pid) return pids def more_open(path): pids = get_pid("WeChat.exe") for pid in pids: #遍歷所有微信的pid 把 Mutex都幹掉 cmd = f"handle -a -u -p {pid}" with os.popen(cmd) as f: result = f.read() search_result = "" for i in result.split("\n"): if i.strip(): if i.strip().endswith("_WeChat_App_Instance_Identity_Mutex_Name"): search_result += i if not search_result: os.startfile(path) continue re_result = re.findall('(\d+): Mutant', search_result, re.S) #上面這個循環是匹配 Mutex的handle if re_result: for _id in re_result: os.system(f'handle -p {pid} -c {_id} -y') os.startfile(path) path = "D:\Program Files (x86)\Tencent\WeChat\WeChat.exe" more_open(path)
到此這篇關於python分析實現微信釘釘等軟件小號多開的文章就介紹到這瞭,更多相關python 微信多開內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python實現自動回復QQ消息功能的示例代碼
- 教你用python實現自動回復QQ消息(不到60行)
- 利用Python讀取微信朋友圈的多種方法總結
- 4個的Python自動化腳本分享
- python實現監控指定進程的cpu和內存使用率