# yunding_window_services **Repository Path**: davin.bao/yunding_window_services ## Basic Information - **Project Name**: yunding_window_services - **Description**: 云鼎 自助机监控服务组件 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 5 - **Created**: 2015-09-01 - **Last Updated**: 2025-04-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 1. 进程管理与升级服务 ## ### 1.1 安装 运行(以管理员身份)安装目录下的 install.bat, 自动安装并运行本服务程序 ### 1.2 卸载 运行(以管理员身份)安装目录下的 uninstall.bat, 自动卸载本服务程序 ### 1.3 配置 配置文件位于 {服务可执行文件所在目录}\config.ini 具体配置内容如下: ;进程监控与升级管理器配置 ``` [Setting] ;日志保存地址(默认:C:\Projects\CProcessMonitor\CProcessMonitor\bin\Debug\) LogSavePath=C:\Projects\CProcessMonitor\CProcessMonitor\bin\Debug\ ;进程列表上送时间间隔(10s-65535s) ProcessPutInterval=10 ;每个升级程序运行的最大超时时间(60-65535s),超时后将强制停止升级 OneUpgradeMaxTimeOut=60 ;每个升级程序运行结束后等待的空闲时间(0-65535s),即当一个升级完成后,下一个升级将在多少s后开始升级 OneUpgradeDoneSleepTime=5 ;所有升级完成后,进行系统重启的等待时间(10-65535s) UpgradeDoneSleepTime=30 ;检查升级时间(默认:23:18:10) UpgradeTime=23:25:00 ;进程列表上送URL地址 ProcessReportURL=http://api.device.local/user/process_list ;升级获取URL地址 UpgradeURL=http://api.device.local/user/upgrade_list ;进程列表 [ProcessList] ;进程名称=进程启动全路径 启动参数 cmd=C:\Windows\System32\cmd.exe /t:4A notepad=notepad.exe ``` ### 1.4 升级说明 - 这里是列表文本请配置检查升级时间(最好精确到秒), 当该时间到达时, 将访问接口“升级获取URL地址”,如未返回版本信息,将记录通信日志,放弃本次版本比较; - 如成功返回版本信息,则与本地版本文件 %服务进程存放路径%\upgrade.data 进行版本比对,如主版本信息未变化,则退出该线程; - 如版本不一致,则比较各程序版本,如有不一致,则放入下载列表中,版本比较完毕后,进行升级包下载; - 升级包将下载到临时目录 %服务进程存放路径%\upgradeList 下,将进行md5校验,如果校验失败,则删除升级包,继续下一个升级包的下载; - 当全部下载完成后,将运行第一个升级包,如运行时间超过配置中的 [Setting]OneUpgradeMaxTimeOut ,则强制退出该升级包,运行下一个升级包; - 如该升级包进程已结束,则升级线程SLEEP [Setting]OneUpgradeDoneSleepTime , 然后在进行下一个升级包的运行; - 所有运行完成后,升级线程将SLEEP [Setting]UpgradeDoneSleepTime , 然后将通知系统 10s 后重启; - 退出升级线程; ### 1.5 报文定义 #### 1.5.1 上送进程列表 上送URL地址请详见配置文件 协议:HTTP GOST 参数: |名称 | 说明 | |----------|---------------------------| | processList | 进程列表,使用“,”分隔 | | isInDesktop | 是否在桌面状态,是:1 , 否:0 | 样例: ``` http://api.device.local/user/process_list processList=svchost,csrss,sqlwriter,spoolsv,dllhost,prl_tools_service,smss isInDesktop=1 ``` 返回值 ``` {"errcode":0, "errmsg":"", "data":null} ``` #### 1.5.2 获取版本升级信息 升级获取URL地址请详见配置文件 协议:HTTP GET 参数 | 名称 | 说明 | |----------|---| | mac | 物理网卡地址 | 样例: ``` http://api.device.local/user/upgrade_list?mac=001C422BFAEF ``` 返回值 ``` {"errcode":"0","errmsg":"","data":{"version":"1","upgradeList":[{"id":0,"version":"1","upgradeUrl":"http:\/\/10.0.0.17\/Notepad2.exe","md5":"94CE0D705CEC280A0FE90104FF25DAE0"},{"id":1,"version":"3","upgradeUrl":"http:\/\/10.0.0.17\/Notepad3.exe","md5":"94CE0D705CEC280A0FE90104FF25DAE0"}]}} ``` ### 1.6 系统广播消息 #### 1.6.1 字符串定义 | 关键字 | 说明 | |----|----| | UPGRADE_MESSAGE | 升级信息 | #### 1.6.2 广播接收Demo 广播接收方式参考Demo: GetWindowMessageDemo ## 2 硬件及网络监控服务 ### 2.1 安装 运行(以管理员身份)安装目录下的 install.bat, 自动安装并运行本服务程序 ### 2.2 卸载 运行(以管理员身份)安装目录下的 uninstall.bat, 自动卸载本服务程序 ### 2.3 配置 配置文件位于 {服务可执行文件所在目录}\config.ini 具体配置内容如下: ``` ;硬件与网络监控配置 [Setting] ;是否开启调试日志 ShowTrace=true ;日志保存地址(默认:C:\yunding_window_services\YunDingMonitors\CHardwareMonitor\bin\Debug\) LogSavePath=C:\yunding_window_services\YunDingMonitors\CHardwareMonitor\bin\Debug\ ;心跳上送时间间隔(10s-65535s) HeartbeatInterval=10 ;心跳上送URL HeartbeatURL=http://api.device.local/user/heartbeat ;心跳上送备用URL HeartbeatBackupURL=http://api.device.local/user/heartbeat_backup ;安防警报IO检测时间间隔(10s-65535s) WarningInterval=10 ;安防警报IO检测上送URL WarningURL=http://api.device.local/user/warning ;安防警报IO检测上送备用URL WarningBackupURL=http://api.device.local/user/warning_backup ;系统对时上送URL WatchURL=http://api.device.local/user/watch ;系统对时上送备用URL WatchBackupURL=http://api.device.local/user/watch_backup ;全状态数据获取端口 AllStateDataPort=8010 ;全状态数据采集周期(10-65535s),心跳上送时进行采集、计算,一个周期结束将重置所有数据 AllStateCollectInterval=60 ;网络诊断时间间隔(10s-65535s) NetCheckInterval=10 ;网络重拨时间间隔(0s-65535s) NetRecallInterval=5 ;3G 网卡生成的本地网络连接名称 G3NetworkCardName=HUAWEI Mobile Connect - Network Card ;3G 模块COM口的友好名称(FriendlyName) G3ModuleFriendlyName=HUAWEI Mobile Connect - 3G PC UI Interface ;3G模块COM 波特率 G3ModuleComBaudRate=115200 ;安防警报IO检测列表 [WarningIOCheckList] ;IO名称=【通信方式】/【位数】/正常值 ;其中【通信方式】为 0x开头,则认为是GPIO方式,否则为COM方式 ;若【通信方式】为GPIO,则【位数】为0-7位, 若【通信方式】为COM,则可能的值有:8(CtsHolding)/4(DsrHolding)/1(CdHolding) door=0x61/2/1 door=0x61/1/1 other=com1/4/1 other=com1/8/1 ``` ### 2.4 报文定义 #### 2.4.1 心跳数据上送 上送URL地址请详见配置文件 协议:HTTP GOST 参数: |名称 | 说明 | |----------|---------------------------| | mac | mac地址 | | netType | 网络类型,有线:NET, 无线:WIFI, 3G:NET3G | | linkState | 网络连接状态,已连接:OK, 未连接:NO | | wsig | 无线网络信号强度 dBm | | wSpeed | 无线网络速率 kbps | | cpuMinTemp | CPU温度最小值 | | cpuMaxTemp | CPU温度最大值 | | cpuAveTemp | CPU温度平均值 | 样例: ``` http://api.device.local/user/heartbeat mac=001C422BFAEF&netType=NET&linkState=NO&wsig=&wSpeed=0 kbps&cpuMinTemp=0&cpuMaxTemp=0&cpuAveTemp=0 isInDesktop=1 ``` 返回值(无需对时) ``` {"errcode":0, "errmsg":"", "data":null} ``` 返回值(需对时) ``` {"errcode":"0","errmsg":"need set the clock","data":[]} ``` #### 2.4.2 系统对时 上送URL地址请详见配置文件 协议:HTTP GOST 参数: |名称 | 说明 | |----------|---------------------------| | reqTime | 当前时间 yyyy-MM-dd HH:mm:ss | 样例: ``` http://api.device.local/user/watch reqTime=2015-8-25 03:05:02 ``` 返回值 |名称 | 说明 | |----------|---------------------------| | reqTime | 客户端上送时间 yyyy-MM-dd HH:mm:ss | | resTime | 服务端基准时间 yyyy-MM-dd HH:mm:ss | ``` {"errcode":"0","errmsg":"", "data":['reqTime': '2015-8-25 03:05:02','resTime': '2015-8-25 03:06:09']} ``` #### 2.4.3 全状态数据上送 上送URL地址请详见配置文件 协议:HTTP GOST 参数: |名称 | 说明 | |----------|---------------------------| | data | 全状态数据包 | 样例: ``` http://api.device.local/user/get_all_state_data data={ "mac": "001C422BFAEF", "netType": 0, "linkState": 1, "wsig": "", "wSpeed": "", "cpuTemperature": { "minValue": 0.0, "maxValue": 0.0, "totalValue": 0.0, "count": 2, "aveValue": 0.0 }, "gpuTemperature": { "minValue": 0.0, "maxValue": 0.0, "totalValue": 0.0, "count": 0, "aveValue": 0.0 }, "mainboardTemperature": { "minValue": 0.0, "maxValue": 0.0, "totalValue": 0.0, "count": 0, "aveValue": 0.0 }, "hddTemperature": { "minValue": 0.0, "maxValue": 0.0, "totalValue": 0.0, "count": 0, "aveValue": 0.0 }, "cpuLoad": { "minValue": 0.0, "maxValue": 31.78295, "totalValue": 93.4108658, "count": 3, "aveValue": 31.1369553 }, "hddLoad": { "sections": [ { "name": "C:\\", "value": 0.0 } ] }, "volume": 0.48 } ``` 返回值 ``` {"errcode":"0","errmsg":"", "data":[]} ``` #### 2.4.4 安防警报数据上送 上送URL地址请详见配置文件 协议:HTTP GOST 参数: |名称 | 说明 | |----------|---------------------------| | mac | mac地址 | | ioCheckList | IO 状态列表 [{name:door,value:0,refValue:1},{name:other,value:0,refValue:1}] | 样例: ``` http://api.device.local/user/heartbeat mac=001C422BFAEF&ioCheckList=[{name:door,value:0,refValue:1},{name:other,value:0,refValue:1}] ``` 返回值 ``` {"errcode":"0","errmsg":"", "data":[]} ``` #### 2.4.5 获取系统全状态数据 服务端口配置请详见配置文件 协议:HTTP GET 接口地址:http://localhost:{配置端口值}/get_all_state_data 参数: |名称 | 说明 | |----------|---------------------------| | callback | JSONP 回调方法名 | 样例: ``` http://localhost:8010/get_all_state_data?callback=testfunc ``` 返回值 ``` testfunc({ "mac": "001C422BFAEF", "netType": 0, "linkState": 1, "wsig": "", "wSpeed": "", "cpuTemperature": { "minValue": 0.0, "maxValue": 0.0, "totalValue": 0.0, "count": 2, "aveValue": 0.0 }, "gpuTemperature": { "minValue": 0.0, "maxValue": 0.0, "totalValue": 0.0, "count": 0, "aveValue": 0.0 }, "mainboardTemperature": { "minValue": 0.0, "maxValue": 0.0, "totalValue": 0.0, "count": 0, "aveValue": 0.0 }, "hddTemperature": { "minValue": 0.0, "maxValue": 0.0, "totalValue": 0.0, "count": 0, "aveValue": 0.0 }, "cpuLoad": { "minValue": 0.0, "maxValue": 31.78295, "totalValue": 93.4108658, "count": 3, "aveValue": 31.1369553 }, "hddLoad": { "sections": [ { "name": "C:\\", "value": 0.0 } ] }, "volume": 0.48 }) ``` #### 2.4.6 获取系统MAC地址 服务端口配置请详见配置文件 协议:HTTP GET 接口地址:http://localhost:{配置端口值}/get_hardware_id 参数: |名称 | 说明 | |----------|---------------------------| | callback | JSONP 回调方法名 | 样例: ``` http://localhost:8010/get_hardware_id?callback=testfunc ``` 返回值 ``` testfunc({"mac": "001C422BFAEF"}) ``` ### 2.5 处置方案说明 #### 2.5.1 数据采集原则 心跳上送时(周期为 HeartbeatInterval)进行系统全状态数据采集、计算、存储,一个全状态统计周期(AllStateCollectInterval)结束将重置所有数据,进行重新采集计算。 #### 2.5.2 系统对时算法 当接收到系统对时的响应报文后,进行系统时间计算,具体计算公式如下: 系统当前时间设为:now 计算时间设为:computeTime computeTime = (resTime + (now-reqTime)/2 ) IF abs(now-resTime)>5 , THEN 设置系统时间为 computeTime #### 2.5.3 网络诊断(3G模块诊)逻辑说明 - a. 这里是列表文本.通过AT指令获取网络附着状态(网络诊断周期为:NetCheckInterval); - b.状态为不附着或附着超时,并发送断网广播消息(Flag:LINK_STATE_MESSAGE, wParam: 0, lParam:0),停止心跳包上送,并开始网络断线计数; - c. 当网络断线计数大于等于3, 进行重拨,重拨后进程Sleep 网络重拨时间间隔(NetRecallInterval)秒; - d. 如果状态为已附着,且网络断线计数为零, goto a; - e. 如果网络断线计数不为零,立即上送心跳包,发送已连接广播消息(Flag:LINK_STATE_MESSAGE, wParam: 1, lParam:0),退出。 #### 2.5.4 安防警报检测说明 根据配置(WarningInterval)轮询接口配置列表([WarningIOCheckList])指定的接口IO值,如果与配置的标定值不一致,将上送所有接口配置列表的接口当前值列表, 并发送系统安防警报广播消息(Flag:WARNING_MESSAGE, wParam: {接口配置列表顺序号(从上往下第几个接口)}, lParam:0)。 ### 2.6 系统广播消息 #### 2.6.1 字符串定义 | 关键字 | wParam | lParam | 说明 | |----|----|----|----| | WARNING_MESSAGE | 接口配置列表顺序号(从上往下第几个接口) | 保留值 | 警报信息 | | LINK_STATE_MESSAGE | 网络状态,断线:0, 联线:1 | 保留值 | 网络状况信息 | ### 2.7 注意事项 - 服务启动时才会进行网络类型(NetType)的检测 ## 3. 软件交付 ### 3.1 开发环境 操作系统: Windows 7 旗舰版 开发IDE: Visual Studio 2013 Ultimate ### 3.2 开发说明 #### 3.2.1 请使用IDE打开解决方案文件 \yunding_window_services\YunDingMonitors\YunDingMonitors.sln #### 3.2.2 项目及文件夹说明 - CBrowser 浏览器外壳项目 - WindowService 服务核心类库 - CProcessMonitor 进程监控及软件更新服务 - CHardwareMonitor 硬件与网络监控服务 ### 3.3 源代码列表 ### \YUNDING_WINDOW_SERVICES │ .gitignore │ LICENSE │ README.md │ ├─GetWindowMessageDemo Windows消息发送接收模拟器 │ │ GetWindowMessageDemo.sln │ │ │ └─GetWindowMessageDemo │ │ Form1.cs │ │ Form1.Designer.cs │ │ Form1.resx │ │ GetWindowMessageDemo.csproj │ │ Program.cs │ │ │ ├─bin │ │ └─Debug │ │ │ ├─obj │ │ └─Debug │ │ │ └─Properties │ AssemblyInfo.cs │ Resources.Designer.cs │ Resources.resx │ Settings.Designer.cs │ Settings.settings │ └─YunDingMonitors 交付软件解决方案 │ YunDingMonitors.sln │ ├─Bins 解决方案需使用的所有类库 │ │ CFLite.dll │ │ icudt40.dll │ │ icuin40.dll │ │ icuuc40.dll │ │ JavaScriptCore.dll │ │ libcurl.dll │ │ libeay32.dll │ │ libexslt.dll │ │ libxml2.dll │ │ libxslt.dll │ │ MMDevAPI.dll │ │ NetworkMonitor.dll │ │ Newtonsoft.Json.dll │ │ objc.dll │ │ OpenHardwareMonitorLib.dll │ │ pthreadVC2.dll │ │ SQLite3.dll │ │ ssleay32.dll │ │ WebKit.dll │ │ WebKit.Interop.dll │ │ WebKitBrowser.dll │ │ WebKitBrowser.dll.manifest │ │ WindowService.dll │ │ WindowService.pdb │ │ WinRing0.dll │ │ WinRing0.exp │ │ WinRing0.lib │ │ WinRing0.sys │ │ WinRing0.vxd │ │ WinRing0x64.dll │ │ WinRing0x64.exp │ │ WinRing0x64.lib │ │ WinRing0x64.sys │ │ │ └─WebKit.resources │ │ Info.plist │ │ │ ├─certificates │ │ cacert.pem │ │ │ ├─en.lproj │ │ Localizable.strings │ │ localizedStrings.js │ │ │ └─inspector │ │ AbstractTimelinePanel.js │ │ ApplicationCacheItemsView.js │ │ AuditCategories.js │ │ AuditLauncherView.js │ │ AuditResultView.js │ │ AuditRules.js │ │ audits.css │ │ AuditsPanel.js │ │ BottomUpProfileDataGridTree.js │ │ BreakpointManager.js │ │ BreakpointsSidebarPane.js │ │ Callback.js │ │ CallStackSidebarPane.js │ │ ChangesView.js │ │ Checkbox.js │ │ Color.js │ │ ConsolePanel.js │ │ ConsoleView.js │ │ ContextMenu.js │ │ CookieItemsView.js │ │ CSSCompletions.js │ │ CSSStyleModel.js │ │ Database.js │ │ DatabaseQueryView.js │ │ DatabaseTableView.js │ │ DataGrid.js │ │ DOMAgent.js │ │ DOMStorage.js │ │ DOMStorageItemsView.js │ │ DOMSyntaxHighlighter.js │ │ Drawer.js │ │ ElementsPanel.js │ │ ElementsTreeOutline.js │ │ EventListenersSidebarPane.js │ │ FontView.js │ │ HAREntry.js │ │ helpScreen.css │ │ HelpScreen.js │ │ ImageView.js │ │ InjectedFakeWorker.js │ │ InjectedScript.js │ │ InjectedScriptAccess.js │ │ inspector.css │ │ inspector.html │ │ inspector.js │ │ InspectorBackendStub.js │ │ InspectorFrontendHostStub.js │ │ inspectorSyntaxHighlight.css │ │ KeyboardShortcut.js │ │ MetricsSidebarPane.js │ │ Object.js │ │ ObjectPropertiesSection.js │ │ ObjectProxy.js │ │ Panel.js │ │ PanelEnablerView.js │ │ Placard.js │ │ popover.css │ │ Popover.js │ │ ProfileDataGridTree.js │ │ ProfilesPanel.js │ │ ProfileView.js │ │ PropertiesSection.js │ │ PropertiesSidebarPane.js │ │ Resource.js │ │ ResourceCategory.js │ │ ResourcesPanel.js │ │ ResourceView.js │ │ ScopeChainSidebarPane.js │ │ Script.js │ │ ScriptsPanel.js │ │ ScriptView.js │ │ Section.js │ │ Settings.js │ │ ShortcutsHelp.js │ │ SidebarPane.js │ │ SidebarTreeElement.js │ │ SourceCSSTokenizer.js │ │ SourceCSSTokenizer.re2js │ │ SourceFrame.js │ │ SourceHTMLTokenizer.js │ │ SourceHTMLTokenizer.re2js │ │ SourceJavaScriptTokenizer.js │ │ SourceJavaScriptTokenizer.re2js │ │ SourceTokenizer.js │ │ SourceView.js │ │ StatusBarButton.js │ │ StoragePanel.js │ │ StylesSidebarPane.js │ │ SummaryBar.js │ │ TabbedPane.js │ │ TestController.js │ │ TextEditorHighlighter.js │ │ TextEditorModel.js │ │ TextPrompt.js │ │ textViewer.css │ │ TextViewer.js │ │ TimelineAgent.js │ │ TimelineGrid.js │ │ TimelineOverviewPane.js │ │ TimelinePanel.js │ │ TopDownProfileDataGridTree.js │ │ treeoutline.js │ │ utilities.js │ │ View.js │ │ WatchExpressionsSidebarPane.js │ │ WebKit.qrc │ │ WelcomeView.js │ │ WorkersSidebarPane.js │ │ │ └─Images │ applicationCache.png │ auditsIcon.png │ back.png │ breakpointBorder.png │ breakpointConditionalBorder.png │ breakpointConditionalCounterBorder.png │ breakpointCounterBorder.png │ breakpointsActivateButtonGlyph.png │ breakpointsDeactivateButtonGlyph.png │ checker.png │ clearConsoleButtonGlyph.png │ closeButtons.png │ consoleButtonGlyph.png │ consoleIcon.png │ cookie.png │ database.png │ databaseTable.png │ debuggerContinue.png │ debuggerPause.png │ debuggerStepInto.png │ debuggerStepOut.png │ debuggerStepOver.png │ disclosureTriangleSmallDown.png │ disclosureTriangleSmallDownBlack.png │ disclosureTriangleSmallDownWhite.png │ disclosureTriangleSmallRight.png │ disclosureTriangleSmallRightBlack.png │ disclosureTriangleSmallRightDown.png │ disclosureTriangleSmallRightDownBlack.png │ disclosureTriangleSmallRightDownWhite.png │ disclosureTriangleSmallRightWhite.png │ dockButtonGlyph.png │ elementsIcon.png │ enableOutlineButtonGlyph.png │ enableSolidButtonGlyph.png │ errorIcon.png │ errorMediumIcon.png │ errorRedDot.png │ excludeButtonGlyph.png │ focusButtonGlyph.png │ forward.png │ gearButtonGlyph.png │ glossyHeader.png │ glossyHeaderPressed.png │ glossyHeaderSelected.png │ glossyHeaderSelectedPressed.png │ goArrow.png │ graphLabelCalloutLeft.png │ graphLabelCalloutRight.png │ grayConnectorPoint.png │ largerResourcesButtonGlyph.png │ localStorage.png │ nodeSearchButtonGlyph.png │ paneBottomGrow.png │ paneBottomGrowActive.png │ paneGrowHandleLine.png │ paneSettingsButtons.png │ pauseOnExceptionButtonGlyph.png │ percentButtonGlyph.png │ popoverArrows.png │ popoverBackground.png │ profileGroupIcon.png │ profileIcon.png │ profilesIcon.png │ profileSmallIcon.png │ profilesSilhouette.png │ programCounterBorder.png │ radioDot.png │ recordButtonGlyph.png │ recordToggledButtonGlyph.png │ reloadButtonGlyph.png │ resourceCSSIcon.png │ resourceDocumentIcon.png │ resourceDocumentIconSmall.png │ resourceJSIcon.png │ resourcePlainIcon.png │ resourcePlainIconSmall.png │ resourcesIcon.png │ resourcesSilhouette.png │ resourcesSizeGraphIcon.png │ resourcesTimeGraphIcon.png │ scriptsIcon.png │ scriptsSilhouette.png │ searchSmallBlue.png │ searchSmallBrightBlue.png │ searchSmallGray.png │ searchSmallWhite.png │ segment.png │ segmentEnd.png │ segmentHover.png │ segmentHoverEnd.png │ segmentSelected.png │ segmentSelectedEnd.png │ sessionStorage.png │ spinner.gif │ splitviewDimple.png │ splitviewDividerBackground.png │ statusbarBackground.png │ statusbarBottomBackground.png │ statusbarButtons.png │ statusbarMenuButton.png │ statusbarMenuButtonSelected.png │ statusbarResizerHorizontal.png │ statusbarResizerVertical.png │ storageIcon.png │ successGreenDot.png │ thumbActiveHoriz.png │ thumbActiveVert.png │ thumbHoriz.png │ thumbHoverHoriz.png │ thumbHoverVert.png │ thumbVert.png │ timelineBarBlue.png │ timelineBarGray.png │ timelineBarGreen.png │ timelineBarOrange.png │ timelineBarPurple.png │ timelineBarRed.png │ timelineBarYellow.png │ timelineCheckmarks.png │ timelineDots.png │ timelineHollowPillBlue.png │ timelineHollowPillGray.png │ timelineHollowPillGreen.png │ timelineHollowPillOrange.png │ timelineHollowPillPurple.png │ timelineHollowPillRed.png │ timelineHollowPillYellow.png │ timelineIcon.png │ timelinePillBlue.png │ timelinePillGray.png │ timelinePillGreen.png │ timelinePillOrange.png │ timelinePillPurple.png │ timelinePillRed.png │ timelinePillYellow.png │ toolbarItemSelected.png │ trackHoriz.png │ trackVert.png │ treeDownTriangleBlack.png │ treeDownTriangleWhite.png │ treeRightTriangleBlack.png │ treeRightTriangleWhite.png │ treeUpTriangleBlack.png │ treeUpTriangleWhite.png │ undockButtonGlyph.png │ userInputIcon.png │ userInputPreviousIcon.png │ userInputResultIcon.png │ warningIcon.png │ warningMediumIcon.png │ warningOrangeDot.png │ warningsErrors.png │ whiteConnectorPoint.png │ ├─CBrowser 浏览器外壳项目 │ │ CBrowser.cs │ │ CBrowser.csproj │ │ CBrowser.csproj.user │ │ CBrowser.Designer.cs │ │ CBrowser.resx │ │ Program.cs │ │ │ ├─bin │ │ ├─Debug │ │ │ │ │ └─Release │ ├─obj │ │ └─Debug │ │ │ CBrowser.CBrowser.resources │ │ │ CBrowser.csproj.FileListAbsolute.txt │ │ │ CBrowser.csproj.GenerateResource.Cache │ │ │ CBrowser.exe │ │ │ CBrowser.pdb │ │ │ CBrowser.Properties.Resources.resources │ │ │ DesignTimeResolveAssemblyReferences.cache │ │ │ DesignTimeResolveAssemblyReferencesInput.cache │ │ │ │ │ └─TempPE │ └─Properties │ AssemblyInfo.cs │ Resources.Designer.cs │ Resources.resx │ Settings.Designer.cs │ Settings.settings │ ├─CHardwareMonitor 硬件及网络监控服务 │ │ CHardwareMonitor.cs │ │ CHardwareMonitor.csproj │ │ CHardwareMonitor.csproj.user │ │ CHardwareMonitor.Designer.cs │ │ HardwareHelper.cs │ │ HardwareValues.cs │ │ NetHelper.cs │ │ Program.cs │ │ ProjectInstaller.cs │ │ ProjectInstaller.Designer.cs │ │ ProjectInstaller.resx │ │ Service.cs │ │ │ ├─bin │ │ ├─Debug │ │ │ │ │ └─Release │ ├─obj │ │ └─Debug │ │ │ CHardwareMonitor.csproj.FileListAbsolute.txt │ │ │ CHardwareMonitor.csproj.GenerateResource.Cache │ │ │ CHardwareMonitor.csprojResolveAssemblyReference.cache │ │ │ CHardwareMonitor.exe │ │ │ CHardwareMonitor.pdb │ │ │ CHardwareMonitor.ProjectInstaller.resources │ │ │ DesignTimeResolveAssemblyReferences.cache │ │ │ DesignTimeResolveAssemblyReferencesInput.cache │ │ │ │ │ └─TempPE │ └─Properties │ AssemblyInfo.cs │ ├─ConsoleHardwareMonitor 硬件及网络监控调试项目 │ │ CHardwareMonitor.cs │ │ ConsoleHardwareMonitor.csproj │ │ ConsoleHardwareMonitor.csproj.user │ │ HardwareHelper.cs │ │ HardwareValues.cs │ │ NetHelper.cs │ │ Program.cs │ │ Service.cs │ │ │ ├─bin │ │ ├─Debug │ │ │ │ │ │ │ └─log │ │ │ │ │ └─Release │ ├─obj │ │ └─Debug │ │ │ ConsoleHardwardMonitor.csproj.FileListAbsolute.txt │ │ │ ConsoleHardwardMonitor.csprojResolveAssemblyReference.cache │ │ │ ConsoleHardwareMonitor.csproj.FileListAbsolute.txt │ │ │ ConsoleHardwareMonitor.csprojResolveAssemblyReference.cache │ │ │ ConsoleHardwareMonitor.exe │ │ │ ConsoleHardwareMonitor.pdb │ │ │ DesignTimeResolveAssemblyReferences.cache │ │ │ DesignTimeResolveAssemblyReferencesInput.cache │ │ │ │ │ ├─Fakes │ │ │ └─nm │ │ │ ├─b │ │ │ └─o │ │ └─TempPE │ └─Properties │ AssemblyInfo.cs │ ├─ConsoleProcessMonitor 进程监控与软件更新调试项目 │ │ ConsoleProcessMonitor.csproj │ │ ConsoleProcessMonitor.csproj.user │ │ CProcessMonitor.cs │ │ Program.cs │ │ Service.cs │ │ VersionHelper.cs │ │ │ ├─bin │ │ ├─Debug │ │ │ │ │ │ │ └─log │ │ │ │ │ └─Release │ ├─obj │ │ └─Debug │ │ │ ConsoleProcessMonitor.csproj.FileListAbsolute.txt │ │ │ ConsoleProcessMonitor.csprojResolveAssemblyReference.cache │ │ │ ConsoleProcessMonitor.exe │ │ │ ConsoleProcessMonitor.pdb │ │ │ DesignTimeResolveAssemblyReferencesInput.cache │ │ │ │ │ └─TempPE │ └─Properties │ AssemblyInfo.cs │ ├─CProcessMonitor 进程监控与软件更新服务 │ │ CProcessMonitor.cs │ │ CProcessMonitor.csproj │ │ CProcessMonitor.csproj.user │ │ CProcessMonitor.Designer.cs │ │ CProcessMonitor.resx │ │ Interop.cs │ │ Program.cs │ │ ProjectInstaller.cs │ │ ProjectInstaller.Designer.cs │ │ ProjectInstaller.resx │ │ Service.cs │ │ VersionHelper.cs │ │ │ ├─bin │ │ ├─Debug │ │ │ │ │ └─Release │ ├─obj │ │ ├─Debug │ │ │ │ CProcessMonitor.application │ │ │ │ CProcessMonitor.CProcessMonitor.resources │ │ │ │ CProcessMonitor.csproj.FileListAbsolute.txt │ │ │ │ CProcessMonitor.csproj.GenerateResource.Cache │ │ │ │ CProcessMonitor.csprojResolveAssemblyReference.cache │ │ │ │ CProcessMonitor.exe │ │ │ │ CProcessMonitor.exe.manifest │ │ │ │ CProcessMonitor.pdb │ │ │ │ CProcessMonitor.ProjectInstaller.resources │ │ │ │ DesignTimeResolveAssemblyReferences.cache │ │ │ │ DesignTimeResolveAssemblyReferencesInput.cache │ │ │ │ │ │ │ └─TempPE │ │ └─Release │ │ │ CProcessMonitor.application │ │ │ CProcessMonitor.CProcessMonitor.resources │ │ │ CProcessMonitor.csproj.FileListAbsolute.txt │ │ │ CProcessMonitor.csproj.GenerateResource.Cache │ │ │ CProcessMonitor.exe │ │ │ CProcessMonitor.exe.manifest │ │ │ CProcessMonitor.pdb │ │ │ CProcessMonitor.ProjectInstaller.resources │ │ │ DesignTimeResolveAssemblyReferencesInput.cache │ │ │ │ │ └─TempPE │ └─Properties │ AssemblyInfo.cs │ └─WindowService Windows服务核心类库 │ ComHelper.cs │ CreateProcessAsUserWrapper.cs │ EndpointVolume.cs │ G3Helper.cs │ HttpServer.cs │ HttpWebResponseUtility.cs │ Ini.cs │ IOHelper.cs │ Log.cs │ OpenLibSys.cs │ RegistryHelper.cs │ SystemHelper.cs │ WindowService.csproj │ Wmi.cs │ ├─bin │ ├─Debug │ │ │ └─Release ├─obj │ └─Debug │ │ DesignTimeResolveAssemblyReferencesInput.cache │ │ WindowService.csproj.FileListAbsolute.txt │ │ WindowService.dll │ │ WindowService.pdb │ │ │ ├─Fakes │ │ └─nm │ │ ├─b │ │ └─o │ └─TempPE └─Properties AssemblyInfo.cs Finished!