gpt4 book ai didi

vba - 在 VBA 中读写注册表

转载 作者:行者123 更新时间:2023-12-02 07:30:09 26 4
gpt4 key购买 nike

我在 C# 中看到了这一行,我正在尝试将其调整为 VBA:

Microsoft.Win32.Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR", "Start", 4,Microsoft.Win32.RegistryValueKind.DWord);

我在这里迷失了一些错误:

Runtime: 5 - invalid procedure call)

当我使用默认的 i_Type 字符串“REG_SZ”而不是“Start”时,我收到与 regkey 相关的错误:

Runtime - -2147024891[80070005] invalid root

我的代码:

Dim i_RegKey As String, i_Value As String, i_Type As String
Dim myWS As Object
i_Type = "REG_SZ" ' Optional
'access Windows scripting
Set myWS = CreateObject("WScript.Shell")
'write registry key
i_RegKey = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Start"
i_Value = "4"
i_Type = "REG_DWORD"
myWS.RegWrite i_RegKey, i_Value, i_Type

最佳答案

我认为这里的问题是宏没有写入注册表的权限。

更多信息请参见 this page 。我可以使用 WScript 对象读取键的值:

Debug.Print CreateObject("WScript.Shell").RegRead("HKLM\SYSTEM\CurrentControlSet\Services\USBSTOR\Start")

要写入(如果您有权限,它应该可以工作):

CreateObject("WScript.Shell").RegWrite "HKLM\SYSTEM\CurrentControlSet\Services\USBSTOR\Start", 4, "REG_DWORD"

我如何让它工作(因为我的脚本似乎没有必要的权限):

ShellExecute 0, "runas", "C:\Windows\System32\cmd.exe", "/k %windir%\System32\reg.exe ADD HKLM\SYSTEM\CurrentControlSet\Services\USBSTOR /f /v Start /t REG_DWORD /d 4", "C:\", 0

在最后一个示例中,系统将提示用户提供必要的权限。

PS:HKLM是HKEY_LOCAL_MACHINE的缩写。所有其他根键名称都有类似的缩写,可以在 page mentioned at the top 中查阅。 .

作为一个实际示例,我将发布如何使用这些表达式来启用/禁用 USB 大容量存储(打开时禁用,关闭时启用):

Sub DoUSB_Control()
If CreateObject("WScript.Shell").RegRead("HKLM\SYSTEM\CurrentControlSet\Services\USBSTOR\Start") = 3 Then
ShellExecute 0, "runas", "C:\Windows\System32\cmd.exe", "/k %windir%\System32\reg.exe ADD HKLM\SYSTEM\CurrentControlSet\Services\USBSTOR /f /v Start /t REG_DWORD /d 4", "C:\", 0
Else
ShellExecute 0, "runas", "C:\Windows\System32\cmd.exe", "/k %windir%\System32\reg.exe ADD HKLM\SYSTEM\CurrentControlSet\Services\USBSTOR /f /v Start /t REG_DWORD /d 3", "C:\", 0
End If
End Sub

关于vba - 在 VBA 中读写注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32345238/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com