Tag: 注册表

修改c#中的现有注册表项值

我想使用Windows 7中的C#代码修改注册表路径SOFTWARE\Wow6432Node\Program\SubProgram中的数据。我能够读取值,但我无法写入Registry 。 这是代码: RegistryKey SUBKEY; RegistryKey TAWKAY = RegistryKey.OpenRemoteBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, “”); string subkey = “SOFTWARE\\Wow6432Node\\Program\\SubProgram “; if (TAWKAY.OpenSubKey(subkey) != null) // Get values from Registry { TAWKAY = RegistryKey.OpenRemoteBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, “”); SUBKEY = TAWKAY.OpenSubKey(subkey); // subkey opens SUBKEY = TAWKAY.OpenSubKey(subkey,true); // subkey not open shows error Requested registry access is not allowed SUBKEY.SetValue(“Some name”, “1234567890”); Console.WriteLine(SUBKEY.GetValue(“Some […]

将注册表字符串值读入列表

我有一个注册表项位置,显示如下: 我正在寻找C#代码,它允许我枚举HKEY_LOCAL_MACHINE \ SOFTWARE \ Test \ Windows Update \ Exceptions中的所有REG_SZ值,以便我可以将它们添加到列表中。 我已经找到了在知道显式路径时如何读取特定值(RegistryKey.GetValue方法)的示例,但在这种情况下,我需要读入“exception”键下的所有值,而不知道值名称将是什么是。

如何从服务访问当前登录用户的HKCU注册表?

在Windows服务中,我想检查存储在每个用户的HKCU注册表区域中的一些用户首选项。 我怎样才能做到这一点? 我看到HKEY_USERS有每个用户登录到机器的子键(或类似的东西?),其中包括每个用户的HKCU区域。 但是,这些子键是用户的SID,所以不知怎的,我需要计算出当前登录用户的SID。 然后,我将查询HKEY_USERS\\whichever\key\i\need代替查询HKEY_CURRENT_USER\whichever\key\i\need 。 从这个问题我可以获得DOMAIN \ USER格式的机器上当前用户的列表。 有没有办法从他们的Windows登录获取用户的SID? 或者是否有更直接的方法来获取当前登录用户的HKCU注册表路径?

