标题: [求助]经过批处理用手机控制电脑
[打印本页]
作者: cjiabing
时间: 2010-2-28 21:46
标题: [求助]经过批处理用手机控制电脑
一直想弄个手机和电脑互动的东东,可能力有限,发个帖,大家一起来研究研究吧。
大概构思是这样的,出门的时候忘记关电脑了,但最近三天可能不回家,想通过手机发送一条指令给电脑,说,电脑,我不回家,你关机睡觉吧。批处理如何实现此功能?
电脑和电脑之间可以通过浏览器、聊天工具等方式通信,手机和手机之间可以通过手机号码通信。手机和电脑之间通过什么方式通信呢?
1、飞信:可以在电脑上发送免费短信,也可以在智能手机上安装飞信。
2、QQ:电脑和手机上的QQ都已经很普及了。
3、邮件:现在手机同样很轻松的就可以接收邮件。
以上是三种常见的手机和电脑的通信方式,可见,手机和电脑之间的通信已经大概的有了一个基础,那么,我们的批处理能够在中间扮演什么角色呢?
飞信命令行版、QQ命令行版、邮件命令行版我都找到了。飞信命令行版给我弄丢失了,可以再找。QQ命令行版可以用,但似乎它和官方版本的一样是独立的,需要手工操作,批处理无法“嵌入”它的程序里面(可能我的能力有限),因此无法预先设定QQ号码和密码,无法导入和导出通信内容。命令行版的邮件我用的是blat.exe,但目前我只弄懂发送邮件,无法搞清楚怎么接收邮件。
以邮件作为媒介连通电脑和手机(智能机),在电脑上批处理配合blat可以发送邮件。比如,我用手机发送邮件给电脑“电脑,执行关机”——转换成代码:Dear007,shutdown -s。电脑开机一直执行一个批处理,专门用来监控邮箱,当其接收到命令“Dear007,shuodown -s”时,分析dear007为电脑名称,“shutdown -s”为执行命令,接收到命令后,批处理首先自动回复一封邮件给手机,“收到!马上执行!”,并于一分钟后开始执行关机命令。
整个过程,需要一个监控邮箱的P,需要实现接收和分析邮件的P,需要发送邮件的P,需要执行命令的P。发送邮件的P已经可以实现,但接收和分析的P我还没搞定,目前没有具体的头绪,想请教众位高手,接受和分析邮件具体如何实现?最好具有很强的可操作性,代码也得,工具也得,发一点出来,大家一起完成这个有趣的试验,让批处理也实现智能化!~
[
Last edited by cjiabing on 2010-2-28 at 21:49 ]
作者: jarry0932
时间: 2010-3-1 00:37
楼主实在太有想象力了…佩服…
作者: lotus516
时间: 2010-3-1 11:24
回楼上,这个是完全可能的!
用邮件比较好实现,因为电脑上分析QQ和飞信的包是比较难的,而邮件可以用主题(关键字)来实现,是比较容易的!
再加上远程开关机,这完全是智能化的电脑了!
作者: lotus516
时间: 2010-3-1 11:37
处女作163邮箱登陆器
http://www.cn-dos.net/forum/view ... =%E9%82%AE%E7%AE%B1
作者: cjiabing
时间: 2010-3-1 16:26
只是登陆邮箱没有用呢,无法读取新邮件,我现在在研究outlook,遇到个问题,就是把htm转换成txt,不好弄
作者: HAT
时间: 2010-3-1 21:04
把网页文件转换为纯文本的工具HtoX32c
http://www.cn-dos.net/forum/viewthread.php?tid=25122
作者: cjiabing
时间: 2010-3-1 22:33
呵呵,那个太复杂了,我直接findstr到要点,现在得到以下信息:
Subject: =?gb2312?B?u7bTrcq508MgT3V0bG9vayBFeHByZXNzIDY=?=
Subject: =?gbk?B?u/rG98jL?=
Subject: 个人简历账户通知
Subject: =?gbk?B?xOO6w6OsztLKx8X6tKbA7Q==?=
Subject: dear007:dir c:\
Subject: =?gbk?B?Y3Nib3QgZWNobyDO0srHt7S/1r6r06I=?=
Subject: =?gbk?B?Y3Nib3QgY3Nib3QgZWNobyC57SUwIGNzYm90?=
Subject: =?gbk?B?16q3oqO6UmU6IGRlYXIwNzogZWNobyDO0srHu/o=?=
Subject: =?gbk?B?ZGVhcjA3OiBlY2hvIM7Syse7+sb3yMtkZWFyMDA3?=
要用base64解码,没有成功使用过,楼上的给个方案啊?
作者: zlsanhong
时间: 2010-3-5 23:29
想不用钱估计是不行的 ,用这个吧。有这功能
http://www.hzybz.com/ 里头自己找找看
作者: HAT
时间: 2010-3-5 23:45
标题: Re 8 楼
楼主的代码都快搞定了,你咋说不行呢?
http://bbs.bathome.net/thread-7243-1-1.html
作者: zlsanhong
时间: 2010-3-7 11:30
引用:
原帖由 lxzzr 于 2010-3-4 13:44 发表
可以选择IE等工具,你的手机可以上网吧??在自己的电脑上架设个小网站,然后......(我用N70时试过,效果还可以...)
BOSS 请问用的是IIS假设服务器么 ? 然后怎么搞呢。。这是个最好的输入方式。。。 最好是能用手机将文字发送并保存为TXT文件到电脑上。。如此一来。设个批处理在电脑上一直运行。 当发现这个文件的时候。。。哈哈。。就处理相应的批处理。。妞啊。。。
关键是如何将文字用手机发送并保存到电脑上呢?
作者: mgq
时间: 2010-3-7 20:02
其实用QQ控制就是一个最好的办法:
1.申请两个专用的QQ,暂且叫主控端,接收端.
2.主控端在手机上,接收端在电脑.
3.两个QQ只加对方为好友,然后禁止任何人加为好友.以免混乱.
4.常规项选择"允许消息来时自动控制弹出窗口"
原理:
在手机是运行主控端QQ,电脑运行接收端.手机发出信号QQ信息,电脑接收后弹出窗口,并且最大化用
nircmd.exe 来模拟鼠标动作,把QQ窗口的内容复制到TXT文档,然后用批处理读取TXT内容,然后....
以下这段代码在本机能正常控制酷狗音乐,而且能把执行结果返回到手机上.
需要第三方软件, cmdow.exe nircmd.exe
以下代码供参考,不一定适用于其他机.写得很乱,不好意思.
@echo off
Setlocal EnableDelayedExpansion
cmdow @ /min
rem 设置主控制端的QQ名称(手机上的QQ名称)
set qq=主控端
for /f %%i in ('cmdow /t ^|findstr /i "qq" ^|findstr /i "!qq!"') do cmdow %%i /cls
:chongfu
cls
title 正在接收手机信息
cmdow /t |findstr /i "!qq!" >nul &&goto kongji
nircmd wait 500
goto chongfu
:kongji
for /f %%a in ('cmdow /t ^|findstr /i "!qq!"') do cmdow %%a /act /max
nircmd setcursor 500 500
nircmd sendmouse right click
nircmd setcursor 510 490
nircmd sendkey a press
rem 清空剪贴板
nircmd clipboard clear
nircmd sendmouse right click
nircmd sendkey c press
nircmd clipboard addfile "chengshu.txt"
set jcb=
set tkyc=
for /f "skip=3" %%a in ('type chengshu.txt ^|findstr /i /v "( http"' ) do set jcb=%%a
del /q chengshu.txt
set tkyc=!jcb!
set tkyc=!jcb! 错误,未配置该代码
if /i "!jcb!" == "kg" goto kg
if /i "!jcb!" == "kpl" set tkyc=!jcb! 酷狗 播放/暂停 &call :chuowu &goto kpl
if /i "!jcb!" == "kup" set tkyc=!jcb! 酷狗 上一曲 &call :chuowu &goto kup
if /i "!jcb!" == "kdo" set tkyc=!jcb! 酷狗 下一曲 &call :chuowu &goto kdo
if /i "!jcb!" == "ckg" set tkyc=!jcb! 结束酷狗 &call :chuowu &goto ckg
nircmd clipboard set "!tkyc!"
call :kiuy
goto chongfu
:kg
start "" "D:\Program Files\KuGou\KuGou2010\KuGoo.exe"
:kgqf
cmdow |findstr /i "KuGoo">nul ||(
nircmd wait 1000
goto kgqf
)
nircmd clipboard set "!jcb! 酷狗音乐 已启动"
call :kiuy
goto chongfu
:ckg
for /f %%a in ('cmdow ^|findstr /i "kugoo"') do cmdow %%a /cls
goto chongfu
:kpl
cmdow /t |findstr /i "kugoo" >nul ||goto chongfu
for /f %%a in ('cmdow /t ^|findstr /i "kugoo"') do cmdow %%a /act
echo CREATEOBJECT^("WSCRIPT.SHELL"^).SENDKEYS "^"+"%%"+"{f5}" >kpl.vbs
echo createobject^("scripting.filesystemobject"^).deletefile wscript.scriptfullname >>kpl.vbs
start "" kpl.vbs
goto chongfu
:kup
cmdow /t |findstr /i "kugoo" >nul ||goto chongfu
for /f %%a in ('cmdow /t ^|findstr /i "kugoo"') do cmdow %%a /act
echo CREATEOBJECT^("WSCRIPT.SHELL"^).SENDKEYS "^"+"%%"+"{left}" >kup.vbs
echo createobject^("scripting.filesystemobject"^).deletefile wscript.scriptfullname >>kup.vbs
start "" kup.vbs
goto chongfu
:kdo
cmdow /t |findstr /i "kugoo" >nul ||goto chongfu
for /f %%a in ('cmdow /t ^|findstr /i "kugoo"') do cmdow %%a /act
echo CREATEOBJECT("WSCRIPT.SHELL").SENDKEYS "^"+"%%"+"{right}" >kdo.vbs
echo createobject^("scripting.filesystemobject"^).deletefile wscript.scriptfullname >>kdo.vbs
start "" kdo.vbs
goto chongfu
:chuowu
nircmd clipboard set "!tkyc!"
:kiuy
rem 以下一行是分辨率为 1024*768 鼠标的位置其它请自行摸索.
nircmd setcursor 500 650
nircmd sendmouse right click
nircmd sendkey p press
nircmd sendkey enter press
rem 结束主控方QQ窗口
for /f %%a in ('cmdow /t ^|findstr /i "!qq!"') do cmdow %%a /cls
nircmd clipboard clear
作者: mgq
时间: 2010-3-7 20:09
再补充一下简单操作:
在手机QQ输入以下命令来控制酷狗,每次只能输入一个命令.
KG 启动酷狗
kpl 酷狗 播放/暂停
kup 酷狗 上一曲
kdo 酷狗 下一曲
ckg 结束酷狗
作者: 000000000000000
时间: 2010-3-7 22:49
飞信机器人实现命令式互动
http://www.hiadmin.com/?p=469
作者: cjiabing
时间: 2010-3-12 02:26
Quote: |
Originally posted by mgq at 2010-3-7 20:09:
再补充一下简单操作:
在手机QQ输入以下命令来控制酷狗,每次只能输入一个命令.
KG 启动酷狗
kpl 酷狗 播放/暂停
kup 酷狗 上一曲
kdo 酷狗 下一曲
ckg 结束酷狗 |
|
见识了,向你学习,可惜我只懂得P!~
作者: cjiabing
时间: 2010-3-12 02:29
@echo off&setlocal enabledelayedexpansion
title OE收件箱监控与主题提取工具
echo.
echo.
echo.
echo OE收件箱监控与主题提取工具
echo 设置选项
echo by cjiabing cmd@xp
echo.
echo.
echo 时间控制:设置程序自动循环的时间。默认是60(约2分钟)。
set /p timec= 时间设置:
if defined timec (goto set) else (set timec=60)
:set
echo.&set /p email= 是否设置自动发送邮件?默认不设置。(y/n):
if %email%==y (call :mail) else (set cmail=echo 不发送邮件)
echo.&echo 执行程序:添加随程序执行的程序。默认是执行收件指令的batbot001.bat。
set /p Performer= 程序设置:
if defined Performer (goto set1) else (goto set2)
exit
:set1
setlocal enabledelayedexpansion
set rdm=%random%
for /f "skip=49 tokens=*" %%a in ('type %0') do echo %%a>>OETool^!rdm^!.bat
echo start ^"^" batbot001^.bat>>OETool^!rdm^!.bat
echo start ^"^" %Performer%>>OETool^!rdm^!.bat
echo ping ^/n 5 127^.0^.1^>nul>>OETool^!rdm^!.bat
echo goto ^:eof>>OETool^!rdm^!.bat
echo.&echo 退出设置并开始执行程序&pause>nul
start "" OETool^!rdm^!.bat&exit
:set2
setlocal enabledelayedexpansion
set rdm=%random%
for /f "skip=49 tokens=*" %%a in ('type %0') do echo %%a>>OETool^!rdm^!.bat
echo start ^"^" batbot001^.bat>>OETool^!rdm^!.bat
echo ping ^/n 5 127^.0^.1^>nul>>OETool^!rdm^!.bat
echo goto ^:eof>>OETool^!rdm^!.bat
echo.&echo 退出设置并开始执行程序&pause>nul
start "" OETool^!rdm^!.bat&exit
:mail
set cmail=call :send
echo.&echo 发件设置:设置程序自动发送邮件。默认不发送。
set /p smtp= SMTP/POP3(如:smtp.qq.com):
set /p sender= 发送邮箱地址(如:
cjiabing@qq.com):
set /p recive= 接收邮箱地址(如:
cjiabing@qq.com):
set /p pword= 发件邮箱密码(如:123456):
set /p subj= 邮件标题(如:
cjiabing@qq.com):
set /p cont= 邮件内容文本路径:(如:C:\body.txt)
goto :eof
@echo off&setlocal enabledelayedexpansion
title OEInboxtool V4.4(通用版)
:start
echo.
echo.
echo OEInboxtool V4.4(通用版)
echo by cjiabing cmd@xp
echo.
echo.
echo.
echo ※需Outlook Express、base64、blat等第三方工具支持。
echo ※Outlook Express邮箱设置为每隔一分钟检查一次新邮件。
echo ※用另外一个邮箱按照标准程式给Outlook Express发邮件。
echo ※只识别标题,不识别内容,且标题的字数和格式受限。
echo ※如发送标题是“shutdown -s -t 0”将使你电脑自动关机。
echo ※使用须自担责任,禁止用于非法目的和行为。
echo.
echo.
ping /n 5 127.0.1>nul
call :try
set jici=0
:loop
set /a jici+=1
echo.
echo ——开始第“%jici%”轮任——
ping /n ^!timec^! 127.0.1>nul
echo.
call :sub
echo.
IF errorlevel 0 (echo 【第“%jici%”轮任务完成,将重新开始任务,退出请直接关闭】) else (echo no^!^!)
echo.
echo ——————————————————————————————————————
if exist newitems.txt call :bbot
if %jici% lss 13 goto loop
taskkill /f /t /im msimn.exe
ping /n 10 127.0.1>nul
goto start
:try
echo.
if exist "%ProgramFiles%\Outlook Express\msimn.exe" start /min "" "%ProgramFiles%\Outlook Express\msimn.exe"
ping /n 5 127.0.1>nul
echo ……初始检测……
if not exist "%ProgramFiles%\Outlook Express\msimn.exe" echo 对不起,找不到你的Outlook Express程序!&ping /n 5 127.0.1>nul&exit
if not exist base64.exe echo 对不起,找不到你的base64.exe程序!&ping /n 5 127.0.1>nul&exit
if not exist "%USERPROFILE%\Local Settings\Application Data\Identities\{1C7149FB-17FD-4ED9-B46C-B7C800F767FF}\Microsoft\Outlook Express\收件箱.dbx" echo 对不起,找不到Outlook Express的收件箱!&ping /n 5 127.0.1>nul&exit
IF errorlevel 0 echo ……初始检测……ok
goto :eof
:sub
echo.
echo ……1、提取邮件……
if exist newitems.txt type newitems.txt>>Readmessageslog.txt
del 收件箱.dbx,firstinbox.txt,editinbox.txt,subjectr.txt,newitems.txt>nul 2>nul 1>nul
if exist "%ProgramFiles%\Outlook Express\msimn.exe" start /min "" "%ProgramFiles%\Outlook Express\msimn.exe"&ping /n 30 127.0.1>nul
setlocal enabledelayedexpansion
for /l %%a in (1,2,10000) do (
set cmt=%%a
if ^!jici^!==^!cmt^! goto cmt1
)
goto cmt2
:cmt1
taskkill /f /t /im msimn.exe
ping /n 10 127.0.1>nul
move "%USERPROFILE%\Local Settings\Application Data\Identities\{1C7149FB-17FD-4ED9-B46C-B7C800F767FF}\Microsoft\Outlook Express\收件箱.dbx" ^!cd^!
goto cmt3
:cmt2
copy "%USERPROFILE%\Local Settings\Application Data\Identities\{1C7149FB-17FD-4ED9-B46C-B7C800F767FF}\Microsoft\Outlook Express\收件箱.dbx" ^!cd^!
:cmt3
ren %cd%\收件箱.dbx firstinbox.txt
for /f "tokens=*" %%a in ('type firstinbox.txt') do echo %%a>>editinbox.txt
for /f "tokens=2*" %%a in ('findstr /i /b "Subject" editinbox.txt') do echo %%a %%b>>subjectr.txt
del firstinbox.txt,editinbox.txt>nul 2>nul 1>nul
if not exist subjectr.txt echo 收件箱没有邮件 &goto :eof
if exist subjectr.txt %cmail%
cd.>mnewitems.txt
findstr /v "^=?gbk?B?" subjectr.txt>>mnewitems.txt
setlocal enabledelayedexpansion
set numt1=0
findstr "^=?gbk?B?" subjectr.txt>nul 2>nul 1>nul &IF errorlevel 0 echo ……提取邮件……ok &goto gbkb
goto :eof
:gbkb
echo.
echo ……2、邮件解码……
if exist subjectr.txt for /f "tokens=*" %%i in ('findstr "^=?gbk?B?" subjectr.txt') do (
set /a numt1+=1
echo ^!numt1^!>nul
set fjmmd=%%i&echo ^!fjmmd:~8,400^!>subjectrjm1^!numt1^!.txt
base64 -d -i subjectrjm1^!numt1^!.txt -o subjectrjm2^!numt1^!.txt
for /f "tokens=*" %%x in (subjectrjm2^!numt1^!.txt) do echo %%x>>mnewitems.txt
del subjectrjm2^!numt1^!.txt,subjectrjm1^!numt1^!.txt
)
IF errorlevel 0 (echo ……邮件解码……ok &goto old) else (echo no^!^!)
if exist subjectr.txt del subjectr.txt
goto :eof
:old
echo ……3、整理邮件……
setlocal enabledelayedexpansion
cd.>newitems.txt
for /f "delims=" %%a in ('sort mnewitems.txt') do (
set xav=%%a
if not ^!xav^! equ ^!vbm^! echo ^!xav^!>>newitems.txt
set vbm=%%a
)
del mnewitems.txt
IF errorlevel 0 (echo ……整理邮件……ok) else (echo ……整理邮件……no)
goto :eof
:send
echo.
echo ……4、发送邮件……
echo 请事先设置一个文本文件,把信件内容写入,再设置路径。你可以使用txt被动发件,也可以通过命令使用bat发件。
::call "%ProgramFiles%\WinRAR\RAR.exe" a "%userprofile%\桌面\123456.rar" npslist.txt pslist.txt runn.txt runr.txt
cd %cd%
blat -install ^!smtp^! ^!sender^!
blat ^!cont^! -to ^!recive^! -u ^!sender^! -base64 -charset Gb2312 -pw ^!pword^! -subject ^!subj^!
::-attach
IF errorlevel 0 (echo ……发送邮件……ok) else (echo ……no)
echo.
ping /n 5 127.0.1>nul
goto :eof
:bbot
echo @echo off>batbot001.bat
echo echo.>>batbot001.bat
echo echo ……我是执行机器人batbot001……>>batbot001.bat
echo echo.>>batbot001.bat
echo echo —————————————————————————————————————>>batbot001.bat
for /f "tokens=*" %%a in (newitems.txt) do echo %%a>>batbot001.bat
echo ping /n 10 127.0.1^>nul>>batbot001.bat
echo exit>>batbot001.bat
start "" batbot001.bat
ping /n 5 127.0.1>nul
goto :eof
[
Last edited by cjiabing on 2010-3-13 at 16:40 ]
作者: cjiabing
时间: 2010-3-12 02:30
目前版本是OEInboxtool v4.4(通用简化版)20100311。做了许多测试和优化,代码就不贴出来了。喜欢“简单就好”。下面介绍下使用方法。
首先,检查你的系统是否安装有Outlook Express,并且是否可以使用。然后设置你的Outlook Express邮箱,收件时间大概设置为一分钟左右。其它的根据你的需要填写。smtp之类的到网上搜索。
其次,设置本工具,首次运行时提示设置选项。
1)设置循环时间。也就是多长时间提取一次收件箱和执行一次命令,缺省默认是60,相当于两三分钟。如果你在线测试的话,你填1进去,估计一分钟就循环一次。时间不是很准。如果你当场测试,循环时间设置为1即可,如果你外出遥控,建议把时间设大点,设成180、300、600等。180相当于三分钟,加上程序本身设置的时间限制,大概是五分钟时间。
2)设置发送邮件。缺省默认是不发送,如果你想计算机反馈信息给你,你需要设置发送邮件选项。但除了此处设置之外,你还需要设置发送邮件的内容,发送邮件的内容你可以通过其它方式获得,具体后面介绍。
3)设置随机程序。也就是跟随程序batbot001.bat执行的程序,这个似乎没什么意义,暂时保留。设置完之后,程序产生一个诸如此类OETool15533.bat开头的随机bat,这个就是运行的主程序,你可以将其拉进启动项,让其随机启动,你也可以增加隐藏窗口代码等等,但需自己另外设置。
第三,测试。将主程序打开,程序开始循环读取收件箱。此时,你用手机(或者另外一台电脑)发送邮件到Outlook Express,程序或自动获取邮件,并将其提取、解码和执行。
发送邮件举例:
发件箱:
123456@qq.com——把该邮箱设置到(智能)手机中,收取邮件将相当于收取短信一样。
收件箱:
987654@163.com——把该邮箱设置到电脑Outlook Express中。
使用手机邮箱(
123456@qq.com)给电脑邮箱(
987654@163.com)发送邮件,邮件主体内容随便乱写,但邮件标题要写清楚,因为对于本工具而言只有标题有意义。如果你用批处理代码写标题,那么这个标题在程序提取到之后是可以直接执行的。
以下几个常用命令可以做邮件标题:
echo 你好啊,我是机器人!~
::将在你的电脑上显示你好啊,我是机器人!~
Start "" "%programfiles%\ttplayer\ttplayer.exe"
::打开千千静听。
for /r c:\ %%a in (ttplayer.exe) do if exist "%%a" start "" "%%a"
::C盘搜索千千静听并执行。
taskkill /f /t /im ttplayer.exe
::关闭千千静听。
Shutdown -s -t 0
::马上关机。
Dir c:\>>body.txt
::查询C盘,并把结果写入文档body.txt(如果设置发送邮件并将body.txt设置为发送内容,你将收到查询结果)
Tasklist>>body.txt
::查看当前进程并写入文档body.txt(如果设置了发送邮件,并将body.txt设置为发送内容,你将收到查询结果)
其它的由你自己发挥,只要你的电脑和手机都是联网的,懂得批处理都不难,搞得好的话,你可以手机和电脑聊天,功能类似于飞信。而我的作用就是当我外出而电脑没关时,我可以用手机远程关机。
为了正常使用,你需要下载第三方工具base64和blat,并放在程序所在目录,否则程序可能无法正常使用。本篇为原创,转载请注明出处。
http://hi.baidu.com/cjiabing 甲兵时代,为你服务。
作者: jawbin
时间: 2010-3-12 22:33
很复杂!
不如弄个 asp 服务器,例如 netbox?