JumpTo RegEdit
这是“JumpTo RegEdit”的替代品。
引言
这是“跳转到注册表编辑器”的 VB.Net 版本,原始文章地址:https://codeproject.org.cn/Articles/20283/JumpTo-RegEdit
此版本已更新至 VS 2008,然后使用来自这里的在线代码转换器转换为 VB.NET:http://converter.telerik.com/
背景
我一直在寻找一种方法,以便在我的几个程序中添加注册表跳转功能,所以我将 C# 代码转换为 VB.NET。
使用代码
完整的测试项目包含在下载的 zip 文件中。
除了转换为 VB.Net 之外,代码相对于原始文章的更改非常少。
一些从 C# 转换的行转换为 DirectCast
时出现类型转换错误,所以我将它们更改为 CType
,现在可以正常工作了。
C# 代码
return Marshal.PtrToStringUni((IntPtr)(lpLocalBuffer.ToInt32() + Marshal.SizeOf(typeof(Interop.TVITEM))));
VB.NET 代码
在转换后的代码中更改此处
'Return Marshal.PtrToStringUni(DirectCast(lpLocalBuffer.ToInt32() + Marshal.SizeOf(GetType(Interop.TVITEM)), IntPtr))
变为这样:
Return Marshal.PtrToStringUni(CType(lpLocalBuffer.ToInt32() + Marshal.SizeOf(GetType(Interop.TVITEM)), IntPtr))
这只是需要转换为 CType
的几行代码之一。
在启用 UAC 的 Windows Vista 下运行时,会抛出此错误。
System.InvalidOperationException was unhandled
Message="WaitForInputIdle failed. This could be because the process does not have a graphical interface."
但以管理员身份运行时,不会抛出错误。
我添加了,="requireAdministrator"
以防有人忘记以“管理员身份运行”。
关注点
这次转换帮助我更多地了解了 API 函数的使用以及跳转到给定点的注册表。
希望对其他人有所帮助。
历史
初始转换日期:2012 年 7 月 8 日