一种远程监测计算机硬件信息的方法与流程

文档序号:16247096发布日期:2018-12-11 23:40阅读:740来源:国知局
一种远程监测计算机硬件信息的方法与流程

本发明是一种远程监测计算机硬件信息的方法,属于计算机技术领域。

背景技术

一套完整的计算机系统离不开软件和各类硬件,硬件工作过程中会产生热量,如果温度过高则会影响硬件的工作效率乃至损害硬件寿命甚至烧毁硬件,因此,市场上出现了读取硬件信息的软件,但通常存在以下问题:1、读取的信息误差较大2、产品多依赖于网络3、不能直观的反映出多核处理器的传感器数值4、不支持远程查看,对于计算机管理员有极大的局限性5、部分该类软件在运行时会极大的影响计算机性能。



技术实现要素:

针对现有技术存在的不足,本发明目的是提供一种远程监测计算机硬件信息的方法,以解决上述背景技术中提出的问题。

为了实现上述目的,本发明是通过如下的技术方案来实现:一种远程监测计算机硬件信息的方法,包括以下步骤:

服务端程序实现;

pc端程序的实现;

pe端程序的实现。

进一步地,服务端程序实现的具体步骤为:通过使用c++语言编写的驱动程序winring0.sys实现与硬件的通讯,服务端程序在运行时,会首先装载winring0.sys以获得必要的系统权限,在winring0.sys装载成功后,以驱动通信的方式要求winring0.sys读取msr寄存器的值,并将读取到的二进制数据以十六进制的形式返回到内存变量中,之后服务端程序将十六进制数据转换为ascii码文本,再以json的形式推送到http服务端口,同时服务端程序会调用系统wmic指令,实现读取其他硬件信息的方法,同样以json的形式推送到http服务端口,服务端设置有一个计时器,用以保证服务端持续工作。

进一步地,其他硬件为cpu、主板、硬盘、显卡、内存以及电源中的一种。

进一步地,pc端程序的实现的具体步骤为:pc端程序以易语言程序为基础,采用了skinsharp作为交互界面引擎,配合系统支持库,pc端程序在启动时,会首先创建多线程任务,以便同时处理多条任务,pc端程序首先会检查系统是否已经运行了服务端,如果没有运行,则启动服务端,等待服务端返回数据,如果已经运行了服务端,则直接访问服务端提供的8085端口获取相应的数据,确保服务端运行成功后,pc端会生成一个二维码,二维码的内容为加密的字符串,用于pe端程序连接到服务端,pc端程序的主界面留有信息展示的面板,在获取到信息后会实时刷新到界面,在pc端结束运行时,会同时杀死服务端进程,以释放占用的系统资源。

进一步地,pe端程序的实现的具体步骤为:由于pe环境的特殊性,pe端软件在运行时会首先检查网络的链接状态和类型,并以toast的形式提示用户当前的网络链接状态和链接类型,在确保能够访问网络后,程序会生成主界面,在用户触发相应的指令后,启动摄像机,扫描二维码,在发现二维码后,程序会调用zxing自动解析二维码,在解析二维码成功后,再按照预设的加密方法对二维码字符串解密,从而获取服务端的链接信息,获取到链接信息后则直接启动网络访问模块下载服务端数据,再以json解析的方式分析出数据,以便显示到pe端主界面,在pe端程序后台运行时,程序会暂停数据的获取,以免造成不必要的流量消耗,pe端程序结束时,则彻底断开相应的链接,释放资源。

本发明的有益效果:本发明的一种远程监测计算机硬件信息的方法,使用了c/s架构(client/server),因此支持跨平台数据访问,可支持windows客户端、android客户端、ios客户端、arm嵌入式程序、51单片机等平台查看数据,极大的便利了数据的查看,有利于远程管理、维护计算机,同时也提供了极大的扩展空间,可以制造一些附属产品,例如笔记本电脑智能温控散热、游戏主机高温报警等。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为服务端程序的设计流程图;

图2为pc端程序设计流程图;

图3为pe端程序设计流程图。

具体实施方式

为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。

本发明提供一种技术方案:一种远程监测计算机硬件信息的方法,包括以下步骤:

服务端程序实现;

pc端程序的实现;

pe端程序的实现。

服务端程序实现的具体步骤为:通过使用c++语言编写的驱动程序winring0.sys实现与硬件的通讯,服务端程序在运行时,会首先装载winring0.sys以获得必要的系统权限,在winring0.sys装载成功后,以驱动通信的方式要求winring0.sys读取msr寄存器的值,并将读取到的二进制数据以十六进制的形式返回到内存变量中,之后服务端程序将十六进制数据转换为ascii码文本,再以json的形式推送到http服务端口,同时服务端程序会调用系统wmic指令,实现读取其他硬件信息的方法,同样以json的形式推送到http服务端口,服务端设置有一个计时器,用以保证服务端持续工作。

其他硬件为cpu、主板、硬盘、显卡、内存以及电源中的一种。

