delphi 微信(WeChat)多开源代码
生活随笔
收集整理的這篇文章主要介紹了
delphi 微信(WeChat)多开源代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在網上看到一個C++代碼示例:
原文地址:http://bbs.pediy.com/thread-217610.htm
覺得這是一個很好的調用 windows api 的示例,故將其轉換成了 delphi xe8?
源碼下載:OpenNewWechat
下面給出所用到的windows api 定義
unit uWinApi;// http://bbs.pediy.com/thread-217610.htm // 微信(WeChat)電腦端多開分析+源碼{ 感謝原文提供的代碼和 exe曉不得2013 qq 265627292017-07-04// 本代碼是學習 win api 的一個經典示例// 希望您會有所收獲 } interfaceuseswindows, TLHelp32, Generics.collections;typePSystemHandle = ^TSystemHandle; // 此結構體未公開,找了很久才弄正確。 TSystemHandle = packed record // 共16字節. 長度一定要準確。否則,后面沒法玩。 dwProcessID: THandle;bObjectType: Byte;bflags: Byte;wValue: Word;GrantedAcess: Int64;end;PSystemHandleList = ^TSystemHandleList;TSystemHandleList = recorddwHandleCount: Cardinal; // 獲取到的結果前4個字節,表示數量// 后面的就每 16 個字節一組,表示一個 TSystemHandleHandles: array of TSystemHandle; // 定義成下面這樣,亦可行。// Handles:TSystemHandle; 只是不便于理解end;PProcessRec = ^TProcessRec;TProcessRec = recordProcessName: string;ProcessID: THandle;end;TProcessRecList = class(TList<PProcessRec>)publicprocedure FreeAllItem;end;// win 規則下,都是讓調用者傳入 buff 長度,然后檢查這個長度是否合適// 如果不夠,就返回一個錯誤,并且在 ASize 中指明需要的長度// 以便調用者重新分配 buff 再次調用// ASysInfoCls 是查詢什么類別。 MS 沒有全部公開. $10 為 SystemHanle.// ASysInfo 理解為 Buff 就行了。 function ZwQuerySystemInformation(ASysInfoCls: Integer; ASysInfo: Pointer; ABufLen: Cardinal;var ASize: Cardinal): Cardinal; stdcall; external 'ntdll.dll';function NtQueryObject(Ahandle: THandle; AQuertyIndex: Integer; ABuff: Pointer; ABuffSize: Cardinal;var ASize: Cardinal): Cardinal; stdcall; external 'ntdll.dll';// 獲取當前的進程 function GetAllProcess: TProcessRecList;implementation{ TProcessRecList }procedure TProcessRecList.FreeAllItem; varp: PProcessRec; beginfor p in self doDispose(p); end;function GetAllProcess: TProcessRecList; varEntry32: TProcessEntry32W;SnapshotHandle: THandle;Found: boolean;sExeFileName: string;p: PProcessRec; beginResult := TProcessRecList.Create;SnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);Entry32.dwSize := sizeof(Entry32);Found := Process32First(SnapshotHandle, Entry32);while Found dobeginnew(p);Result.Add(p);sExeFileName := Entry32.szExeFile;p.ProcessName := sExeFileName;p.ProcessID := Entry32.th32ProcessID;Found := Process32Next(SnapshotHandle, Entry32);end;CloseHandle(SnapshotHandle); end;end.?
轉載于:https://www.cnblogs.com/lackey/p/7144778.html
總結
以上是生活随笔為你收集整理的delphi 微信(WeChat)多开源代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 饿了么确认外卖骑手盟主被抓,称已被平台拉
- 下一篇: SpringBoot整合nacos实现参