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

2023-05-16

PS:本人一月份写的文章,贴在这里。

      昨天真是奔波的一天,中午烤肉逛街下午寿司看电影(陪老婆)。今天中午又是麻辣诱惑。额,不争气的肠胃果然导致我拉肚子了。不过,话说昨天下午在石景山万达吃完寿司后,看了《金陵十三钗》倒是颇有感触,这部电影(又名《×××保卫战》)旗帜鲜明的打出了这样口号:让×××先走。老谋子的电影越来越不行了,首先是不知道这部电影的主题是什么?然后是不知道这部电影的主角是什么?最后但也是最重要的一点就是不知道这部电影到底是哪个国家拍的?片头不少人名后面都缀着不同的国家,如日本,美国,中国等等,一片混乱。看点就是开头不多的战争场面,枪声炮声做的很逼真了,完全超越了以前战争场面的那种稚气,还有就是石景山万达国际影城的音响效果确实不错,好几次枪声都nearly shock the shit out of me(哈哈,开个低俗的玩笑)。影片中佟大为的华丽的怎么看都像是根据《这个杀手不太冷》这部电影结尾时杀手阵亡的剧情模仿的以衬托个人主义重复滴斑驳了日本人死亡人数:中国人死亡人数1:10的不争气历史事实啊。恩,电影不错,让我有收获~

         晚上回来的时候,没赶上最后一班地铁,导致我和老婆租个黑的回来,被狠狠的blackmail了几刀,哎,伤不起。回来的时候,直接回的大运村,实验室都没来得及回去,所以电脑也没关。想起导师平时让我们注意关机,颇感愧疚,昨晚回去后想了会,决定实现用手机远程关掉电脑的一个程序(总算扯到主题了~~)。

     第一个问题就是手机和计算机通信问题,这个确实比较棘手。首先计算机在内网,手机的ip也是随机分配,两者要实现无缝对接,必须有一个外网IP的服务器,手机和计算机的客户端都主动登录到这个服务器上,然后才能对接。这个,搭个服务器太麻烦(希望IPV6能赶快普及啊~~)。其实,仔细想想我们可以利用现有的手机和计算机的点对点通信工具,比如飞信,QQ之类的,还有就是使用邮件。

     使用邮件的解决方案就是,通过手机给自己发送一封邮件,然后再计算机上跑一个守护进程,定期扫描邮箱,并去读邮件,根据主题(例如:关机?)再实施关机动作。可以使用Python实现,工作量应该不是很大(MAX:3 hours).这个缺点就是实时性不太好,还是使用现有的即时通信工具实时性好点。

     我选择的方案就是使用QQ,你需要注册两个QQ,一个是你的计算机端上运行的QQ,表示为QQC吧。另一个就是你的手机上运行的QQ,表示QQT吧。在QQC上给QQT好友命名,命名尽量复杂点,这样可以避免一些事故,具体原因后面看了就会知道。这里选择命名为“RemotingShutDownWorker”,然后把QQC设置为弹窗模式(就是有一条新的消息后,弹出发送消息者的窗口)。这样QQTQQC发送一个消息之后就会弹出一个窗体,窗体的标题就是“RemotingShutDownWorker”。

     基于这一点,应该首先这样一个程序,它定期扫描当前屏幕最顶层的所有窗体的标题,如果发现有标题为“RemotingShutDownWorker”时执行关机操作。选择编程语言为C语言,编程环境是VS2010,使用的模板为WIN32 CONSOLE APPLICATION

    另外还需要注意的几个地方就是:

l  程序运行过程中不需要显示窗体

l  程序应该能够开机自启