pc端程序的实现的具体步骤为:pc端程序以易语言程序为基础,采用了skinsharp作为交互界面引擎,配合系统支持库,pc端程序在启动时,会首先创建多线程任务,以便同时处理多条任务,pc端程序首先会检查系统是否已经运行了服务端,如果没有运行,则启动服务端,等待服务端返回数据,如果已经运行了服务端,则直接访问服务端提供的8085端口获取相应的数据,确保服务端运行成功后,pc端会生成一个二维码,二维码的内容为加密的字符串,用于pe端程序连接到服务端,pc端程序的主界面留有信息展示的面板,在获取到信息后会实时刷新到界面,在pc端结束运行时,会同时杀死服务端进程,以释放占用的系统资源。

pe端程序的实现的具体步骤为:由于pe环境的特殊性,pe端软件在运行时会首先检查网络的链接状态和类型,并以toast的形式提示用户当前的网络链接状态和链接类型,在确保能够访问网络后,程序会生成主界面,在用户触发相应的指令后,启动摄像机,扫描二维码,在发现二维码后,程序会调用zxing自动解析二维码,在解析二维码成功后,再按照预设的加密方法对二维码字符串解密,从而获取服务端的链接信息,获取到链接信息后则直接启动网络访问模块下载服务端数据,再以json解析的方式分析出数据,以便显示到pe端主界面,在pe端程序后台运行时,程序会暂停数据的获取,以免造成不必要的流量消耗,pe端程序结束时,则彻底断开相应的链接,释放资源

作为本发明的一个实施例:本产品由三套计算机程序组成,参考图1,该图为本产品服务端程序的设计流程图。由此图可见:本产品通过执行系统底层代码(cpu指令),服务端程序通过对处理器反馈的16进制数据进行处理,最终翻译为ascii码的可见数据,同时服务端程序调用windows系统预留接口(win32api),在服务端程序运行时,会开启http端口8085,以便接收pc端程序及pe端程序的调用,服务端程序主要负责与处理器交互并系统底层硬件信息(提供http端口传送json格式的数据,真正实现跨平台调用和远程查看),服务端通过处理器反馈的数据,可获取并提供多核处理器每个核心的温度、负载等情况,也可获取计算机内存的占用情况,图形处理器的占用情况及温度以及储存设备的占用情况及温度等等…

图2则为本产品的pc端程序设计流程图,由此图可见:本产品运行于装有windows系统的计算机上,程序启动时会先检查服务端程序是否处于运行状态,若计算机上没有运行服务端程序,则自动开启服务端程序,若运行了服务端程序,则直接访问服务端开启的8085端口进行数据回调,本产品为多线程程序,使用多线程处理可以加快程序运行速度并只会造成微量的性能损失,一号线程负责不间断的刷新服务端数据并通过主界面展示,二号线程负责获取互联网提供的资讯信息服务(由产品的官方网站提供),三号线程负责pc端程序的界面构建和刷新。pc端程序在运行成功后会产生一个二维码,二维码的内容为加密后的字符串,以便pe端程序通过扫码二维码的方式连接服务端。

图3则为本产品的pe端程序设计流程图,本产品的pe端程序主要负责提供远程查看计算机硬件信息功能,通过扫码二维码的方式连接到本产品的服务端程序,利用手机本身的wifi、2\3\4g网络连接服务端程序提供的8085端口,通过多线程的方式刷新数据显示,pe端程序的工作量相对较小,主要是数据的获取与展示,因此也不会出现大量的资源占用和耗电问题。pe端程序同时具有查看移动设备信息的功能和查看远程设备信息的功能,支持互联网查看数据。

本产品依靠服务端、pc端、pe端软件的相互配合,实现了硬件信息的远程查看,极大的便利了机房管理员等人员的工作,也帮助了计算机爱好者快速查看计算机的硬件信息。

作为本发明的一个实施例:当前市场上发售的计算机处理器(cpu)都设计和具备了msr寄存器,msr寄存器提供rdmsr和wrmsr这两条汇编指令,用以读取和写入msr指令。通过winring0.sys驱动可读取到ia32_temperature_target(0x01a2)的值,该值即为计算机处理器的当前温度,winring0驱动会返回一组16进制的数据(由于处理器只存在二进制数据0,1该驱动会把一组八位的二进制数据转换为十六进制数据,方便程序进行数据处理)。通过以下代码即可读取到每个核心的处理器温度:

boolwinapirdmsr(dwordindex,pdwordeax,pdwordedx)

{

if(ghandle==invalid_handle_value)

{

returnfalse;

}

if(eax==null||edx==null||gismsr==false)

{

returnfalse;

}

dwordreturnedlength=0;

boolresult=false;

byteoutbuf[8]={0};

result=deviceiocontrol(

ghandle,

ioctl_ols_read_msr,

&index,

sizeof(index),

&outbuf,

sizeof(outbuf),

&returnedlength,

null

);

if(result)

{

memcpy(eax,outbuf,4);

memcpy(edx,outbuf+4,4);

}

if(result)

{

returntrue;

}

else

{

returnfalse;

}

}

本产品设计了图形化的界面,用户只需根据相关提示进行操作即可。

以上显示和描述了本发明的基本原理和主要特征和本发明的优点,对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1