matlab 关机函数,微博关机的MATLAB实现

差不多半个月前,在网上看到一篇文章,介绍了如何用MATLAB实现发一条微博来关机的功能。仔细一点说来,就是要实现这样一个功能:只要我的MATLAB的这个M文件正在运行,那么当我在自己微博上发布“关机”命令的时候,电脑便会关机。看了人家的思路之后,不由得赞叹他人的创意。下面我先把这段代码贴出来:

cmd="关机";

counter=0;

r=[];

%登入微博后,在 http://app.weibo.com/tool/weiboshow 页面最下方找到src链接

src='http://widget.weibo.com/weiboshow/index.php?language=&width=0&height=550&fansRow=2&ptype=1&speed=0&skin=1&isTitle=1&noborder=1&isWeibo=1&isFans=1&uid=2022255405&verifier=f0469716&dpc=1';

while 1

try

s=urlread(src);

r=regexp(s,cmd,'match');

catch

disp('网络连接问题');

end

if ~isempty(r)

disp('呵呵!!!!!收到待机指令');

%%关机

!shutdown -s -t 0

break;

else

clc

counter=counter+1;

disp(['没有收到关闭指令+' num2str(counter)]);

end

pause(5);

end

分析这段代码,我们可以很容易地知道作者的思路:

在运行M文件之后,程序便不断查询src这个字符串所代表的页面,将其上的HTML作为字符串传到s变量里面,然后我们利用regexp函数查看这段HTML代码里面有没有我们预定好的“关机指令”,也就是cmd所代表的字符串。如果有的话,调用DOS命令进行关机,如果没有就返回继续读取页面内容。可以说,思路是很简单的。

但是如果真的使用的时候,问题不可避免的来了。那就是如果我先前发送过“关机”指令,那么“关机”这两个字就会存在src页面HTML中,所以这段程序“只能用一次”。。。为了解决这个问题,我们只好在运行程序前,先删除自己微博中原来所有带有“关机”字眼的微博,这显然是不好的,所以我想到是不是可以给它加上关机时间的限制呢?

就像下面这样来实现关机:

0818b9ca8b590ca3270a3433284dd417.png

这样做我们只需要给代码很小的改动,只需要添加判别“关机指令”是否为合法的格式,关机指令后的“时间”是否为未来的某一时间即可。到了这个时间,我们再调用DOS命令进行关机操作。所以,我补充了下面的代码:

cmd='关机';

counter=0;

r=[];

%登入微博后,在 http://app.weibo.com/tool/weiboshow 页面最下方找到src链接

%src='http://widget.weibo.com/weiboshow/index.php?language=&width=0&height=550&

%fansRow=2&ptype=1&speed=0&skin=1&isTitle=1&noborder=1&isWeibo=1&isFans=1&uid=2022255405&verifier=f0469716&dpc=1';

src='http://widget.weibo.com/weiboshow/index.php?language=&width=0&height=550&fansRow=2&ptype=1&speed=0&skin=1&isTitle=1&noborder=1&isWeibo=1&isFans=1&uid=2629935075&verifier=5970ebca&dpc=1';

while 1

try

s=urlread(src);

s

r=regexp(s,cmd,'match');

catch

disp('网络连接问题');

end

if ~isempty(r)

[startIndex,endIndex]=regexp(s,cmd);

nowdate=datestr(now,26);

nowhourmin=datestr(now,15);

time=s(endIndex+1:endIndex+16);

time

nowhourmin

date=time(1:10);

hourmin=time(12:16);

if strcmp(date,nowdate)&&strcmp(hourmin,nowhourmin)

disp('呵呵!!!!!收到待机指令');

save;

!shutdown -s -t 0

break;

else

counter=counter+1;

disp(['时间不对+' num2str(counter)]);

end

%%关机

!shutdown -s -t 0

else

counter=counter+1;

disp(['没有收到关闭指令+' num2str(counter)]);

end

pause(0.5);

end

这样就可以在给定的时间关闭计算机了~~~不过使用时候要注意指令格式一定要正确:关机2013/09/12 09:34

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值