49666684 发表于 2012-2-20 23:06:11

给你的只是得到设备名称的码,如果要禁用启用的话我理解要用startservice()和stopservice()
奈何。。
这个是服务的吧

lixiaolong 发表于 2012-2-20 23:18:04

本帖最后由 lixiaolong 于 2012-2-20 23:30 编辑

回复 12# 49666684

启用,禁用系统中的所有音频设备.
#include <SetupApi.au3>

Local $hDevs, $tDevInfo, $aSound = []

$hDevs = _SetupDiGetClassDevs($DIGCF_PRESENT, "media")

While _SetupDiEnumDeviceInfo($hDevs, $aSound, $tDevInfo)
        $aSound += 1
        $sDescr = _SetupDiGetDeviceRegistryProperty($hDevs, $tDevInfo, $SPDRP_DEVICEDESC)
        $sName = _SetupDiGetDeviceRegistryProperty($hDevs, $tDevInfo, $SPDRP_FRIENDLYNAME)
        If $sName <> "" Then $sDescr = $sName
        ReDim $aSound[$aSound + 1]
        $aSound[$aSound] = $sDescr
        $aSound[$aSound] = _SetupDiGetDeviceInstanceID($hDevs, $tDevInfo)
       
        $fResult = _SetupDiDisableDevice($hDevs, $tDevInfo, True) ; 禁用
;~         $fResult = _SetupDiDisableDevice($hDevs, $tDevInfo, False) ; 启用
WEnd

可以精简.
#include <SetupApi.au3>

Local $hDevs, $tDevInfo, $aSound = []

$hDevs = _SetupDiGetClassDevs($DIGCF_PRESENT, "media")

While _SetupDiEnumDeviceInfo($hDevs, $aSound, $tDevInfo)
        $aSound += 1

;~         $fResult = _SetupDiDisableDevice($hDevs, $tDevInfo, True) ; 禁用
        $fResult = _SetupDiDisableDevice($hDevs, $tDevInfo, False) ; 启用
WEnd

49666684 发表于 2012-2-20 23:22:13

本帖最后由 49666684 于 2012-2-21 00:25 编辑

#include <SetupApi.au3>
; 枚举系统中的所有鼠标设备:
Local $hDevs, $tDevInfo, $aMouse = []
$hDevs = _SetupDiGetClassDevs($DIGCF_PRESENT, "Mouse")
While _SetupDiEnumDeviceInfo($hDevs, $aMouse, $tDevInfo)
      $aMouse += 1
      $sDescr = _SetupDiGetDeviceRegistryProperty($hDevs, $tDevInfo, $SPDRP_DEVICEDESC)
      $sName = _SetupDiGetDeviceRegistryProperty($hDevs, $tDevInfo, $SPDRP_FRIENDLYNAME)
      If $sName <> "" Then $sDescr = $sName
      Redim $aMouse[$aMouse + 1]
      $aMouse[$aMouse] = $sDescr      ; 鼠标描述信息
      $aMouse[$aMouse] = _SetupDiGetDeviceInstanceID($hDevs, $tDevInfo) ; 设备范例ID
WEnd
; 枚举网卡只需把"Mouse"改为"Net",磁盘则对应DiskDrive,显卡对应Display。
_SetupDiDestroyDeviceInfoList($hDevs)
_Arraydisplay($aMouse)P版的。帖子。。问题就是没有声卡的

49666684 发表于 2012-2-21 01:45:49

lixiaolong

第一段代码是对的。但第二段貌似没效果哦!

49666684 发表于 2012-2-21 01:46:22

我错了。。。。不明白为什么。刚才测试出问题 。现在对了。。。扫瑞 。谢谢大大

lixiaolong 发表于 2012-2-21 02:17:41

回复 20# 49666684

我刚才使用mpc播放器边看边试没成功,关闭播放器后成功.
你是不是也使用播放器了?

49666684 发表于 2012-2-21 17:56:53

是的。。。。

lixiaolong 发表于 2012-2-21 19:48:39

回复 22# 49666684

如果目的是不让系统发出声音的话,直接停止Windows Audio服务比较简单.
这样使用播放器也没事的.

那片叶子 发表于 2012-2-23 02:42:34

代码收下......

vgy0dl 发表于 2012-2-23 08:35:15

好东西,留个记号。。。

紫色风林 发表于 2012-2-23 11:10:45

牛啊,。。。。。。

liui 发表于 2012-2-24 10:52:57

感谢7楼~{:face (84):}

asionwu 发表于 2012-2-26 17:23:43

收下7楼的代码

leehomv 发表于 2012-3-10 20:58:29

谢谢共享,支持楼主
谢谢共享,支持楼主
页: 1 [2]
查看完整版本: 求。禁用,启用声卡AU3源码