本帖最后由 pcl_test 于 2017-6-9 08:25 编辑
想制作个从注册表来关掉音量控制里的CD,打开麦克风,为什么不能把char值变成chr!char!里的值?
@echo off
setlocal enabledelayedexpansion
start "" /min sndvol32.exe
set str=0123456789ABCDEF0123456789ABCDEF -"#$--'()*+,-./0123456789:;-=-?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]-_`abcdefghijklmnopqrstuvwxyz{|}~
for /l %%i in (32,1,126) do (
set /a m=%%i/16,n=%%i%%16
call set n=!m!%%str:~!n!,1%%
set chr!n!=!str:~%%i,1!
)
:: 前面一段是把字符库装入变量chr??,以便后面做判断mic字样。已过滤字符:32以前的和!、%、&、<、>
rem 关音量控制的CD,开麦克风选项
set n=0
set count=0
for /f "tokens=8 delims=\" %%i in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Volume Control" /s^|find /i "音量控制"') do (
echo 声卡是:"%%i"
reg export "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Volume Control\%%i\音量控制" temp.tmp
)
taskkill /f /im sndvol32.exe >nul 2>nul
for /f "skip=3 tokens=1 delims=\" %%i in ('type temp.tmp') do for %%j in (%%i) do (
if not "%%j"=="00" (
set char=%%j
set n=0x!char!&set /a n=!n! >nul 2>nul
set /p =char=!char!,n=!n!..<nul
if !n! gtr 30 set char=chr!char!&call echo.!char!--&pause
rem 为什么上面这句不能把char值变成chr!char!里的值?
)
)
::....未完工...待加入......................
)
:END
[ 本帖最后由 9zhmke 于 2009-3-18 11:11 编辑 ] |