|
楼主 |
发表于 2020-4-12 15:22:11
|
显示全部楼层
广东省清远市
已找到自行解决方式。贴上 希望对易友有帮助
启动多开 (“DingTalk.exe”)返回 (0 ) 变量名 | 类 型 | 静态 | 数组 | 备 注 | 句柄列表 | 句柄信息 | | 0 | 计次 | 整数型 | | | 进程句柄 | 整数型 | | 0 | l1 | 整数型 | | | 取进程句柄 (进程名, 进程句柄 )计次循环首 (取数组成员数 (进程句柄 ), l1 )枚举句柄 (进程句柄 [l1 ], 句柄列表 )计次循环首 (取数组成员数 (句柄列表 ), 计次 )如果真 (句柄列表 [计次 ].对象名 = “\Sessions\1\BaseNamedObjects\{{239B7D43-86D5-4E5C-ADE6-CEC42155B475}}DingTalk” 或 句柄列表 [计次 ].对象名 = “\Sessions\1\BaseNamedObjects\{{239B7D43-86D5-4E5C-ADE6-CEC42155B475}}DingTalk_loginframe” 或 句柄列表 [计次 ].对象名 = “\Sessions\1\BaseNamedObjects\SA_MUTE0” 或 句柄列表 [计次 ].对象名 = “\Sessions\1\BaseNamedObjects\SA_MUTE1”)关闭句柄 (进程句柄 [l1 ], 句柄列表 [计次 ].句柄 )计次循环尾 ()计次循环尾 ()运行 (“D:\DingDing\DingtalkLauncher.exe”, 假, )变量名 | 类 型 | 静态 | 数组 | 备 注 | 句柄信息 | 句柄信息 | | | HandleCount | 整数型 | | | sHandle | 整数型 | | | tHandle | 整数型 | | | i | 整数型 | | | Buf | 字节集 | | | len | 整数型 | | | 如果真 (GetProcessHandleCount (进程句柄, HandleCount )) 判断循环首 (HandleCount > i 且 sHandle < 65536 )sHandle = sHandle + 4 如果真 (DuplicateHandle (进程句柄, sHandle, GetCurrentProcess (), tHandle, 0, 假, 2 )) i = i + 1 句柄信息.句柄 = sHandle 句柄信息.对象名 = “”Buf = 取空白字节集 (8192 )如果真 (ZwQueryObject (tHandle, 1, Buf, 8192, 0 ) = 0 )len = 取字节集数据 (Buf, 2, )Buf = 取字节集中间 (Buf, 9, len )句柄信息.对象名 = UnicodeToAnsi (Buf )CloseHandle (tHandle)加入成员 (句柄列表, 句柄信息 )判断循环尾 ()返回 (i)|
UnicodeToAnsi | 文本型 | | |
Unicode | 字节集 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | ansi_len | 整数型 | | | unicode_len | 整数型 | | | ansi | 文本型 | | |
unicode_len = 取字节集长度 (Unicode ) ÷ 2 ansi_len = WideCharToMultiByte (936, 0, Unicode, unicode_len, ansi, 0, “”, 0 )ansi = 取空白文本 (ansi_len )WideCharToMultiByte (936, 0, Unicode, unicode_len, ansi, ansi_len, “”, 0 )返回 (ansi )如果 (DuplicateHandle (进程句柄, 对象句柄, GetCurrentProcess (), Handle, 0, 假, 1 )) CloseHandle (Handle )返回 (真)返回 (假)变量名 | 类 型 | 静态 | 数组 | 备 注 | LPPROCESSENTRY32 | LPPROCESSENTRY32 | | | hSnapshot | 整数型 | | | hProcess | 整数型 | | | j | 整数型 | | |
hSnapshot = CreateToolhelp32Snapshot (2, 0 )如果真 (hSnapshot ≠ -1 )LPPROCESSENTRY32.dwSize = 296 j = Process32First (hSnapshot, LPPROCESSENTRY32 )判断循环首 (j ≠ 0 )如果真 (到小写 (进程名 ) = 到小写 (到文本 (LPPROCESSENTRY32.szExeFile )) )hProcess = OpenProcess (2035711, 假, LPPROCESSENTRY32.th32ProcessID )加入成员 (进程句柄, hProcess )j = Process32Next (hSnapshot, LPPROCESSENTRY32)判断循环尾 ()CloseHandle (hSnapshot )返回 (hProcess )返回 (0)|
GetProcessHandleCount | 逻辑型 | | |
| |
GetProcessHandleCount | |
hProcess | 整数型 | | | pdwHandleCount | 整数型 | | |
|
DuplicateHandle | 逻辑型 | | |
| |
DuplicateHandle | |
hSourceProcessHandle | 整数型 | | | hSourceHandle | 整数型 | | | hTargetProcessHandle | 整数型 | | | lpTargetHandle | 整数型 | | | dwDesiredAccess | 整数型 | | | bInheritHandle | 逻辑型 | | | dwOptions | 整数型 | | |
|
GetCurrentProcess | 整数型 | | |
| |
GetCurrentProcess | |
|
ZwQueryObject | 整数型 | | |
ntdll.dll | |
ZwQueryObject | |
ObjectHandle | 整数型 | | | ObjectInformationClass | 整数型 | | | ObjectInformation | 字节集 | | | Length | 整数型 | | | ResultLength | 整数型 | | |
|
CloseHandle | 逻辑型 | | |
| |
CloseHandle | |
hObject | 整数型 | | |
|
WideCharToMultiByte | 整数型 | | |
| |
WideCharToMultiByte | |
CodePage | 整数型 | | | dwFlags | 整数型 | | | lpWideCharStr | 字节集 | | | cchWideChar | 整数型 | | | lpMultiByteStr | 文本型 | | | cchMultiByte | 整数型 | | | lpDefaultChar | 文本型 | | | lpUsedDefaultChar | 整数型 | | |
|
OpenProcess | 整数型 | | |
| |
OpenProcess | |
dwDesiredAccess | 整数型 | | | bInheritHandle | 逻辑型 | | | dwProcessId | 整数型 | | |
|
CreateToolhelp32Snapshot | 整数型 | | |
| |
CreateToolhelp32Snapshot | |
dwFlags | 整数型 | | | th32ProcessID | 整数型 | | |
|
Process32First | 整数型 | | |
| |
Process32First | |
hSnapshot | 整数型 | | | lppe | LPPROCESSENTRY32 | | |
|
Process32Next | 整数型 | | |
| |
Process32Next | |
hSnapshot | 整数型 | | | lppe | LPPROCESSENTRY32 | | |
|
LPPROCESSENTRY32 | | |
dwSize | 整数型 | | | cntUsage | 整数型 | | | th32ProcessID | 整数型 | | | th32DefaultHeapID | 整数型 | | | th32ModuleID | 整数型 | | | cntThreads | 整数型 | | | th32ParentProcessID | 整数型 | | | pcPriClassBase | 整数型 | | | dwFlags | 整数型 | | | szExeFile | 字节型 | | 260 |
参考文献:多开思路 多开例子
|
-
评分
-
查看全部评分
|