需要用AU3禁用原声卡(已解决)
本帖最后由 你没有kii 于 2018-2-25 17:18 编辑因插一个USB声卡耳机不能自动切换.导致耳机无声.需要手动禁用声卡太麻烦,
需要借用AU3禁用原声卡批量设置
看论坛这种代码.我复制.编译出错.请前大神们看看什么问题.
错误提示:
line2 (file "d:桌面\SetupApi.au3")
#include<localSecurityAuthority.au3>
error:error openig the file.
以下是复制的代码
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_UseUpx=n
#PRE_UseX64=n
#PRE_Res_requestedExecutionLevel=None
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <SetupApi.au3>
; 枚举系统中的所有显示设备:
Local $hDevs, $tDevInfo, $aMouse = []
$hDevs = _SetupDiGetClassDevs($DIGCF_PRESENT, "Display")
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
Dislabe(_SetupDiGetDeviceInstanceID($hDevs, $tDevInfo)) ; 禁用所有显示设备
WEnd
; 枚举网卡只需把"Mouse"改为"Net",磁盘则对应DiskDrive,显卡对应Display。
_SetupDiDestroyDeviceInfoList($hDevs)
_Arraydisplay($aMouse)
Func Dislabe($sDeviceID)
Local $hDevs, $tDevInfo
_SetupDiCreateDeviceDevs($sDeviceID, $hDevs, $tDevInfo)
$fResult = _SetupDiDisableDevice($hDevs, $tDevInfo, True) ; 禁用
If $fResult = True Then
Msgbox(0, "", "显示适配器禁用成功。")
Else
Msgbox(0, "", "错误码:" & @error)
EndIf
$fResult = _SetupDiDisableDevice($hDevs, $tDevInfo, False) ; 启用。
_SetupDiDestroyDeviceInfoList($hDevs) ; 销毁设备信息集。
; _CM_Disable_DevNode / _CM_Enable_DevNode 同样可以实现对硬件的禁用启用操作。
; 但_CM_Enable_DevNode不能启用设备管理器或_SetupDiDisableDevice禁用过的硬件。
EndFunc
下的附件错了.已解决 缺少setupapi.au3文件,这里下载:
http://www.autoit3.cn/forum.php?mod=viewthread&tid=10543&highlight=SetupApi.au3
把它放到include目录里 回复 2# mybase89 麻烦楼主把帖子代码放到代码框中,把问题再描述的清楚一点。我就帮你看下怎么解决。 回复 1# 你没有kii
localSecurityAuthority.au3 这个文件并不一定会用到。可以打开setupapi.au3,注释掉以下这一行试试
#include <LocalSecurityAuthority.au3>
页:
[1]