如果我不知道它的类型,如何从远程计算机获取注册表值? (C#)

根据存储的值类型,我必须使用以下方法之一: GetBinaryValue GetDWORDValue GetExpandedStringValue GetMultiStringValue GetStringValue 如果我所知道的值是hive,key和value name,我不想尝试所有五个。 有没有办法做到这一点? 我正在使用WMI,但如果唯一的方法是使用advapi32.dll方法,我对此持开放态度。

获取/设置注册表ACL“SeSecurityPrivilege”时出现C#随机exception

我已经得到一个完全随机的exception,我可以运行1000次相同的代码集(每个“运行”是程序的完整结束,因此从命令行开始作为自己的进程然后存在)并得到它失败一次,甚至150次。 我的意思是我可以一遍又一遍地回溯它,它会完全随机失败。 System.Security.AccessControl.PrivilegeNotHeldException: The process does not possess the ‘SeSecurityPrivilege’ privilege which is required for this operation. at System.Security.AccessControl.Win32.GetSecurityInfo(ResourceType resourceType, String name, SafeHandle handle, AccessControlSections accessControlSections, RawSecurityDescriptor& resultSd) at System.Security.AccessControl.NativeObjectSecurity.CreateInternal(ResourceType resourceType, Boolean isContainer, String name, SafeHandle handle, AccessControlSections includeSections, Boolean createByName, ExceptionFromErrorCode exceptionFromErrorCode, Object exceptionContext) at System.Security.AccessControl.RegistrySecurity..ctor(SafeRegistryHandle hKey, String name, AccessControlSections includeSections) at Microsoft.Win32.RegistryKey.GetAccessControl(AccessControlSections includeSections) […]

ERROR_MORE_DATA – PVOID和C# – 非托管类型

如何从以下DLL获取值? offreg.dll。 在我的下面的代码中,我已经成功打开了配置单元,密钥,现在我正在尝试获取密钥的值,并且我一直遇到ERROR_MORE_DATA(234)错误。 这是C ++ .dll: DWORD ORAPI ORGetValue ( __in ORHKEY Handle, __in_opt PCWSTR lpSubKey, __in_opt PCWSTR lpValue, __out_opt PDWORD pdwType, __out_bcount_opt(*pcbData) PVOID pvData, __inout_opt PDWORD pcbData ); 这是我的C#代码: [DllImport(“offreg.dll”, CharSet = CharSet.Auto, EntryPoint = “ORGetValue”, SetLastError = true, CallingConvention = CallingConvention.StdCall)] public static extern uint ORGetValue(IntPtr Handle, string lpSubKey, string lpValue, out uint […]

C#代码,用于在Windows 8中使用带有哈希的自定义progid更改附加扩展名的默认程序

目的:将新progid与扩展名相关联,以便使用新的关联程序打开该文件。 编程语言:C# 描述: 我想创建一个程序,将另一个程序与我推荐的程序列表中的扩展名相关联。 我的程序在windows-xp和windows-7中工作,但它在windows-8中不起作用。 当我搜索这个问题时,我发现在Windows-8中还有一个名为“Hash”的附加键。 我无法找到新progid的哈希值。 被跟踪的步骤: 在HKEY_CLASSES_ROOT创建了一个类“MyTest.txt”,例如: HKEY_CLASSES_ROOT MyTest.txt Shell Open Command (Default) “[PATH TO NOTEPAD] “%1″” 我注意到在LOCAL_MACHINE文件夹中也创建了相同的密钥 现在我想将此“MyTest.txt”ProgID指定给 [HKEY_CURRENT_USER \软件\微软\的Windows \ CurrentVersion \ Explorer中\ FileExts.txt \ UserChoice] “散列”= “????” “PROGID”= “MyTest.txt” 但我无法在C#中为我新创建的ProgId“MyTest.txt”找到Hash。 使用C#的代码: public void changeExtensionDefaultProgram(string fileext,string operationmode, string oldkeyname, string fileopenerpath) { try { if (!string.IsNullOrEmpty(fileext)) { //Global declaration for new […]

使用.Net MVC2中的C#访问远程注册表项

我正在使用以下代码 private static string GetLogonFromMachine(string machine) { //1. To read the registry key that stores this value. //HKEY_Local_Machine\Software\Microsoft\Windows NT\CurrentVersion\WinLogon\DefaultUserName var rHive = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, machine); var rKey = rHive.OpenSubKey(@”Software\Microsoft\Windows NT\CurrentVersion\WinLogon”); var rItem = rKey.GetValue(“DefaultUserName”); return rItem.ToString(); } 并且我已经确认我的用户具有访问权限,MVC站点正在使用集成身份validation,并且列出的REG_SZ“DefaultUserName”在目标计算机上具有值,但是rItem没有获取值。 我想我做的事情很傻,我很想知道什么!

从注册表中删除文件夹 – 权限问题

我试图从注册表中删除一个文件夹。 假设我要删除该文件夹 Software\TeamViewer 我已经编写了代码但它给出了一个例外情况“你不能写”。 我猜它在权限和访问权限方面存在某种问题。 string keyapath = @”Software\TeamViewer”; RegistryKey regKeyAppRoot = Registry.CurrentUser.OpenSubKey(keyapath); regKeyAppRoot.DeleteSubKeyTree(keyapath); 如何授予我的软件从注册表中删除文件夹的权限? 编辑:我有我的系统的管理员权限。 我是否仍需要通过我的代码专门为应用程序分配权限?

使用C#为所有桌面快捷方式创建自定义右键单击上下文菜单项(Windows资源管理器)

问题很简单:我有很多桌面快捷方式指向大量文件,但我也有很多快捷方式指向这些快捷方式所指向的目录。 我想通过简单地为所有快捷方式(.lnk文件)添加另一个右键单击菜单选项来删除此冗余,该选项允许您将explorer.exe打开到包含指向文件的目录。 当我发现如何检索快捷方式的目标并且它正在工作时,我发现了一个关于如何将菜单项添加到右键单击上下文菜单的建议,但它不起作用(我把一个键放在HKCR * \ shellext \ ContextMenuHandlers下,名为Test and set “cmd.exe”的基值 但它显然不起作用 有什么建议吗? 更新1:如何向该菜单项添加图标?图标文件应具有多大的尺寸? 16×16或32×32? 提前致谢