我们正在尝试使用C#将键值对添加到Windows注册表中。要写的关键是另一个用户的环境变量。用户将成为服务用户,永远不会登录。我们已经能够通过P/InvokingLoadUserProfile获取用户SID,并将其添加到注册表。但是,当尝试写入EnvironmentSubKey时出现问题:using(varkey=Registry.Users.OpenSubKey(userSid+"\\Environment")){if(key==null){Debug.WriteLine("Keywasnull(typical)");return;}key.SetValue("A","B");}这会
是否可以确定给定的注册表项是否被重定向?我的问题是我想从32位应用程序以通用方式在32位和64位注册TableView中枚举注册表项。我可以简单地打开每个键两次,首先使用KEY_WOW64_64KEY,然后使用KEY_WOW64_32KEY。但是,如果key没有被重定向,这会为您提供完全相同的key,并且您最终会枚举完全相同的内容两次;这是我要避免的。我确实找到了一些documentation在上面,但看起来唯一的方法是检查配置单元并对键进行一系列字符串比较。我想到的另一种可能性是尝试在每个子项上打开Wow6432Node;如果存在,则必须重定向key。IE。如果我尝试打开HKCU\S
我想向用户提供一个已知文件扩展名的列表,供他选择。我知道这些存储在HKEY_CLASSES_ROOT下的注册表中,通常是这样的:.txt->(默认)="txtfile"然后txtfile包含有关相关程序等的信息。不幸的是,注册表中的那个地方还存储了许多其他键,例如文件类型(例如txtfile)和类似的条目CAPICOM.Certificates(不管是什么)如何确定哪些条目是文件扩展名?或者是否有不同的方式来获取这些扩展,例如API函数?(我认为这不重要,但我正在使用Delphi编写程序。) 最佳答案 不能保证HKEY_CLASSE
我知道有可能registerglobalhooksformouse移动、按钮点击、滚动等,但我想知道是否有任何方法可以检测用户是否真的在使用全局Hook拖动文件或文本(或其他一些内容)。似乎找不到任何东西。 最佳答案 它不由Windows消息处理,即使需要消息循环才能使其工作。经典COM要求。从RegisterDragDrop()开始阅读以查看管道。值得注意的是,UAC的UIPI方面会妨碍您,您不能从非提升的进程D+D到提升的进程。ChangeWindowsMessageFilter()是通常的解决方法,它不适用于D+D。没有已知的
我使用以下代码将目录路径保存到注册表:HKEYhKey;RegCreateKeyEx(HKEY_CURRENT_USER,L"Software\\BArtWell\\MyApp",0,NULL,REG_OPTION_VOLATILE,KEY_WRITE,NULL,&hKey,NULL);RegSetValueEx(hKey,L"Directory",0,REG_SZ,(LPBYTE)sz,(DWORD)wcslen(sz)*sizeof(wchar_t));RegCloseKey(hKey);重启前一切正常。但重启后路径HKCU\Software\BArtWell\MyApp不存在。在
我需要创建一个python脚本来遍历HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall的内容并返回每个键的DisplayName。我将其用作起点(在另一个stack-overflow帖子中找到)import_winregimportwmic=wmi.WMI(namespace="default").StdRegProvresult,value=c.GetStringValue(hDefKey=_winreg.HKEY_LOCAL_MACHINE,sSubKeyName="SYSTEM\Contro
我想在目标机器上跟踪系统范围内的设置-它是一个运行时间计数器,用于跟踪我的客户端运行我的软件的次数。我决定将这个值放在注册表中,但我真的想跟踪它在整个系统中运行了多少次,而不仅仅是当前用户帐户。我希望使用HKLM在机器级别跟踪它,但现在UAC不喜欢这样。是否有正确的方法来读取和写入机器范围内的设置? 最佳答案 HKLM不适用于此类用途(至少从WindowsXP开始)。改用%PROGRAMDATA%文件夹(您也可以通过WinAPI函数SHGetKnownFolderPath和FOLDERID_ProgramData获取(SHGetFo
我将一些PowerShell拼凑在一起以远程查询存储在.csv文件中的机器列表以获取注册表值。如果注册表项的值等于“1”,则脚本应使用机器名称作为文本文件的名称来创建一个文本文件。一切正常。该脚本运行愉快,没有任何错误。问题是,当我返回并远程检查目标注册表值时,我发现该值不是1。脚本只是为.csv中的每一行创建一个文件。我做错了什么?编辑***我发现一个问题我在注册表路径的$key变量中有错字。2013年7月17日下午2:21$File=Import-Csv'c:\temp\machines.csv'foreach($linein$file){$machinename=$line.ma
我需要从注册表(最好)或文件中读取设置。该驱动程序是一个内核驱动程序,设置为启动类型设置为SYSTEM,因此所有服务和WinAPI不一定都可用。我正在尝试使用RtlQueryRegistryValues函数以便从注册表中读取单个String值,但无论我做什么,我似乎都得到相同的0xC0000034转换为STATUS_OBJECT_NAME_NOT_FOUND的错误代码.根据MSDN上提供的文档STATUS_OBJECT_NAME_NOT_FOUND从RtlQueryRegistryValues返回当路径参数与有效键不匹配时,或者设置了特定标志并且不满足特定于该标志的条件时。据我所知,注
我正在尝试在WindowsServer2008R2启动时启动一个jar文件。我试图添加一个键\值到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run我尝试了几种替代方案作为值(value):java-jarc:\jcm\jcm.jar"java-jarc:\jcm\jcm.jar"c:\programfiles(x86)\java\jre1.8.31\bin\java.exe-jarc:\jcm\jcm.jar"c:\programfiles(x86)\java\jre1.8.31\bin\java.exe-j