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 26562729
   2017-07-04
   // 本代码是学习 win api 的一个经典示例
   // 希望您会有所收获
}
interface

uses
  windows, TLHelp32, Generics.collections;

type

  PSystemHandle = ^TSystemHandle; // 此结构体未公开,找了很久才弄正确。

  TSystemHandle = packed record // 共16字节. 长度一定要准确。否则,后面没法玩。
    dwProcessID: THandle;
    bObjectType: Byte;
    bflags: Byte;
    wValue: Word;
    GrantedAcess: Int64;
  end;

  PSystemHandleList = ^TSystemHandleList;

  TSystemHandleList = record
    dwHandleCount: Cardinal; // 获取到的结果前4个字节,表示数量
    // 后面的就每 16 个字节一组,表示一个 TSystemHandle
    Handles: array of TSystemHandle; // 定义成下面这样,亦可行。
    // Handles:TSystemHandle; 只是不便于理解
  end;

  PProcessRec = ^TProcessRec;

  TProcessRec = record
    ProcessName: string;
    ProcessID: THandle;
  end;

  TProcessRecList = class(TList<PProcessRec>)
  public
    procedure 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;
var
  p: PProcessRec;
begin
  for p in self do
    Dispose(p);
end;

function GetAllProcess: TProcessRecList;
var
  Entry32: TProcessEntry32W;
  SnapshotHandle: THandle;
  Found: boolean;
  sExeFileName: string;
  p: PProcessRec;
begin
  Result := TProcessRecList.Create;
  SnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  Entry32.dwSize := sizeof(Entry32);
  Found := Process32First(SnapshotHandle, Entry32);
  while Found do
  begin
    new(p);
    Result.Add(p);
    sExeFileName := Entry32.szExeFile;
    p.ProcessName := sExeFileName;
    p.ProcessID := Entry32.th32ProcessID;
    Found := Process32Next(SnapshotHandle, Entry32);
  end;
  CloseHandle(SnapshotHandle);
end;

end.
时间: 2024-10-02 06:50:23

delphi 微信(WeChat)多开源代码的相关文章

使用delphi+intraweb进行微信开发1~4代码示例

前几讲重点阐述的是使用iw进行微信开发的技术难点及解决方法,提供的都是代码片段(微信消息加解密是完整代码),实际上我始终感觉按照教程实作是掌握一门技术的最重要的方法!不过对于刚刚接触这类开发的朋友来说可能学习曲线陡峭了点,既然如此,特意放出了前4讲的示例代码,去掉了数据库相关操作,保留了最精华的代码部分,直接编译即可进行测试. 下载地址:http://download.csdn.net/detail/netwizard/9475970 此虽为示例代码但是是从我一个即将完工的商业项目中拷贝出来的,

面向对象的全套“企业微信”api接口的代码实现,网上太多“面向过程”微信api接口的代码,这个开源给需要的人用

有段时间没有写文章了. 一直以来,微信的热门是看得到的,很多人都需要与微信的api对接. 今天我这里就分享全套的企业微信api接口的代码. 关于微信api,网上已经有很多实现的了. 但是我今天之所以还写这个,是因为网上基本上找不到面向对象的api接口实现的编程,几乎都是“面向过程”的. 本文章的代码,也许能带给你极大的方便,以及非常方便的扩展和应用. 1.如下图,在你的业务逻辑层中,将本文章附件的Weixin代码文件夹整套放进去 2.在你的页面中,类似于下图,插入下面的代码即可实现调用. 下图例

JAVA版本微信公众账号开源项目版本发布-jeewx1.0(捷微)

JeeWx, 敏捷微信开发,简称"捷微". 捷微是一款免费开源的微信公众账号开发平台. 平台介绍: 一.简介 jeewx是一个开源,高效,敏捷的微信开发平台采用JAVA语言,它是基于jeecg这个企业级快速开发框架实现的. jeewx的目的是最大化的简化微信开发的流程,使用开发者能把最好的精力放到微信具体业务开发,并能以最快的时间完成.把一些常规而频繁的工作交由jeewx来处理即可,平台兼备的代码生成器,在线开发,可以快速的完成企业应用.为此jeewx提供了详细的二次开发文档,关键代码

微微信.NET:开源的ASP.NET微信公众号应用平台

题记: 平时喜欢使用 C# 编程,近半年玩微信公众平台,看到一些微信的应用系统大多是PHP.Python的,于是就有想法做一套开放的 C# ASP.NET的微信应用系统. 微微信.NET  基于ASP.NET的开源微信应用平台  --(面向客户完全开源 永久免费代码更新 游戏和点餐菜单正在完善中 很多功能继续优化) 微微信.NET  系统设计架构         本系统基于文件系统和内存数据库,标准板运行于.NET4,完全版需要单独的服务器或者VPS支持          本系统是一个开源系统,

GitHub + VSTS 开源代码双向同步

GitHub已经是全球开源代码的大本营了,通过以下统计你可以看到仅仅javascript在github就有超过32万个活动的repo.很多开发人员都会把自己的一部分代码分享到github上进行开源,一方面可以提高自己在编程领域的知名度,也可以吸引其他的开发人员帮助你一起改进,当然还可以认识更多的朋友,要不怎么说github其实是个交友网站呢. 但是github上免费的repo只能是公开的,对于一些我们不希望完全开源的项目,就没有办法免费分享了,当然你可以付费升级到专业版,这样就可以托管私有rep

微信公众平台开发(二) 微信公众平台示例代码分析

原文地址:http://www.cnblogs.com/mchina/archive/2013/06/07/3120592.html 一.摘要 微信公众平台提供了一个简单的php示例代码,在做进一步开发之前,我们有必要将其详细了解一下. 二.获取代码 微信官网:http://mp.weixin.qq.com/mpres/htmledition/res/wx_sample.zip 三.分析代码 完整代码如下: <?php /** * wechat php test */ //define your

PC微信(WeChat)电脑端多开分析+源码

0x00 前言 不知道大家有没有多个微信号,我反正有一两三个. 现在电脑端微信使用频率也比较高,主要用于大文件传输,或者手机电脑文件互传等等,除了不能收红包和看朋友圈,貌似电脑端没其他毛病. 哦,还有个毛病,只能开一个微信,只能开一个,开一个,一个- 不管这些有的没的,今天的主题是,怎么样在电脑上开多个微信客户端! 0x01 分析 了解过单实例的同学,应该都知道大概是怎么实现的单开. 简单说下,大都通过判断Mutex.Event.File等等是否已经存在,存在则退出当前开启进程(说明已经有一个进

微控工具xp模块-开发版[微信(wechat)二次开发模块]

http://repo.xposed.info/module/com.easy.wtool 微控工具xp模块-开发版[微信(wechat)二次开发模块] 基于xposed框架的微信二次开发模块,方便开发者用微信做一些扩展功能(如微信群发.多群直播等...) 目前支持功能: 发文本消息 发图片消息 发语音消息 发视频消息 获取微信好友列表 群列表 支持群发消息 支持消息转发(目前支持文本.图片.语音.视频.图文消息转发) 群管理功能(建群.加人.踢人.设置公告.改群名.退群.解散群) [注:本模块

JAVA 版本微信公众账号开源项目招募新成员

大家好: jeecg开源社区,目前正在开展"JAVA 版本微信公众账号开源项目"的开发工作,欢迎有兴趣的朋友一起参与! 截止时间:20140510 详细联系方式:445654970 要求: 1.熟悉jeecg技术平台: 2.有足够的业余时间参与: 官方网站:http://www.jeecg.org/ JAVA 版本微信公众账号开源项目招募新成员,布布扣,bubuko.com