l  程序应该每间隔一段时间扫描一次,否则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<windows.h> 
  12.  
  13. #include<stdio.h> 
  14.  
  15. #define TITLE_LENGTH 256 
  16.  
  17. #define EXIT_SUCCESS 0 
  18.  
  19. #pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"") 
  20.  
  21. BOOL CALLBACK lpMyEnumFunc(HWND hwnd, LPARAM lParam) 
  22.  
  23.  
  24.     TCHAR szTitle[TITLE_LENGTH]; 
  25.  
  26.     GetWindowTextW(hwnd,szTitle,TITLE_LENGTH); 
  27.  
  28.     if( 0==wcscmp(szTitle,TEXT("RemotingShutDownWorker"))) 
  29.  
  30.     { 
  31.  
  32.         BOOL *pDetected=(BOOL *)lParam; 
  33.  
  34.         *pDetected=true
  35.  
  36.         return 0; 
  37.  
  38.     } 
  39.  
  40.     return 1; 
  41.  
  42.  
  43. int main() 
  44.  
  45.  
  46.     BOOL bDetected=false
  47.  
  48.     BOOL *pDetected=&bDetected; 
  49.  
  50.     while(!bDetected) 
  51.  
  52.     { 
  53.  
  54.         EnumWindows(lpMyEnumFunc,(LPARAM)pDetected); 
  55.  
  56.         Sleep(5000); 
  57.  
  58.     } 
  59.  
  60.     //::MessageBoxW(NULL,TEXT("将要关机"),TEXT("远程关机"),MB_OK); 
  61.  
  62.     system("shutdown -s -t 20"); 
  63.  
  64.     return EXIT_SUCCESS; 
  65.  

     1是运行效果截图,远程关机测试很顺利。最后一个问题就是怎么通过程序把显示器关掉,这个貌似必须通过机械开关关掉,虽然远程关机以后,由于屏幕不在收到主机箱发来的信号会自动进入节电模式,电流估计小的和充电器没有工作情况下差不多,所以应该不会浪费多少瓦特。但是,确实是个应该解决的问题,这个有时间再搞搞~~,先不玩了,赶快赶一个导师布置的并行算法。。。。。。

         

效果图

1:远程关机效果图

转载于:https://blog.51cto.com/hipercomer/789433

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用手机对电脑进行远程关机 的相关文章

