pig 发表于 2009-11-19 20:09:52

如何停用设备管理器里的设备?

本帖最后由 pusofalse 于 2009-11-19 20:41 编辑

如图,我想禁用这个。

我想做个自动优化系统的,昨晚上在论坛逛了一晚上,抄袭了论坛上的东西,只写出了下面几行代码……:face (30):;删除空闲IDE通道
Const $RegIDEChannel = "HKLM\SYSTEM\CurrentControlSet\Enum\PCIIDE\IDEChannel\"
Const $RegLPT = "HKLM\SYSTEM\CurrentControlSet\Enum\LPTENUM\MicrosoftRawPort\"
Const $REGClass = "HKLM\SYSTEM\CurrentControlSet\Control\Class\"
$LPT=RegEnumKey($LPT,1)

For $i = 1 To 10
        $IDEChannel = RegEnumKey($RegIDEChannel, $i)
        If @error <> 0 Then ExitLoop
        $Driver = RegRead($RegIDEChannel & $IDEChannel, "Driver")
        If RegRead($REGClass & $Driver, "MasterDeviceType") = 0 Then RegWrite($REGClass & $Driver, "UserMasterDeviceType", "REG_DWORD", "3")
        If RegRead($REGClass & $Driver, "SlaveDeviceType") = 0 Then RegWrite($REGClass & $Driver, "UserSlaveDeviceType", "REG_DWORD", "3")
Next这个功能是禁用空闲的IDE通道的,是通过注册表来实现的,我看了一晚上才看懂。
然后我想把这个打印机端口也给禁用,然后我依葫芦画瓢,可是在注册表里找不到禁用的地方,求助!:face (3):

pig 发表于 2009-11-19 20:11:27

希望大家帮下忙啊,我刚学的啊!

pig 发表于 2009-11-19 20:12:40

Const $RegLPT = "HKLM\SYSTEM\CurrentControlSet\Enum\LPTENUM\MicrosoftRawPort\"这个是我新加进去的,因为它看起来就像是那个打印机端口,可是不知道怎么禁用,在CLASS里面也找不到啊。

pusofalse 发表于 2009-11-19 20:53:28

楼主在将标题修改合格之后,请自行短信联系管理人员,申请打开主题。如果顶楼的帖子中出现“站务管理”,请在编辑标题时自行将此删除。

楼主的问题:#include <SetupApi.au3>

Local $sDeviceID, $hDevs, $tDevInfo
$sDeviceID = _CM_Get_Device_ID_By_Name_Ex("打印机端口", 0)
_SetupDiCreateDeviceDevs($sDeviceID, $hDevs, $tDevInfo)
$fResult = _SetupDiDisableDevice($hDevs, $tDevInfo, TRUE) ; 禁用
; _SetupDiDisableDevice($hDevs, $tDevInfo, FALSE) ; 启用

If $fResult = TRUE Then Msgbox(0, "", "禁用成功")
_SetupDiDestroyDeviceInfoList($hDevs)SetupApi.au3 - http://www.autoitx.com/forum.php?mod=viewthread&tid=10543&extra=&page=1

iamwonvy 发表于 2009-11-19 22:31:10

你比我强多了

pig 发表于 2009-11-20 01:58:12

谢谢版主,之前搜索论坛硬件设备也搜索到了你的帖子,但是看起来很复杂就没用。
刚才测试需要下载2个库文件,禁用成功。
但是需要用到<SetupApi.au3>和LocalSecurityAuthority,不知道这样编写出来的脚本体积会不会增大?
我原本以为可以直有简单点的方法做到的。
感觉只想简单禁用一个端口用到那么大的库太复杂了点。
但还是感谢吧。

nxbigdaddy 发表于 2009-11-20 09:14:39

_CM_Get_Device_ID_By_Name_Ex
这个哪里有呢?

bing614 发表于 2009-11-20 11:08:55

谢谢版主,之前搜索论坛硬件设备也搜索到了你的帖子,但是看起来很复杂就没用。
刚才测试需要下载2个库文件,禁用成功。
但是需要用到<SetupApi.au3>和LocalSecurityAuthority,不知道这样编写出来的脚本体积会不会增大?
我原本以为可以直有简单点的方法做到的。
感觉只想简单禁用一个端口用到那么大的库太复杂了点。
但还是感谢吧。
pig 发表于 2009-11-20 01:58 http://www.autoitx.com/images/common/back.gif


    i 服了 you

pig 发表于 2009-11-20 19:09:45

i 服了 you
bing614 发表于 2009-11-20 11:08 http://www.autoitx.com/images/common/back.gif


    为什么YOU服了ME?
我本来只是想可以通过修改注册表就好的,结果还要这么大个库啊!

bing614 发表于 2009-11-21 09:25:35

回复 9# pig
我错了 :face (3):

zhenglei 发表于 2009-11-22 14:09:15

ddddddddddddddddddddddddddd脚印

netegg 发表于 2009-11-26 18:39:08

回复 4# pusofalse

可怜你的回复了,楼主用不着,觉得注册表比api管用

menfan1 发表于 2009-11-27 20:37:42

呵呵,这个方法不错。。
页: [1]
查看完整版本: 如何停用设备管理器里的设备?