首页 > 编程知识 正文

设备管理员总结报告,设备管理技术总结

时间:2023-05-03 23:53:18 阅读:234391 作者:3285

进度跟进 Day 1

Enable和Disable的问题都解决了,剩下的问题都是关于怎么生成设备树并呈现出来的问题,Windows操作系统应该有现成的库函数或者API调用,能把整个一棵树一次性调出。但是C#开发环境下很少使用指针链表的概念,就算系统中有这么一棵树,那么也应该是用链表串起来的,在C#这边我们要怎么接收呢?官方文档应该有说明,去官网文档去找找。于是去看了MSDN的文档,找了一大堆看似可用的接口,不知道怎么验证调用函数会产生什么样的结果,以及何时何处调用函数,一无所知。于是把视线重新转回到“怎么样生成树?Windows关于设备这一部分内部设计结构到底是什么样子的?”上来。

Day 2

误打误撞,发现了一本名叫《Windows编程》的一本书,意识到我的问题应该是与Windows编程相关,于是打算谨慎的汽车认真拜读这本巨作。主要有两版:第五版和第六版,均在网上找到了相关资源。第五版出版时间在1998年,很早了,限于时代因素的影响,该书并没有涉及到距离我们很近的Windows 7、Windows 8以及Windows 10,但依然具有很高的可读性。算是第一次接触Windows编程,书本里边的很多概念都异常新颖,同时也进一步了解了MFC的概念,想有时间重新把操作系统相关的书读读。第六版的Windows编程主要讲C#怎么编写Windows8环境下的程序,跳过。于是看了一天的Windows编程,收获是不小,但是还是没能把问题解决了,感觉越走越远。

Day3

不能这么下去了,一点动静都没有,得想办法解决问题了,应该是走偏了,重新回到正轨上来。重新审视问题:我是要拿到设备树,而设备树是由设备节点构成的,所以我们得拿到每一个节点的值。找到C版的设备管理器,好好研读源码,要怎么做。找到生成树的代码位置,一行一行往过走,记录了很多函数,来回跳,太难调试了,并且文档对这些函数的释义也不清不楚。C语言版的设备管理器(含bug)就这样走了一天,做得异常痛苦。然而并没有什么进展。

Day4

真的不能这么下去了,得理清源码的逻辑,然后翻译为C#版的,这就搞定了。仔细理清了逻辑,发现其实获取父节点的这个操作并不是实际意义上存在这么一种父节点,而是逻辑上的父子关系。早先是先入为主了。所以大体思路是,找到子节点,自然能找到父节点,而没必要从父节点开始进行广度优先遍历,加大读取难度。着手开始做,首先整体把子节点遍历,提取出父节点,此时可以使用字典,省去了去重部分的编写,而后再将子节点找到对应的父节点插进去。所用到API函数的C#封装也可以在网上找到对应的实现,姑且把这部分归结于不熟练吧。至此,简易版设备管理器做完了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。