欢迎来到天天文库
浏览记录
ID:50843119
大小:222.50 KB
页数:4页
时间:2020-03-15
《用手机对电脑进行远程关机.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、用手机对电脑进行远程关机 第一个问题就是手机和计算机通信问题,这个确实比较棘手。首先计算机在内网,手机的ip也是随机分配,两者要实现无缝对接,必须有一个外网IP的服务器,手机和计算机的客户端都主动登录到这个服务器上,然后才能对接。这个,搭个服务器太麻烦(希望IPV6能赶快普及啊~~)。其实,仔细想想我们可以利用现有的手机和计算机的点对点通信工具,比如飞信,QQ之类的,还有就是使用邮件。 使用邮件的解决方案就是,通过手机给自己发送一封邮件,然后再计算机上跑一个守护进程,定期扫描邮箱,并去读邮件,根据主题(例
2、如:关机?)再实施关机动作。可以使用Python实现,工作量应该不是很大(MAX:3hours).这个缺点就是实时性不太好,还是使用现有的即时通信工具实时性好点。 我选择的方案就是使用QQ,你需要注册两个QQ,一个是你的计算机端上运行的QQ,表示为QQC吧。另一个就是你的手机上运行的QQ,表示QQT吧。在QQC上给QQT好友命名,命名尽量复杂点,这样可以避免一些事故,具体原因后面看了就会知道。这里选择命名为“RemotingShutDownWorker”,然后把QQC设置为弹窗模式(就是有一条新的消息后,弹出发送
3、消息者的窗口)。这样QQT向QQC发送一个消息之后就会弹出一个窗体,窗体的标题就是“RemotingShutDownWorker”。 基于这一点,应该首先这样一个程序,它定期扫描当前屏幕最顶层的所有窗体的标题,如果发现有标题为“RemotingShutDownWorker”时执行关机操作。选择编程语言为C语言,编程环境是VS2010,使用的模板为WIN32CONSOLEAPPLICATION。 另外还需要注意的几个地方就是:l 程序运行过程中不需要显示窗体l 程序应该能够开机自启l 程序应该每间隔一段时间扫
4、描一次,否则CPU亚历山大 第一点,比较容易实现,在程序中添加一句“#pragmacomment(linker,"/subsystem:"windows"/entry:"mainCRTStartup"")”就可以了。第二点,自启的话也很简单,把这个可执行程序的快捷方式拷贝到Windows启动文件夹中就哦了。第三点,调用Sleep函数,设置一个间隔时间(例如:5秒?)。 把代码贴在下面,仅供参考~1./* 2. 3.*Author:lichao 4. 5.*Date:01-14-2012 6
5、. 7.*Description:Shutdown the computer remotely by mobile phone 8. 9.*/ 10. 11.#include 12. 13.#include 14. 15.#define TITLE_LENGTH 256 16. 17.#define EXIT_SUCCESS 0 18. 19.#pragma comment(linker,"/subsystem:"windows" /entry:"mainCRTStartup
6、"") 20. 21.BOOL CALLBACK lpMyEnumFunc(HWND hwnd, LPARAM lParam) 22. 23.{ 24. 25. TCHAR szTitle[TITLE_LENGTH]; 26. 27. GetWindowTextW(hwnd,szTitle,TITLE_LENGTH); 28. 29. if( 0==wcscmp(szTitle,TEXT("RemotingShutDownWorker"))) 30. 31. { 32. 33. B
7、OOL *pDetected=(BOOL *)lParam; 34. 35. *pDetected=true; 36. 37. return 0; 38. 39. } 40. 41. return 1; 1. 2.} 3. 4.int main() 5. 6.{ 7. 8. BOOL bDetected=false; 9. 10. BOOL *pDetected=&bDetected; 11. 12. while(!bDetected) 13. 14. {
8、15. 16. EnumWindows(lpMyEnumFunc,(LPARAM)pDetected); 17. 18. Sleep(5000); 19. 20. } 21. 22. //::MessageBoxW(NULL,TEXT("将要关机"),TEXT("远程关机"),
此文档下载收益归作者所有