我开发了一个必须写入Windows注册表的实用程序。我想知道没有管理员权限的用户是否可以写入注册表。我试过“HKEY_LOCAL_MACHINE”,它被锁定了。这些用户可以写入注册表中的任何部分吗?如果不是-如果用户不是管理员中的成员,则用户需要什么权限才能写入注册表。组?提前致谢! 最佳答案 对于用户设置,您必须使用HKEY_CURRENT_USER。每个用户都有此注册表的个人副本,一个用户无法访问另一个用户的设置。如果用户有漫游配置文件,注册表将与用户在不同的计算机上漫游。如果您确实需要存储在本地计算机上并由该计算机上的所有用户
我有一个程序可以从“Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU”输出各种注册表值。但是程序在GetValue部分或程序的s变量处输出错误Cannotimplicityconverttype'object'to'string'!并且程序输出“也无法访问已关闭的注册表项”的错误。有人可以就代码提供建议吗?谢谢!代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingMic
我想从注册表中读取DirectX版本。我在值Version下的HKLM\Software\Microsoft\DirectX找到了值。我的问题:引用HeyScriptingGuy!我的版本“4.09.00.0904”是9.0c,但dxdiag显示DirectX11。如何找到合适的版本?或者有没有办法在没有注册表的情况下解决这个问题?编辑:我正在使用Windows7Professionalx86 最佳答案 您无法从注册表中检测到任何高于DirectX9的版本。它根本没有存储在那里。对于版本10及更高版本,您应该使用COM接口(inte
我来自Linux领域,请多多包涵。我想递归地遍历Windows注册表。到目前为止,我所做的一切都是为了获取各个键的值>require'luacom'>sh=luacom.CreateObject"WScript.Shell">=sh:RegRead"HKCU\\Console\\ColorTable01"8388608还没有办法迭代注册表节点... 最佳答案 如果您需要使用Lua执行任何特定于Windows的操作,您的第一个调用端口应该是winapi图书馆;在这种情况下,您可以使用open_reg_key()枚举注册表项和Regke
我知道我可以从Classes\\CLSID\@的注册表中的COM类对象中读取CLSID.我怀疑在注册的COM接口(interface)上我可以从Classes\\IID\@读取IID或Classes\CLSID\\IID.我已阅读文章COMIDs&Registrykeysinanutshell这个问题对我来说仍然是开放的。不幸的是,我现在没有测试用例。 最佳答案 注册表并不是一种编程资源,注册表项仅在COM基础结构需要时才存在。例如,CLSID键是帮助COM找到实现服务器的可执行文件所必需的,程序员必须提供CLSIDguid。他还需
我是.NET开发人员,不熟悉COM。我想知道注册一个COM组件需要什么?注册期间会发生什么。 最佳答案 InorderfortheOStofindacomponentwhenaprogramneedsit,itmustberegisteredwiththesystem.ThesystemthenrecordsitintheRegistry.UsuallyacomponentisregisteredbyrunningtheprogramREGSVR32.EXE,whichassumesthatthecomponenthasbeenpr
我有一个测试实用程序,它依赖于在我的开发机器上安装/注册的ocx文件。我们希望在测试机器上运行这个工具,而不用任何不必要的文件污染机器。除了目标机器软件外,什么都不应该安装。在网络驱动器上或从复制到测试机器的独立目录运行该工具是理想的。但是,在测试机上注册ocx是不可能的。将ocx文件放在与exe相同的目录中不起作用。无论如何它仍然给我这个错误——“应用程序启动失败,因为应用程序配置不正确。重新安装应用程序可能会解决问题。”我还能尝试什么?仅供引用,我使用的是VisualStudio2008。 最佳答案 如果我们谈论的是Window
我在看MSDN文档说我可以CoCreateInstanceaSENSobjectusingitsCLSID.但是,尚不清楚__uuidof(SENS)是否意味着什么——因为它只是Sensevts.h文件中的前向声明。此外,SENS类仅提供“传出”接口(interface),并被标记为“不可创建”(通过MSComViewer查看),这让我不知道如何引用SENS对象本身的实例。这与获取instanceofIShellLink的示例代码形成对比:HRESULThr;IShellLink*pISL;hr=CoCreateInstance(CLSID_ShellLink,//CLSIDofcoc
为一台机器上的所有用户设置注册表值的最佳方法是什么。枚举HKEY_USERS并更改ntuser.dat是一种解决方案。还有其他解决方案可以在XP、VISTA和Windows7中使用吗?实际上安装程序需要将一个key写入注册表。所有用户都需要使用该key。一旦使用过的key应该被重置。如果我们在HKLM中只保留一份key拷贝,则无法做到这一点。因为如果第一个用户使用它并重置它,那么其他用户将无法使用它。我能想到的唯一解决方案是在所有用户中写入该key,但这在Windows7的情况下不起作用。 最佳答案 除非您拥有管理员权限,否则您不能
我正在尝试通过cmd添加以下注册表项。我无法让其他用户能够使用regedit.exe/s"Location\Project.reg"添加此注册表项。[HKEY_CURRENT_USER\Software\Autodesk\Fabrication2014\Configuration\1011-Shady-Grove]"Path"="C:/Autodesk/Profiles/05MA/1011-Shady-Grove" 最佳答案 您使用了错误的工具。Regedit是一个GUI工具。是的,您可以使用/s开关,但从根本上说这是错误的工具。此