Articles of registry

如何删除文件关联

我想知道什么信息应该删除,以删除与特定的文件扩展名的程序关联。 我显然知道扩展存储在HKEY_CLASSES_ROOT键,但我不知道要删除或保留什么。 程序卸载时是否应该删除整个.EXTENSION键? 我应该备份密钥的原始数据吗? 或者干脆清除默认的键值(这是程序ID)? 请指教。

了解registry数据引用到一个dll文件的负偏移量

我几乎要回答我最后一个问题 ,但我需要帮助。 Windows防火墙规则(Vista及更高版本)存储在registry中HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules 示例规则: v2.0|Action=Allow|Active=TRUE|Dir=Out|Protocol=6|Profile=Domain|RPort=5722|App=%SystemRoot%\system32\dfsr.exe|Svc=Dfsr|Name=@FirewallAPI.dll,-32257|Desc=@FirewallAPI.dll,-32260|EmbedCtxt=@FirewallAPI.dll,-32252|Edge=FALSE| 我需要解码的字段是EmbedCtxt=@FirewallAPI.dll,-32252 我认为它引用C:\WINDOWS\System32\FirewallAPI.dll ,但我不知道如何数字的作品。 该文件是〜400KB取决于。 我尝试了一些变化,例如假装它是一个未签名的short ,假装它不是负面的,假装它被偏移了,但是当我用我的hex编辑器到达位置时,它们看起来不正确。 有人能给我他们的想法吗? 这个数字可能意味着什么? 我几乎不知道任何关于DLL文件。 它甚至可以是我知道的所有部分。 我也尝试search文本的预期输出,但它似乎不是每个字符的字节,也不是UTF-16,无论是或者我做错了什么。

C ++searchWindowsregistry

