使用软件:AHK v1.1.34,killhandle

期望实现的效果

1.自动杀DiabloII Check For Other Instances进程

2.自动登陆战网battle.net客户端,输入用户名密码,登陆,(登陆的蓝色按钮需要截图保存在同位置下,文件名login.bmp,图片样子见文章末尾)

3.自动点击进入游戏(识别login.bmp),到人物选择界面(需要截图右下角的删除按钮,保存为loading.bmp,图片样子见文章末尾),结束

4.实现双开,多开

使用说明:

a.需要在微软下载killhandle64.exe,本代码使用的是killhadle64.exe,根据系统不同可能要选择killhadle.exe,需要修改代码中的killhandle版本。未测试。

b.需要把handle64.exe复制到C:\Windows\SysWOW64 和 C:\Windows\System32文件夹下,否则会报找不到位置,可能跟AHK是32 还是64有关。

c.需要在前3行配置用户名,密码和游戏路径

d.以上可实现单开

e.多开就将代码1对应的AHK文件复制多个,修改前3行配置。然后新建个AHK文件调用前面复制的文件就行。调用的代码见代码2:

纯新手,代码比较冗余,高手请略过。

会不会导致封号,未知。慎用。

代码1:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;config;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ID=
PSW=
dir=D:\diabloR\Diablo II Resurrected\Diablo II Resurrected Launcher.exe
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;config;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MsgBox, 0, 杀进程, 杀!杀!杀! 此弹窗2秒后关闭, 2
;需要把handle64.exe复制到C:\Windows\SysWOW64 和 C:\Windows\System32文件夹,否则会报找不到位置,可能跟AHK是32 还是64有关。
shell := ComObjCreate("WScript.Shell"); 通过 cmd.exe 执行单条命令
pth :="C:\Windows\System32\handle64.exe "
exec := shell.Exec(pth "-a -p D2R.exe Instances"); 读取并返回命令的输出
sleep 2000
strText :=exec.StdOut.ReadAll()
s :=strsplit(strText, chr(10))
x :=s.MaxIndex()
for index, element in s
{stxt :=s[A_Index]    ss :=strsplit(stxt,": ")    if ss.Length()  >1{{        sstxtA :=ss[2]sstxtB :=ss[3]x :=InStr(sstxtA, " ") - 1strINGleft,D2rPID,sstxtA,x ;获取D2R程序PID stringright,handle,sstxtB,4 ;获取DiabloII Check For Other Instances的handlecmdt := " handle64.exe -c " handle " -p " D2rPID " -y"ComObjCreate("Shell.Application").ShellExecute( "cmd.exe"," /c " cmdt,"","runas",1) ;杀进程}}
}
;以上杀进程
;RunWaitOne("killhandle.vbs " A_ScriptDir)sleep,2000
run,%dir%
Sleep, 1000
winex.wait("battle.net")
winex.findActivate("battle.net")
count :=1
while (count<100)
{imageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, login.bmpif     ErrorLevel = 2{MsgBox 没有图片文件count :=99}else if        ErrorLevel = 1{MsgBox, 0, 准备登陆, 找不到登陆按钮,找到后则输入用户名密码 此弹窗2秒后关闭, 2count++Sleep, 5000}else{;MsgBox,找到count :=999;Sleep, 2000}count++}Sleep, 200
; MsgBox,窗口打开
send +{Tab}
Sleep, 200
send {Delete}
SendInput {TEXT}%ID%
Sleep, 200
send {enter}
Sleep, 200
send {tab}
SendInput  {TEXT}%PSW%
Sleep, 200
click %FoundX%,%FoundY%
;输完用户名,找登陆按钮
;Sleep, 5000
;登陆后,找登陆图标
count :=1
while (count<999)
{imageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, login.bmpif     ErrorLevel = 2{MsgBox 没有图片文件count :=991}else if        ErrorLevel = 1{MsgBox, 0, 准备进入游戏, 等待进入游戏按钮 此弹窗2秒后关闭, 2count++Sleep, 3000}else{click %FoundX%,%FoundY%count :=9999Sleep, 2000}count++}
winex.wait("D2R.EXE")
winex.findActivate("D2R.EXE")count :=1
while (count<999)
{imageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, loading.bmpif     ErrorLevel = 2{MsgBox 没有图片文件count :=991}else if        ErrorLevel = 1{MsgBox, 0, 准备进入游戏, 等待连接界面 此弹窗2秒后关闭, 2count++Sleep, 1000ControlSend ,,{SAPCE},D2R,,,}else{click %FoundX%,%FoundY%count :=9999Sleep, 1000}count++}
MsgBox, 0, 成功,游戏已打开 此弹窗2秒后关闭, 2
ExitApp

代码2:

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.runwait,1.AHK
runwait,2.AHK
;几开上面就增加几个,对应的就ahk文件也要复制几个。名称注意一致。
ExitApp

