|
cjiabing
新手上路
积分 19
发帖 18
注册 2009-1-19
状态 离线
|
『楼 主』:
[求助]经过批处理用手机控制电脑
一直想弄个手机和电脑互动的东东,可能力有限,发个帖,大家一起来研究研究吧。
大概构思是这样的,出门的时候忘记关电脑了,但最近三天可能不回家,想通过手机发送一条指令给电脑,说,电脑,我不回家,你关机睡觉吧。批处理如何实现此功能?
电脑和电脑之间可以通过浏览器、聊天工具等方式通信,手机和手机之间可以通过手机号码通信。手机和电脑之间通过什么方式通信呢?
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 ]
|
|
2010-2-28 21:46 |
|
|
jarry0932
初级用户
积分 128
发帖 122
注册 2009-9-21
状态 离线
|
|
2010-3-1 00:37 |
|
|
lotus516
高级用户
论坛上抢劫的
积分 551
发帖 246
注册 2006-9-21
状态 离线
|
『第
3 楼』:
回楼上,这个是完全可能的!
用邮件比较好实现,因为电脑上分析QQ和飞信的包是比较难的,而邮件可以用主题(关键字)来实现,是比较容易的!
再加上远程开关机,这完全是智能化的电脑了!
|
|
2010-3-1 11:24 |
|
|
lotus516
高级用户
论坛上抢劫的
积分 551
发帖 246
注册 2006-9-21
状态 离线
|
|
2010-3-1 11:37 |
|
|
cjiabing
新手上路
积分 19
发帖 18
注册 2009-1-19
状态 离线
|
『第
5 楼』:
只是登陆邮箱没有用呢,无法读取新邮件,我现在在研究outlook,遇到个问题,就是把htm转换成txt,不好弄
|
|
2010-3-1 16:26 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
|
2010-3-1 21:04 |
|
|
cjiabing
新手上路
积分 19
发帖 18
注册 2009-1-19
状态 离线
|
『第
7 楼』:
呵呵,那个太复杂了,我直接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解码,没有成功使用过,楼上的给个方案啊?
|
|
2010-3-1 22:33 |
|
|
zlsanhong
新手上路
积分 15
发帖 14
注册 2010-2-26
状态 离线
|
|
2010-3-5 23:29 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
|
2010-3-5 23:45 |
|
|
zlsanhong
新手上路
积分 15
发帖 14
注册 2010-2-26
状态 离线
|
『第
10 楼』:
引用:
原帖由 lxzzr 于 2010-3-4 13:44 发表
可以选择IE等工具,你的手机可以上网吧??在自己的电脑上架设个小网站,然后......(我用N70时试过,效果还可以...)
BOSS 请问用的是IIS假设服务器么 ? 然后怎么搞呢。。这是个最好的输入方式。。。 最好是能用手机将文字发送并保存为TXT文件到电脑上。。如此一来。设个批处理在电脑上一直运行。 当发现这个文件的时候。。。哈哈。。就处理相应的批处理。。妞啊。。。
关键是如何将文字用手机发送并保存到电脑上呢?
|
|
2010-3-7 11:30 |
|
|
mgq
中级用户
积分 206
发帖 103
注册 2008-5-6 来自 广东 肇庆
状态 离线
|
『第
11 楼』:
其实用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
|
|
2010-3-7 20:02 |
|
|
mgq
中级用户
积分 206
发帖 103
注册 2008-5-6 来自 广东 肇庆
状态 离线
|
『第
12 楼』:
再补充一下简单操作:
在手机QQ输入以下命令来控制酷狗,每次只能输入一个命令.
KG 启动酷狗
kpl 酷狗 播放/暂停
kup 酷狗 上一曲
kdo 酷狗 下一曲
ckg 结束酷狗
|
|
2010-3-7 20:09 |
|
|
000000000000000
初级用户
积分 49
发帖 42
注册 2009-11-26
状态 离线
|
|
2010-3-7 22:49 |
|
|
cjiabing
新手上路
积分 19
发帖 18
注册 2009-1-19
状态 离线
|
『第
14 楼』:
Quote: | Originally posted by mgq at 2010-3-7 20:09:
再补充一下简单操作:
在手机QQ输入以下命令来控制酷狗,每次只能输入一个命令.
KG 启动酷狗
kpl 酷狗 播放/暂停
kup 酷狗 上一曲
kdo 酷狗 下一曲
ckg 结束酷狗 |
|
见识了,向你学习,可惜我只懂得P!~
|
|
2010-3-12 02:26 |
|
|
cjiabing
新手上路
积分 19
发帖 18
注册 2009-1-19
状态 离线
|
『第
15 楼』:
@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 ]
|
|
2010-3-12 02:29 |
|