我试图在registry中search特定组中的键(本地 – > Windows – >卸载),所以我最终可以以编程方式卸载这些应用程序。 我有问题得到关键的名字,所以我可以打开它。 这是我所尝试的: void Uninstall::uninstallProgram(string appName) { HKEY currentKey; TCHAR name[1024]; DWORD dwSize = 1024, dwIdx = 0; FILETIME fTime; long result; result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, POLICY_KEY, 0, KEY_QUERY_VALUE | KEY_SET_VALUE, &currentKey); if (result != ERROR_SUCCESS) { cout << "Error opening Installation Registry, verify that this location exists under: " << […]

如何查询远程机器上的用户registry设置?

假设我有一个远程机器,我是一个pipe理员,我想查询给定的机器上给定的用户在HKEY_CURRENT_USER的Windowsregistry中的一些值。 (用户可能已login或closures。) 有没有可能像这样查询HKCU? 而且,如果是这样,怎么样?

我在资源pipe理器中有一个上下文菜单项,现在怎样才能最好在文件上调用我的进程?

我在资源pipe理器中添加了一个上下文菜单项。 我通过registry修改添加它。 右键点击一个文件,我想打电话给我的压缩algorithm。 目前,这种压缩function是C#类库中的一种方法。 我有一个基本的Visual Studio 2010解决scheme包含这个类库(1类,1资源文件),和一个安装向导项目(非常简单)。 目前,当我在此安装向导上运行“install”时,我设法为类库创build了一个DLL,并将资源文件放在了安装时给出的位置。 从我的registry项中,我能够运行一个命令。 目前我在右键单击的文件上运行notepad.exe。 1.我能以某种方式注册我的DLL来调用它的函数吗? (我没有看任何shell扩展,我觉得有一些简单的) 2.否则,我不介意使用控制台应用程序等创build一个.exe。 如果我这样做,我会从我的Main(string [] args)的args参数获取文件path吗? 3.在选项2中,我需要引用我的.exe文件? 我没有看到我的环境variables中的任何地方记事本+ +仍然可以调用,而不指定其path。 感谢你们 !

Windowsregistry文件的影子副本

我需要find磁盘上的所有Windowsregistry文件,包括来自Windows影子副本的备份registry数据。 问题是我不知道这些文件的位置。 在互联网上,我发现这个命令vssadmin list shadowstorage但它返回给我这个 For volume: (C:)\\?\Volume{ba406d28-f092-11dc-b3d7-806e6f6e6963}\ Shadow Copy Storage volume: (C:)\\?\Volume{ba406d28-f092-11dc-b3d7-806e6f6e6963}\ 这是什么? 那些文件真的在哪里? 我怎样才能访问它们? 如果我扫描硬盘驱动器的二进制文件与“REGF”幻数在一开始就足以find所有的registry数据? 添加 我从文件夹属性创build一个备份文件夹的快捷方式(以前的版本)这是什么快捷方式指向 \\localhost\C$\@GMT-2012.04.12-00.13.21\Windows\System32\config 看起来像包含备份文件,但它可以作为一个普通的目录访问它? 我如何在硬盘上find这些目录? 提前致谢。

在从控制台运行作为服务运行时,Java服务包装程序出现问题

我有一个访问registry项的Java服务包装器应用程序。 (是的,我知道,很奇怪,呵呵?如果你想知道,我正在使用David的解决scheme来解决这个问题 ,使用Java从registry中读取。) 在32位版本的Windows上,一切正常。 我可以从控制台(使用Java Service Wrapper的.bat文件)和作为从bat文件安装的服务运行我的应用程序。 我可以从Windowsregistry中看到我需要的各种东西。 但是,在64位Windows系统上,当我将应用程序作为服务运行时,我再也看不到需要的registry项; 条目全部显示为空。 但是,它仍然在控制台中工作! 我的假设是,从控制台运行时(作为pipe理用户,万一它是相关的),Java服务包装器启动一个64位JVM,并能够访问常规的64位registry。 然后,当作为一个服务运行(通过LOCALSYSTEM用户),它启动一个32位的JVM(然后将试图访问Wow6432bit节点中的哦,所以特殊的32位registry。我正在寻找的条目是没有从这个节点,这将解释为什么我在这种情况下为他们获得空值。 这导致了我的问题:为什么地球上的Java服务包装器启动时通过服务列表启动一个32位的JVM,为什么会从控制台启动时启动一个64位的JVM? 注:我正在使用Java服务包装3.5.14,并在我的configuration文件中 wrapper.java.additional.auto_bits=TRUE 理想情况下,我想保持JVMselect自动,所以我可以使用一个安装程序在32位和64位系统上部署我的软件。 (这是我select通过Tomcat使用JSW的一个原因,事实上。) 非常感谢您的阅读。

禁用其他应用程序编辑registry项

我们可以禁止编辑我们的应用程序使用的特定registry项。 我只希望我的应用程序对registry进行更改,而不能看到或编辑它们。

远程注册访问被拒绝给非pipe理员用户

我试图打开与远程计算机上的访问registry项的非pipe理员用户的远程registry项。 remoteKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, hostname); 我正进入(状态 请求的registry访问是不允许的。 在Microsoft.Win32.RegistryKey.OpenSubKey(string名称,布尔可写)在System.ThrowHelper.ThrowSecurityException(ExceptionResource资源)在Microsoft.Win32.RegistryKey.OpenSubKey(string名称)在RemoteRegistry.Program.Main(String []参数) 是否可以访问HKLMconfiguration单元以便从非pipe理员用户的任何其他机器远程访问? 另一方面为pipe理员用户它工作正常。 所有其他荨麻疹都可以通过上述行不会造成任何exception。 任何指针可能是什么问题。

如何从registry通过Inno安装程序获取Adobe Extension Manager应用程序path?

我一直在寻找开发安装程序,通过Inno Setup安装我的扩展。 我想在Inno Setup安装过程的[Run]部分启动Adobe Extension Manager作为安装后的过程。 现在,机器上可以安装多个版本的Extension Manager,默认情况下启动Extension Manager的最新版本。 我想确保用户在安装过程中select的产品版本启动相应的扩展pipe理器。 例如,如果一台机器安装了Photoshop CS5,CS6,并且用户selectPhotoshop CS5,则应启动Extension Manager CS5。 为此我需要应用程序的path。 我无法从registry获取扩展pipe理器path。