LOGIN.BMP

LOADING.BMP

以上,有谁优化了代码,欢迎分享,谢谢!

【AHK】autohotkey 自动登陆战网暗黑2杀进程双开多开相关推荐

  1. Python模拟登录,Python识别图形验证码实现自动登陆

    前言 利用Python识别图形验证码,selenium模块实现自动登陆.废话不多说. 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: re: numpy模块: pytess ...

  2. Linux多台服务器共用密钥ssh自动登陆

    linux的秘钥产生与服务器无关,只和加密的方式(采用rsa或dsa)还有passphrase(密码短语,在生成秘钥的时候输入)有关. 如果是这样,同一对秘钥可以使用在多台服务器上,因为对于服务器和客 ...

  3. putty 保存密码 自动登陆 四种方法

    Putty 基本是我在紧急时候用来登陆 Linux/Unix 终端的不二之先,因其小,开源,界面也非常实用.可是当你要在私有的机器上,经常性的要登陆很多机器的时候就觉得烦琐了,不光打开一堆的窗口,还要 ...

  4. windows进程管理器_软件进程自动重启一遍又一遍……你需要这款自动杀进程的小公举ProcessKO...

    [PConline 应用]用Windows系统最烦的一件事,就是各种乱七八糟的进程.我们知道软件要运行,就会在后台唤起进程,但这些进程有时候并不那么听话,某些软件会不断唤起进程,对此Windows自带 ...

  5. 怎么在python下载网站内容-分析某网站,并利用python自动登陆该网站,下载网站内容...

    本帖最后由 愤怒的小车 于 2019-5-8 09:41 编辑 一:本代码是我研究了好久才写出来,七功能主要有自动登陆.自动识别验证码.以及自动识别下载格式进行判断下载! 首先,搬上我们的主角网址,h ...

  6. 修改2k自动登陆的脚本

    --  修改2k自动登陆的脚本 main sub main() dim Auto,domain,user,paswword,auto1,domain1,user1,paswword1,reg,nl r ...

  7. Windows 自动登陆的简单方法

    Windows 自动登陆的简单方法   原创 睡不着 2007-08-20 我们为电脑设置密码,目的就是为安全,而这个"安全"可以考虑到两个方面,一是本地用户:二是网络用户这个两个 ...

  8. 基于fiddler的网络爬虫校园网自动登陆系统

    最近校园网(需要WEB登陆)不太稳定,总是掉线,于是想写一个基于网络爬虫的校园网自动登陆系统,让程序自动每隔一段时间自动检测网络连通性,查了一些资料,最后用了Fiddler软件进行网络监听,对网页ht ...

  9. windows10自动填充密码开机自动登陆

    1 项目需求 需要用到远程登陆(远程登陆需要设置用户和密码),同时客户可以开机自动进入windows系统,运行的程序开机自启动. 2 步骤 2.1 Win+R 之后会调出运行命令框,然后在弹出的运行窗 ...

最新文章

  1. 二:SpringAOP
  2. typedef struct 先声明后定义_C++模版和C#泛型求同存异录(二)typedef
  3. wxHtml 示例:演示嵌入控件
  4. 为一个优秀的C++程序员
  5. android 如何保留数据两位小数
  6. 最全.Net学习资料库上线,今日可免费下载各类资源!(附百度云链接)
  7. ios html图片相对路径,iOS 下加载本地HTML/js/css/image 等路径问题
  8. CentOS 7 安装Mono 和 MonoDevelop
  9. 学习软件测试你不了解这7点你算是白学了...
  10. vm14远程连接服务器,VisualVM 远程连接服务器
  11. linux+qt经典教程+pdf下载,Qt入门教程 详细讲解版.pdf
  12. 巧用 10分钟邮箱 申请小红伞 免费KEY 92天
  13. 蒙特卡洛—赌博模型笔记
  14. 手机app界面及易用性测试点分析(通用)
  15. 笔记本光驱接口怎么外接台式机硬盘?
  16. wincc远程服务器配置,WINCC-OPC服务器配置
  17. grep的常用和次常用选项
  18. SpringBoot 查询今年所有节假日
  19. 利用js,HTML,css实现一个简单的指针时钟
  20. EasyExcel合并单元格策略样例

热门文章

  1. 期货负价格与巴舍利耶定价模型
  2. 思科交换机基本配置实例讲解《一》
  3. aircrack-ng破解wifi密码
  4. 词向量学习笔记(一)Word2vec
  5. cocos匀速贝塞尔曲线运动
  6. DevC++ 报错[Error] Id returned 1 exit status
  7. Cortex-M3 和 M4 的区别
  8. 高手常用的自我介绍套路
  9. 数据结构中遍历的意义
  10. 关键词排名查询工具主要有哪些?