VB.NET如何实现,不重启刷新注册表

dragonlql1984 2008-05-16 03:16:29
看了不少论坛中的问题与回复,有的说用SystemParametersInfo可以实现,有的说SendMessage()
在MSDN中也没有找到相对应的方法。
我现在是对注册表SOFTWARE\microsoft\windows\currentversion\policies\explorer下的NoDriveTypeAutoRun
的值进行了修改,想让他在不重启的情况下生效,有经验的朋友请给点见解
...全文
363 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ny-6000 2008-05-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zcsor 的回复:]
有恶心的方法,可以KELL EXPLORER
[/Quote]

这个报告起来,可能会影响到其他正打开的窗口。
dragonlql1984 2008-05-23
  • 打赏
  • 举报
回复
我也想过这个问题,有没有人有其它的方法帮我解决阻止USB插入后自动运行的问题?
C#,VB.NET均可以。
dragonlql1984 2008-05-22
  • 打赏
  • 举报
回复
你的意思是KILL掉 EXPLORER 然后再重新启动EXPLORER吗?这样会不会带来其他的问题呢?你有KILL的VB.NET代码吗?没有我自己去找找,试试。
清晨曦月 元老 2008-05-22
  • 打赏
  • 举报
回复
有恶心的方法,可以KELL EXPLORER
dragonlql1984 2008-05-20
  • 打赏
  • 举报
回复
我知道是什么错误,我希望能够得到解决方法,我想知道我的Code 在VB.NET下是否正确,是不是因为Declaration本身就有错误而导致了无法正常运行?如果是应该怎样修改?
liu_binq63 2008-05-20
  • 打赏
  • 举报
回复
楼主,你用的是日文系统?
提示说出现MDA关闭的错误。
dragonlql1984 2008-05-20
  • 打赏
  • 举报
回复
首先先向各位道歉,我的Declaration运用的是VB6方法,如果用VB.NET方法,有人知道怎么做吗?但最主要的还是如何用VB.NET实现对注册表的刷新?
hzybc 2008-05-19
  • 打赏
  • 举报
回复


值改了就升效了吧
dragonlql1984 2008-05-19
  • 打赏
  • 举报
回复
单纯的修改值不能使之生效。我用的是SendMessage()方法

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
As Long

Public Const WM_SETTINGCHANGE = &H1A
Public Const HWND_BROADCAST = &HFFFF&

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load

Microsoft.Win32.Registry.CurrentUser.DeleteSubKey _
("SOFTWARE\microsoft\windows\currentversion\policies\explorer")

Dim noDriveTypeAutoRun As Microsoft.Win32.RegistryKey = _
Microsoft.Win32.Registry.CurrentUser.CreateSubKey _
("SOFTWARE\microsoft\windows\currentversion\policies\explorer")

noDriveTypeAutoRun.SetValue("NoDriveTypeAutoRun", 145, _
Microsoft.Win32.RegistryValueKind.DWord)


SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0)

End Sub

这是我写的代码,目的是修改注册表SOFTWARE\microsoft\windows\currentversion\policies\explorer下的NoDriveTypeAutoRun 的值,并使之立即生效,但是系统提示“MDAに関する情報を取得します。”

我不知道是什么问题,是否我的方法运用错误,还是应用的参数有误,希望有人能给予见解。
bfblang 2008-05-17
  • 打赏
  • 举报
回复
不重启的情况下生效?生效什么?你写到那里的程序名启动?再次重启系统时生效。要不就先用代码命令启动一次。
今晚就我耍啦啊,^_^哈哈
Ny-6000 2008-05-16
  • 打赏
  • 举报
回复
不怎么了解,

帮一下忙了 

16,718

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