随机推荐

  • 令牌桶算法限流

    限流 限流是对某一时间窗口内的请求数进行限制 xff0c 保持系统的可用性和稳定性 xff0c 防止因流量暴增而导致的系统运行缓慢或宕机 常用的限流算法有令牌桶和和漏桶 xff0c 而Google开源项目Guava中的RateLimiter
  • 关机一直显示正在关闭服务器,电脑关机后,显示正在关机,但等半天也关不了 怎么办...

    电脑关机后 xff0c 显示正在关机 xff0c 但等半天也关不了 怎么办以下文字资料是由 历史新知网www lishixinzhi com 小编为大家搜集整理后发布的内容 xff0c 让我们赶快一起来看一下吧 xff01 电脑关机后 xf
  • 一只老鸟嵌入式工程师的血泪史!

    作为一名在嵌入式行业摸爬滚打许久的老鸟 xff0c 回想自己的经历之路 xff0c 那么漫长可又仿佛近在眼前 随着学生的日益增多 xff0c 偶尔之间 xff0c 会想起自己曾经的一个经历 此文仅献给那些刚刚踏上硬件之路和还在徘徊的同学们
  • 程序员的“菜鸟心态综合症”

    第3章 程序员的 菜鸟心态综合症 清华大学出版社 Java程序员 xff0c 上班那点事儿 作者 xff1a 钟声 第3章部分节选 人的一生会遇到很多挫折 xff0c 尤其是我们刚刚参加工作初期的年轻人 这个人生阶段往往会出现各种各样的处世
  • sc.textFile("file:///home/spark/data.txt") Input path does not exist解决方法——submit 加参数 --master local...

    use this val data 61 sc textFile 34 home spark data txt 34 this should work and set master as local Input path does not
  • mongodb查询数据库中某个字段中的值包含某个字符串的方法

    正则表达式最能解决 xff1a 例如 xff1a db getCollection 39 news 39 find 39 content 39 120 77 215 34 9999 这里主要是注意正则表达式要写对 xff0c 该转义的注意转
  • MATLAB 求两个矩阵的 欧氏距离

    欧式距离定义 xff1a 欧式距离公式有如下几种表示方法 xff1a MATLAB 求两个矩阵的 欧氏距离 xff1a 如果定义两个矩阵分别为a b 则定义c 61 a b 2 所求距离d 61 sqrt sum c
  • Vmware虚拟机磁盘空间不足

    Vmware虚拟机清理磁盘空间 遇到一个问题就是虚拟机中的磁盘空间越来越小 xff0c 即使把文件删除以后 xff0c 磁盘空间还是无法释放 这主要是vmware中的缓存没有清除 在使用vmware虚拟机的时候 xff0c 经常会在主机和虚
  • 技术面试感觉什么都会,面试官一问回答不上来怎么办?

    又到了一年金三银四 xff0c 回想到很多年前我刚参加工作时的面试经历 xff0c 那时都是呆呆地等着面试官问问题 xff0c 被问到一些自己并不熟悉的问题时要不就是思考半天也切不中要点 xff0c 要不就只能无奈地回答并不清楚了 其实不管
  • 强化学习遭遇瓶颈!分层RL将成为突破的希望

    本文作者是法国里尔大学Inria SequeL团队的博士生 xff0c Yannis Flet Berliac xff0c 他在本文中对分层强化学习 xff08 HRL xff09 的研究进行了总结 xff0c 文章首先回顾了强化学习 xf
  • 如何免费下载百度文库文章的三种方法

    百度文库中的资源很丰富 xff0c 但那里的文章不能复制 xff0c 而且有的要下载币 给 大家总结下免费下载复制百度文库的三种方法 第一种 利用百度快照 我们在百度文库中找到自己想要的文章后 xff0c 直接把那篇文章的地址复制 xff0
  • 434个H5游戏源码

    各种类型HTML5游戏 xff0c 界面和JS均可供项目参考 下面是下载地址 转载于 https blog 51cto com 12130120 2374590
  • iOS 左右滑动 手势 响应方法

    1 64 property nonatomic strong UISwipeGestureRecognizer leftSwipeGestureRecognizer 64 property nonatomic strong UISwipeG
  • 一道c语言编程题

    一道c语言编程题 将一个5 5的矩阵中最大的元素放在中心 xff0c 四个角分别放四个最小的元素 xff08 顺序从左到右 xff0c 从上到下顺序依次从小到大存放 xff09 xff0c 写一函数实现之 xff0c 用main函数调用 i
  • print(1,2,3,sep=':')的输出结果是?

    print 1 2 3 sep 61 39 39 1 2 3 第一个参数 要打印的值 第二个参数sep表示要打印多个值时 各值的分割方式 默认空格 第三个参数end表示结尾的方式 默认 n 转载于 https www cnblogs com
  • S3. Android 消息推送

    概要 消息推送 转载于 https www cnblogs com zlxyt p 11133181 html
  • Android camera2 回调imagereader 从Image拿到YUV数据转化成RGB,生成bitmap并保存

    ImageUtil java import android graphics ImageFormat import android media Image import android os Build import android sup
  • C语言中字符串结束符'\0'

    本质 39 0 39 就是8位的00000000 xff0c 因为字符类型中并没有对应的这个字符 xff0c 所以这么写 39 0 39 就是 字符串结束标志 39 0 39 是转义字符 xff0c 意思是告诉编译器 xff0c 这不是字符
  • SLAM中双目三角化

    双目三角化 形式1 xff1a 在等式左边同时乘 x 1 x 1 x 1 和
  • 用手机对电脑进行远程关机

    PS 本人一月份写的文章 xff0c 贴在这里 昨天真是奔波的一天 xff0c 中午烤肉逛街下午寿司看电影 xff08 陪老婆 xff09 今天中午又是麻辣诱惑 额 xff0c 不争气的肠胃果然导致我拉肚子了 不过 xff0c 话说昨天下午