- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用手机对电脑进行远程关机
用手机对电脑进行远程关机
?????ip也是随机分配,两者要实现无缝对接,必须有一个外网IP的服务器,手机和计算机的客户端都主动登录到这个服务器上,然后才能对接。这个,搭个服务器太麻烦(希望IPV6能赶快普及啊~~)。其实,仔细想想我们可以利用现有的手机和计算机的点对点通信工具,比如飞信,QQ之类的,还有就是使用邮件。
?????使用邮件的解决方案就是,通过手机给自己发送一封邮件,然后再计算机上跑一个守护进程,定期扫描邮箱,并去读邮件,根据主题(例如:关机?)再实施关机动作。可以使用Python实现,工作量应该不是很大(MAX:3 hours).这个缺点就是实时性不太好,还是使用现有的即时通信工具实时性好点。
?????我选择的方案就是使用QQ,你需要注册两个QQ,一个是你的计算机端上运行的QQ,表示为QQC吧。另一个就是你的手机上运行的QQ,表示QQT吧。在QQC上给QQT好友命名,命名尽量复杂点,这样可以避免一些事故,具体原因后面看了就会知道。这里选择命名为“RemotingShutDownWorker”,然后把QQC设置为弹窗模式(就是有一条新的消息后,弹出发送消息者的窗口)。这样QQT向QQC发送一个消息之后就会弹出一个窗体,窗体的标题就是“RemotingShutDownWorker”。
?????基于这一点,应该首先这样一个程序,它定期扫描当前屏幕最顶层的所有窗体的标题,如果发现有标题为“RemotingShutDownWorker”时执行关机操作。选择编程语言为C语言,编程环境是VS2010,使用的模板为WIN32 CONSOLE APPLICATION。
????另外还需要注意的几个地方就是:
?? 程序运行过程中不需要显示窗体
?? 程序应该能够开机自启
?? 程序应该每间隔一段时间扫描一次,否则CPU亚历山大
?????? 第一点,比较容易实现,在程序中添加一句“#pragma comment(linker,/subsystem:\windows\ /entry:\mainCRTStartup\)”就可以了。第二点,自启的话也很简单,把这个可执行程序的快捷方式拷贝到Windows启动文件夹中就哦了。第三点,调用Sleep函数,设置一个间隔时间(例如:5秒?)。
???????? 把代码贴在下面,仅供参考~
/*?
?
*Author:lichao?
?
*Date:01-14-2012?
?
*Description:Shutdown?the?computer?remotely?by?mobile?phone?
?
*/?
?
#includewindows.h?
?
#includestdio.h?
?
#define?TITLE_LENGTH?256?
?
#define?EXIT_SUCCESS?0?
?
#pragma?comment(linker,/subsystem:\windows\?/entry:\mainCRTStartup\)?
?
BOOL?CALLBACK?lpMyEnumFunc(HWND?hwnd,?LPARAM?lParam)?
?
{?
?
????TCHAR?szTitle[TITLE_LENGTH];?
?
????GetWindowTextW(hwnd,szTitle,TITLE_LENGTH);?
?
????if(?0==wcscmp(szTitle,TEXT(RemotingShutDownWorker)))?
?
????{?
?
????????BOOL?*pDetected=(BOOL?*)lParam;?
?
????????*pDetected=true;?
?
????????return?0;?
?
????}?
?
????return?1;?
?
}?
?
int?main()?
?
{?
?
????BOOL?bDetected=false;?
?
????BOOL?*pDetected=bDetected;?
?
????while(!bDetected)?
?
????{?
?
????????EnumWindows(lpMyEnumFunc,(LPARAM)pDetected);?
?
????????Sleep(5000);?
?
????}?
?
????//::MessageBoxW(NULL,TEXT(将要关机),TEXT(远程关机),MB_OK);?
?
????system(shutdown?-s?-t?20);?
?
????return?EXIT_SUCCESS;?
?
}?
?????图1是运行效果截图,远程关机测试很顺利。最后一个问题就是怎么通过 程序把显示器关掉,这个貌似必须通过机械开关关掉,虽然远程关机以后,
文档评论(0)