jd19970829 发表于 2011-2-6 22:47:35

关于$hMachine参数的迷惑

我想得到某个设备的所有硬件ID,比如说显示器,网卡,鼠标,等等。
仔细查看了SetupApi.au3里面的函数,发现这个函数能够实现这个功能
_CM_Get_Device_ID_List_Ex($hMachine, $sFilter = "", $iFlags = $CM_GETIDLIST_FILTER_NONE)
虽然我现在成功使用这个函数了,但是我一直没有弄明白$hMachine这个参数是什么,怎么得到,
根据注释$hMachine        - Supplies a machine handle that is returned by _CM_Connect_Machine function.
也就是说这个参数需要使用_CM_Connect_Machine函数得到,我又看了_CM_Connect_Machine
这个函数,_CM_Connect_Machine($sUncSystem),关于这个函数的参数描述:$sUncSystem        - System name, in UNC format.,意思应该是系统名字的UNC格式字符串吧,可是这个System name我怎么知道呢?从哪里得到呢?我知道WINDOWS里面只有computer name(计算机名),这个System name(系统名)不知道是什么,希望版主解答。
还有我测试过,不管我$hMachine这个参数是空(""),或者是_CM_Connect_Machine("XP系统计算机"),反正是随便我怎么设置,最后都不会出错,都会正常返回。不知道是怎么回事。

pusofalse 发表于 2011-2-6 23:12:39

System name 就是Computer name,两种叫法,都一样。指定UNC格式的计算机名称时,要在Computer name 前面加上“\\”, 比如_CM_Connect_Machine("\\XP系统计算机")。
不管如何设置,函数都会成功是因为你指定了错误格式的计算机名,使得_CM_Connect_Machine返回了0,而$hMachine参数如果为0,表示在本机的配置管理器(Configuration Manager - CM)中操作硬件。在使用$hMachine参数前,最好先检查一下它的值。
页: [1]
查看完整版本: 关于$hMachine参数的迷惑