[更新内容在2楼]实现远程控制电脑挂机的方法
本帖隐藏的内容需要回复才可以浏览
[更新内容在2楼]将远程控制进行到底!!! 实现远程控制电脑挂机的方法以前发过一个示例,是关于 用A脚本控制B脚本运行或停止 http://bbs./viewthread.php?tid=24811&highlight=
但后来仔细考虑,想到,一般用一个脚本控制另一个脚本可能用于以下几种情况!
1,同一台电脑内,需要同时运行2个脚本,而2个脚本又必须统一参数 2,同一台电脑内,一个脚本在后台执行挂机脚本,另一个脚本在前台运行,方便我们控制后台脚本的运行和停止,而且可以随时知道里面的挂机情况,比如打了多少经验,现在坐标多少,等(昨天苦读专家区的讨论帖4个小时之久,发现LEO也有此想法,就是在前台弄个小窗口,能知道后台的挂机情况) 3,同一台电脑.安装VMware-workstation虚拟机系统,实现一台电脑挂多个账号! 4,多台电脑,实现1台电脑控制多台电脑进行挂机动作,也可用于远程控制启动挂机,停止挂机,关机等!!
1和2,其实原理比较简单,都在一台电脑里,所以可以用godeden 写的〓〓关于【在多个脚本之间传递数据】的解答(读写“剪贴板”法)〓〓来实现上述功能 http://bbs./viewthread.php?tid=13137&extra=page%3D1 3,虽然是在一台电脑内,但真机和虚拟机之间是不可以用剪贴板来进行通信的! 4,多台电脑,论坛高手stanley0921 写的按键精灵用最简单的方法实作Client/Server网路控制多台电脑(含原始码分享)可以很好的解决问题!但对于没有学过什么编程语言的人来说,看的真的很吃力.... http://bbs./viewthread.php?tid=22676
于是,在LEO让我整理常见的脚本之间通讯的方式的前提下,我开始实践!
其实,以上的1,2,3,4条都可以通过一个统一的方法实现,那就是读写.txt或.ini文件!
同一台电脑下的读写txt和ini,大家应该都会. 多在多台电脑或真机和虚拟机之间的读写可能就会难到一些人了 下面说下多台电脑的思路吧!! 其实,有网络基础的人都知道,网络间的文件是可以共享的,只要你在共享里设置 every one的权限为读写权限,那么多台电脑间读写文件就可以实现了
有人会问,同一网段的用共享,那不同网段的呢?其实只要安装IIS服务,架设一个ftp,然后允许匿名访问,把every one的权限也设置成读写权限,那么,你就能在任何一台电脑控制你家正在挂机的电脑了!!
相信说到这,大家都能明白我的意思了吧?
最后说下,每个系统在安装后都会把所有的盘默认共享出来.所以只要你把文件放在一个盘下,然后用\\127.0.0.1\c$的方法就可以访问了!
如果不知道自己的IP的可以在cmd命令下用 ipconfig 查看IP和网关
如果你是adsl用户,你可以到下载一个花生壳,然后申请一个域名,然后绑定你的ftp服务器就可以了!
下面我以txt为示例写一个互控脚本!
控制脚本--用于控制其他脚本的运行状态,可远程控制其他电脑
[General] Description=控制脚本 BeginHotkey=121 BeginHotkeyMod=0 PauseHotkey=0 PauseHotkeyMod=0 StopHotkey=123 StopHotkeyMod=0 RunOnce=1 EnableWindow= Enable=1 [Repeat] Type=0 Number=1 [CallBack] OnSetup= [Comment] Content=20061012--wx19841231for〖欣﹍簽〗.
[Script] //#########这个脚本是于控制其他脚本和显示其他脚本运行状态的########### txta=1 txtb="当前鼠标位于0,0点" txtc=0 VBS set tsObj = createobject("WScript.Shell") VBS set fso=CreateObject("Scripting.FileSystemObject") VBS const forreading=1 VBS const forwriting=2 VBS const forappending=8 If fso.FileExists("\\192.168.16.2\s\s.txt")=0 VBS set myfile=fso.createtextfile("\\192.168.16.2\s\s.txt") //"\\192.168.16.2\s\s.txt"--受控脚本IP\共享文件夹名\文件名..如果使用在一台电脑,请更换成你的路径 Gosub 写入控制文本 EndIf Rem 等待发出命令 WaitKey mingling If mingling=49 Gosub 开始运行受控脚本 ElseIf mingling=50 Gosub 停止运行受控脚本 ElseIf mingling=51 Gosub 显示受控脚本运行状态 ElseIf mingling=52 Gosub 改变受控脚本运行参数 Else Goto 等待发出命令 EndIf Goto 等待发出命令 EndScript Sub 开始运行受控脚本 Gosub 读取所有参数 txta=0 Gosub 写入控制文本 Return 开始运行受控脚本 EndScript Sub 停止运行受控脚本 Gosub 读取所有参数 txta=1 Gosub 写入控制文本 Return 停止运行受控脚本 EndScript Sub 显示受控脚本运行状态 Gosub 读取所有参数 VBSCall vartxtb=tsObj.Popup(txtb&vbCr&"是否停止运行受控脚本",10,"10秒后窗口自动关闭--控制脚本",65) If vartxtb=1 txta=1 Gosub 写入控制文本 EndIf Return 显示受控脚本运行状态 EndScript Sub 改变受控脚本运行参数 Gosub 读取所有参数 If txtc=0 txtc=1 Else txtc=0 EndIf Gosub 写入控制文本 Return 改变受控脚本运行参数 EndScript Sub 写入控制文本 VBS set myfile=fso.opentextfile("\\192.168.16.2\s\s.txt",forwriting) VBS myfile.writeline("脚本是否运行="&txta) VBS myfile.writeline("脚本运行状态="&txtb) VBS myfile.writeline("脚本参数="&txtc) VBS myfile.close Return 写入控制文本 EndScript Sub 读取所有参数 VBS Dim txt(3),Ytxt(3) Ytxt(0)="脚本是否运行=" Ytxt(1)="脚本运行状态=" Ytxt(2)="脚本参数=" i=0 VBS set myfile=fso.opentextfile("\\192.168.16.2\s\s.txt",forreading) For 3 txtall=0 While txtall=0 VBS txt(i)=myfile.readline txtall=Instr(txt(i),Ytxt(i)) EndWhile i=i+1 EndFor VBS myfile.close txta=Mid(txt(0),Instr(txt(0),"=")+1) txtb=Mid(txt(1),Instr(txt(1),"=")+1) txtc=Mid(txt(2),Instr(txt(2),"=")+1) Return 读取所有参数 EndScript
受控脚本--挂机的主程序,可用于多台电脑
[General] Description=受控脚本 BeginHotkey=122 BeginHotkeyMod=0 PauseHotkey=0 PauseHotkeyMod=0 StopHotkey=123 StopHotkeyMod=0 RunOnce=1 EnableWindow= Enable=1 [Repeat] Type=0 Number=1 [CallBack] OnSetup= [Comment] Content=20061012--wx19841231for〖欣﹍簽〗.
[Script] //#########这个脚本是挂机主程序,受其他脚本控制########### VBS set fso=CreateObject("Scripting.FileSystemObject") VBS const forreading=1 VBS const forwriting=2 VBS const forappending=8 Rem 检测参数 Delay 100 Gosub 读取所有参数 If txta=1 Goto 检测参数 ElseIf txta=0 Gosub 运行主程序 EndIf Goto 检测参数 EndScript Sub 运行主程序 If txtc=0 Gosub 画圆 ElseIf txtc=1 Gosub 屏幕扫描 EndIf Return 运行主程序 EndScript Sub 写入控制文本 VBS set myfile=fso.opentextfile("\\192.168.16.2\s\s.txt",forwriting) VBS myfile.writeline("脚本是否运行="&txta) VBS myfile.writeline("脚本运行状态="&txtb) VBS myfile.writeline("脚本参数="&txtc) VBS myfile.close Return 写入控制文本 EndScript Sub 读取所有参数 VBS Dim txt(3),Ytxt(3) Ytxt(0)="脚本是否运行=" Ytxt(1)="脚本运行状态=" Ytxt(2)="脚本参数=" i=0 VBS set myfile=fso.opentextfile("\\192.168.16.2\s\s.txt",forreading) For 3 txtall=0 While txtall=0 VBS txt(i)=myfile.readline txtall=Instr(txt(i),Ytxt(i)) EndWhile i=i+1 EndFor VBS myfile.close txta=Mid(txt(0),Instr(txt(0),"=")+1) txtb=Mid(txt(1),Instr(txt(1),"=")+1) txtc=Mid(txt(2),Instr(txt(2),"=")+1) Return 读取所有参数 EndScript Sub 画圆 r=300:x0=512:y0=384:x=0:y=0:n=0 While n<3.1415926*2 x=x0+r*cos(n) y=y0-r*sin(n) MoveTo x y Delay 50 Gosub 反馈信息 Gosub 检测信息 n=n+0.03 EndWhile Return 画圆 EndScript Sub 屏幕扫描 Plugin allx=GetSysInfo.GetScreenResolutionX Plugin ally=GetSysInfo.GetScreenResolutionY VBS x=0:y=0 While y<=ally While x<=allx MoveTo x y Delay 50 Gosub 反馈信息 Gosub 检测信息 VBS x=x+1 EndWhile x=0 VBS y=y+1 EndWhile Return 屏幕扫描 EndScript Sub 检测信息 If txtc=0 Gosub 读取所有参数 If txta=1 Goto 检测参数 EndIf If txtc=1 Goto 检测参数 EndIf EndIf If txtc=1 Gosub 读取所有参数 If txta=1 Goto 检测参数 EndIf If txtc=0 Goto 检测参数 EndIf EndIf Return 检测信息 EndScript Sub 反馈信息 txtb="当前鼠标位于"&x&","&y&"点" Gosub 写入控制文本 Return 反馈信息
[ 本帖最后由 wx19841231 于 2006-10-13 06:00 PM 编辑 ]
|
|
|
|
|
|
|
- 帖子
- 2186
- 积分
- 3888
- 鲜花
- 136 个
- 鸡蛋
- 0 个
- 铜币
- 190 个
- 银币
- 2241 个
- 金币
- 0 个
- 注册时间
- 2005-11-24
- 最后登录
- 2011-7-31
|
沙发
发表于 2006-10-12 13:48 | 只看该作者
2006.10.13第2次更新,加入实时鼠标控制
2006.10.13第2次更新,加入实时鼠标控制
更新说明:修正了一个BUG,把等待按键改为检测按键 新增停止运行后,完全控制鼠标功能 BUG说明:因为受控脚本在不停的检测和写入文本,所以,控制端根本无法写入数据。所以将受控脚本写的数据放入另一个文本就可以解决此问题 另,因为新增加一个完全鼠标控制,所以控制端的鼠标记录到所有控制文本的一起 另注意:本人今天在机房测试了一天,发现一个问题:windows自带的ftp不能设置完全控制权限,所以无法实现上述功能。 如果想实现不同网段的控制,那么就必须借助其他的ftp工具,比如Server-U. 如果你硬要用IIS的话,配合telnet使用,应该也能达预期的效果!! 还有就是,除了共享,ftp外,其实还可以搭建一个VPN来实现上述功能。 后记:写完全文,我想到一个小精灵的安全问题。 以前 VBS技术者 写过泡泡堂盗账号脚本,是通过QQ临时会话来实现发送账号密码! 其实,如果别人没开QQ的话,那么这个脚本就会失效! 然而,用写入文本的方法,那就完全可避免这类问题! 如果有人写个某游戏的小精灵,里面加入键盘监控,然后用上述方法。 这样就完全实现盗号了!!
控制脚本
[General] Description=控制脚本 BeginHotkey=121 BeginHotkeyMod=0 PauseHotkey=0 PauseHotkeyMod=0 StopHotkey=123 StopHotkeyMod=0 RunOnce=1 EnableWindow= Enable=1 [Repeat] Type=0 Number=1 [CallBack] OnSetup= [Comment] Content=20061013--wx19841231for〖欣﹍簽〗.
[Script] //#########这个脚本是于控制其他脚本和显示其他脚本运行状态的########### txta=1 txtc=0 VBS set tsObj = createobject("WScript.Shell") VBS set fso=CreateObject("Scripting.FileSystemObject") VBS const forreading=1 VBS const forwriting=2 VBS const forappending=8 If fso.FileExists("\\192.168.0.24\wanxin\s.txt")=0 VBS set myfile=fso.createtextfile("\\192.168.0.24\wanxin\s.txt") //"\\192.168.0.24\wanxin\s.txt"--受控脚本IP\共享文件夹名\文件名..如果使用在一台电脑,请更换成你的路径 Gosub 写入控制文本 EndIf Rem 等待发出命令 GetLastKey mingling Gosub 写入控制文本 Delay 50 If mingling=49 Gosub 开始运行受控脚本 ElseIf mingling=50 Gosub 停止运行受控脚本 ElseIf mingling=51 Gosub 显示受控脚本运行状态 ElseIf mingling=52 Gosub 改变受控脚本运行参数 Else Goto 等待发出命令 EndIf Goto 等待发出命令 EndScript Sub 开始运行受控脚本 Gosub 读取所有参数 txta=0 Gosub 写入控制文本 Return 开始运行受控脚本 EndScript Sub 停止运行受控脚本 Gosub 读取所有参数 txta=1 Gosub 写入控制文本 Return 停止运行受控脚本 EndScript Sub 显示受控脚本运行状态 Gosub 读取所有参数 VBSCall vartxtb=tsObj.Popup(txtb&vbCr&"是否停止运行受控脚本",10,"10秒后窗口自动关闭--控制脚本",65) If vartxtb=1 txta=1 Gosub 写入控制文本 EndIf Return 显示受控脚本运行状态 EndScript Sub 改变受控脚本运行参数 Gosub 读取所有参数 If txtc=0 txtc=1 Else txtc=0 EndIf Gosub 写入控制文本 Return 改变受控脚本运行参数 EndScript Sub 写入控制文本 VBS set myfile=fso.opentextfile("\\192.168.0.24\wanxin\s.txt",forwriting) VBS myfile.writeline("脚本是否运行="&txta) VBS myfile.writeline("脚本参数="&txtc) VBSCall GetCursorPos(x,y) VBS myfile.writeline(x) VBS myfile.writeline(y) VBS myfile.close Return 写入控制文本 EndScript Sub 读取所有参数 VBS set file=fso.opentextfile("\\192.168.0.24\wanxin\b.txt",forreading) txtb=file.readline VBS file.close Return 读取所有参数 EndScript
受控脚本
[General] Description=受控脚本 BeginHotkey=122 BeginHotkeyMod=0 PauseHotkey=0 PauseHotkeyMod=0 StopHotkey=123 StopHotkeyMod=0 RunOnce=1 EnableWindow= Enable=1 [Repeat] Type=0 Number=1 [CallBack] OnSetup= [Comment] Content=20061013--wx19841231for〖欣﹍簽〗.
[Script] //#########这个脚本是挂机主程序,受其他脚本控制########### VBS set fso=CreateObject("Scripting.FileSystemObject") VBS const forreading=1 VBS const forwriting=2 VBS const forappending=8 Rem 检测参数 Delay 50 Gosub 读取所有参数 If txta=1 MoveTo kx ky Goto 检测参数 ElseIf txta=0 Gosub 运行主程序 EndIf Goto 检测参数 EndScript Sub 运行主程序 If txtc=0 Gosub 画圆 ElseIf txtc=1 Gosub 屏幕扫描 EndIf Return 运行主程序 EndScript Sub 读取所有参数 VBS Dim txt(4),Ytxt(4) Ytxt(0)="脚本是否运行=" Ytxt(1)="脚本参数=" Ytxt(2)="" Ytxt(3)="" i=0 VBS set myfile=fso.opentextfile("\\192.168.0.24\wanxin\s.txt",forreading) For 4 txtall=0 While txtall=0 VBS txt(i)=myfile.readline txtall=Instr(txt(i),Ytxt(i)) EndWhile i=i+1 EndFor VBS myfile.close txta=Mid(txt(0),Instr(txt(0),"=")+1) txtc=Mid(txt(1),Instr(txt(1),"=")+1) kx=txt(2) ky=txt(3) Return 读取所有参数 EndScript Sub 画圆 r=300:x0=512:y0=384:x=0:y=0:n=0 While n<3.1415926*2 x=x0+r*cos(n) y=y0-r*sin(n) MoveTo x y Delay 5 Gosub 反馈信息 Gosub 检测信息 n=n+0.03 EndWhile Return 画圆 EndScript Sub 屏幕扫描 VBS x=100:y=100 While y<=500 While x<=500 MoveTo x y Delay 5 Gosub 反馈信息 Gosub 检测信息 VBS x=x+1 EndWhile x=100 VBS y=y+1 EndWhile Return 屏幕扫描 EndScript Sub 检测信息 If txtc=0 Gosub 读取所有参数 If txta=1 Goto 检测参数 EndIf If txtc=1 Goto 检测参数 EndIf EndIf If txtc=1 Gosub 读取所有参数 If txta=1 Goto 检测参数 EndIf If txtc=0 Goto 检测参数 EndIf EndIf Return 检测信息 EndScript Sub 反馈信息 If fso.FileExists("\\192.168.0.24\wanxin\b.txt")=0 VBS set file=fso.createtextfile("\\192.168.0.24\wanxin\b.txt") EndIf VBS set file=fso.opentextfile("\\192.168.0.24\wanxin\b.txt",forwriting) txtb="当前鼠标位于"&x&","&y&"点" VBS file.writeline(txtb) VBS file.close Return 反馈信息 EndScript
|
|
|