找回密码
 加入
搜索
查看: 6461|回复: 12

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

  [复制链接]
发表于 2009-11-19 20:09:52 | 显示全部楼层 |阅读模式
本帖最后由 pusofalse 于 2009-11-19 20:41 编辑

如图,我想禁用这个。

我想做个自动优化系统的,昨晚上在论坛逛了一晚上,抄袭了论坛上的东西,只写出了下面几行代码……
;删除空闲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通道的,是通过注册表来实现的,我看了一晚上才看懂。
然后我想把这个打印机端口也给禁用,然后我依葫芦画瓢,可是在注册表里找不到禁用的地方,求助!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2009-11-19 20:11:27 | 显示全部楼层
希望大家帮下忙啊,我刚学的啊!
 楼主| 发表于 2009-11-19 20:12:40 | 显示全部楼层
Const $RegLPT = "HKLM\SYSTEM\CurrentControlSet\Enum\LPTENUM\MicrosoftRawPort"
这个是我新加进去的,因为它看起来就像是那个打印机端口,可是不知道怎么禁用,在CLASS里面也找不到啊。
发表于 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 ... p;extra=&page=1
发表于 2009-11-19 22:31:10 | 显示全部楼层
你比我强多了
 楼主| 发表于 2009-11-20 01:58:12 | 显示全部楼层
谢谢版主,之前搜索论坛硬件设备也搜索到了你的帖子,但是看起来很复杂就没用。
刚才测试需要下载2个库文件,禁用成功。
但是需要用到<SetupApi.au3>和LocalSecurityAuthority,不知道这样编写出来的脚本体积会不会增大?
我原本以为可以直有简单点的方法做到的。
感觉只想简单禁用一个端口用到那么大的库太复杂了点。
但还是感谢吧。
发表于 2009-11-20 09:14:39 | 显示全部楼层
_CM_Get_Device_ID_By_Name_Ex
这个哪里有呢?
发表于 2009-11-20 11:08:55 | 显示全部楼层
谢谢版主,之前搜索论坛硬件设备也搜索到了你的帖子,但是看起来很复杂就没用。
刚才测试需要下载2个库文件,禁用成功。
但是需要用到<SetupApi.au3>和LocalSecurityAuthority,不知道这样编写出来的脚本体积会不会增大?
我原本以为可以直有简单点的方法做到的。
感觉只想简单禁用一个端口用到那么大的库太复杂了点。
但还是感谢吧。
pig 发表于 2009-11-20 01:58



    i 服了 you
 楼主| 发表于 2009-11-20 19:09:45 | 显示全部楼层
i 服了 you
bing614 发表于 2009-11-20 11:08



    为什么YOU服了ME?
我本来只是想可以通过修改注册表就好的,结果还要这么大个库啊!
发表于 2009-11-21 09:25:35 | 显示全部楼层
回复 9# pig
我错了
发表于 2009-11-22 14:09:15 | 显示全部楼层
ddddddddddddddddddddddddddd  脚印

评分

参与人数 1金钱 -10 贡献 -1 收起 理由
pusofalse -10 -1 在这里灌水,后果很严重!

查看全部评分

发表于 2009-11-26 18:39:08 | 显示全部楼层
回复 4# pusofalse

可怜你的回复了,楼主用不着,觉得注册表比api管用
发表于 2009-11-27 20:37:42 | 显示全部楼层
呵呵,这个方法不错。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-27 15:38 , Processed in 0.085294 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表