mfc oninitdialog 中的hwnd == null_项目中碰到的稀奇古怪的需求1

本文介绍了在MFC应用中如何应对一些特殊需求,如监测USB设备的连接状态,实现软件内USB设备的拔插操作,监控系统网络连接,以及控制窗口的隐藏和显示。同时,还涉及程序异常检测和控制其他程序的运行状态。通过示例代码,展示了如何检查系统是否能ping通特定服务器。
摘要由CSDN通过智能技术生成

95adab6172490d8e635510765fd9cec0.png

在一些实际项目中,经常会遇到一些稀奇古怪的需求,之前做过这样一个项目:在一个移动的车上有一台运行着win10系统的笔记本,这台笔记本通过网线连接着两个网络摄像头,另外笔记本上还插着一个usb接口的intel神经网络计算棒。程序做的是从摄像头采集图像然后使用神经网络计算棒做智能分析,因为测试环境在一个仓库,而研发和测试人员都在办公室,在测试过程中偶尔会出现摄像头无法连接或者神经网络无法推理的问题,测试人员和研发人员吵的不可开交,测试认为不管是断网还是计算棒被拔出系统都应该能监测到并记录到日志或者给使用者提示,所以这里催生出一个新的需求:

(1)监测某个usb设备是否在插上。

(2)可否通过软件实现usb设备的重新拔插操作。

(3)监控系统是否可以连接某个服务器。

(4)隐藏或者显示某个窗口。(这个要求比较奇葩,因为做开发的那个垃圾用python的,他不会直接把命令行窗口隐藏掉,另外还想着从窗口上查看运行状况。)

(5)程序莫名死了,但是进程并没有退出,他们还找不到原因,所以还需要个程序可以监控另一个程序的工作状态并且控制其开启和关闭。

拿到这么个奇葩的需求,我是崩溃的,尽管这是个很垃圾的项目,但既然领导这么说了,咱们只能照做,工作中别人做不出来的咱能做不出来,效果就达到了,管他呢。我只好仿照着360安全卫士的那种浮动图标形式,祭出了我多年未用的MFC来编写界面。界面的程序就不传了,这里仅把程序控制,usb设备监测、网络状态监测以及窗口显示隐藏的部分展示如下:

#pragma once
#include <Winsock2.h>
#include "iphlpapi.h" 
#include<tchar.h>
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
#pragma comment(lib,"Iphlpapi.lib")
#pragma comment(lib,"Ws2_32.lib")
typedef HANDLE(WINAPI* ICMPCREATEFILE)(VOID);
typedef INT(WINAPI* ICMPCLOSEHANDLE)(HANDLE);
typedef DWORD(WINAPI* ICMPSENDECHO)(HANDLE, DWORD, LPVOID, WORD, PIP_OPTION_INFORMATION, LPVOID, DWORD, DWORD);

//定义三个指针函数   
ICMPCREATEFILE pIcmpCreateFile;
ICMPCLOSEHANDLE pIcmpCloseHandle;
ICMPSENDECHO pIc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值