无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4417|回复: 6
打印 上一主题 下一主题

[求助] 请问读取注册表某项值。然后根据读取值写入到其它位置。

[复制链接]
跳转到指定楼层
1#
发表于 2010-12-1 16:16:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_13fe&Pid_1d00\033591D0]
"Driver"="{36FC9E60-C465-11CF-8056-444553540000}\\0015"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0015]
"NonRemovable"=dword:00000001

这是我要查询和修改的注册表。
因为我想隐藏右下角任务栏的USB图标。但是每一款USB设备的硬件ID都不一样。

Driver和Class后面的值在注册表里面是一样的。
假如我的USB设备的ID是Vid_13fe&Pid_1d00\033591D0

运行批处理。
手工输入
USB硬件ID(假设现在是Vid_13fe&Pid_1d00\033591D0),回车。

批处理根据ID到批处理指定路径去查询
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\硬件ID]
并读取它下面的Driver子键参数
"Driver"="
读取值"

根据所读取的参数生成
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\
读取值]      
"NonRemovable"=dword:00000001

regedit /s写入。
再然后logoff。


多余说一句。那driver后面的那个0015前面好像多了一条下划线。我导出来就是这样。不知道有没有区别。
如果有兄弟愿意帮忙的话,希望能多余写下注释。这样下次碰到有类似读取需求的时候,我就可以举一反三了。
2#
发表于 2010-12-1 16:54:56 | 只看该作者
{36FC9E60-C465-11CF-8056-444553540000}]是usb的classguid,如果都隐藏呢

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}]
"NonRemovable"=dword:00000001
回复

使用道具 举报

3#
 楼主| 发表于 2010-12-1 17:00:00 | 只看该作者
都影藏也是可以的。不过貌似有点偷懒啊。而且这么写貌似没有效果。我测试过了。
必须先查询到下面Driver的值,查询到双斜线后面的四位数字,然后再写入到class下面对应该数字的子键才能生效。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_13fe&Pid_1d00\033591D0]
"Driver"="{36FC9E60-C465-11CF-8056-444553540000}\\0015"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0015]
"NonRemovable"=dword:00000001


发了一上午的帖子。没一个坛子回复的。谢谢了啊。

[ 本帖最后由 xiaoyuk 于 2010-12-1 17:19 编辑 ]
回复

使用道具 举报

4#
发表于 2010-12-1 19:12:29 | 只看该作者
方法还是知道的,不过写个具体的我就不行了,命令行太外行了,呵呵。。。

方法如下:

写CMD的时候设置向个变量,先设置一个输入项,如:手工输入USB硬件ID,然后根据输入的项REG EXPORT HKLM\SYSTEM\CurrentControlSet\Enum\USB\硬件ID AppBkUp.reg,然后用FOR命令找"Driver"="读取值"并赋值给第二个变量,然后直接按下面的示例写注册表就完事了:

REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
回复

使用道具 举报

5#
发表于 2010-12-1 23:23:55 | 只看该作者
很好的东西
回复

使用道具 举报

6#
发表于 2010-12-2 19:42:14 | 只看该作者
@echo off
echo.Please Input USB HWID and "q" to Quit.
set /p inputHWID=Input:
if "%inputHWID%"=="q" goto QUIT
@FOR /F "tokens=2*" %%A IN ('reg query "HKLM\SYSTEM\CurrentControlSet\Enum\USB\%inputHWID%" /v "Driver"') DO (set ClassID=%%B)
echo.find ClassID is %ClassID%
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Class\%ClassID%" /v "NonRemovable" /t REG_DWORD /d 00000001 /f >nul
if "%errorlevel%"=="0" echo.Write OK.
pause >nul

:QUIT
exit
回复

使用道具 举报

7#
发表于 2010-12-3 08:08:12 | 只看该作者

回复 #6 ovemxlong 的帖子

鉴定此楼这专业人士,所有东西都是有规有矩的,尔等最多就后面加个EXIT。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-12-31 05:19

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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