为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

用手机对电脑进行远程关机

2018-09-15 5页 doc 37KB 7阅读

用户头像

is_833902

暂无简介

举报
用手机对电脑进行远程关机用手机对电脑进行远程关机 用手机对电脑进行远程关机 第一个问题就是手机和计算机通信问题,这个确实比较棘手。首先计算机在内网,手机的ip也是随机分配,两者要实现无缝对接,必须有一个外网IP的服务器,手机和计算机的客户端都主动登录到这个服务器上,然后才能对接。这个,搭个服务器太麻烦(希望IPV6能赶快普及啊~~)。其实,仔细想想我们可以利用现有的手机和计算机的点对点通信工具,比如飞信,QQ之类的,还有就是使用邮件。 使用邮件的解决方案就是,通过手机给自己发送一封邮件,然后再计算机上跑一个守护进程,定期扫描邮箱,并去读邮件,...
用手机对电脑进行远程关机
用手机对电脑进行远程关机 用手机对电脑进行远程关机 第一个问题就是手机和计算机通信问题,这个确实比较棘手。首先计算机在内网,手机的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秒,)。 把代码贴在下面,仅供参考~ 1. /* 2. 3. *Author:lichao 4. 5. *Date:01-14-2012 6. 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:\"mainC RTStartup\"") 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. BOOL *pDetected=(BOOL *)lParam; 34. 35. *pDetected=true; 36. 37. return 0; 38. 39. } 40. 41. return 1; 42. 43. } 44. 45. int main() 46. 47. { 48. 49. BOOL bDetected=false; 50. 51. BOOL *pDetected=&bDetected; 52. 53. while(!bDetected) 54. 55. { 56. 57. EnumWindows(lpMyEnumFunc,(LPARAM)pDetected); 58. 59. Sleep(5000); 60. 61. } 62. //::MessageBoxW(NULL,TEXT("将要关机"),TEXT("远程关机63. "),MB_OK); 64. 65. system("shutdown -s -t 20"); 66. 67. return EXIT_SUCCESS; 68. 69. } 图1是运行效果截图,远程关机测试很顺利。最后一个问题就是怎么通过 程序把显示器关掉,这个貌似必须通过机械开关关掉,虽然远程关机以后,由于屏幕不在收到主机箱发来的信号会自动进入节电模式,电流估计小的和充电器没有工 作情况下差不多,所以应该不会浪费多少瓦特。但是,确实是个应该解决的问题,这个有时间再搞搞~~,先不玩了,赶快赶一个导师布置的并行算法。。。。。。 图1:远程关机效果图
/
本文档为【用手机对电脑进行远程关机】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索