Articles of registry

Windowsregistryredirect是一个“坏事”?

我有我自己的安装程序,我用它来安装我写的几个应用程序。 我一直在更新这个程序,以避免应用程序的数据文件更新到用户的VirtualStore,因为我读这是一个“坏事”。 我这样做是通过将程序和常用数据文件分别存储在正确的位置,而不是像XP中那样将所有内容都保存在程序文件中。 我现在也在使用SHGetFolderPath(是的,它已被弃用,但我仍然需要支持我的XP用户),以获取已知的文件夹,而不是拖网registry,这是另一个“坏事”(我读)。 接下来我要做的是重写安装程序代码,避免在向HKLM写入内容时将registryredirect到Wow6432Node,因为我认为这是另一件“坏事”。 然而,虽然我可以把应用程序特定的东西(如安装文件夹,如果用户决定安装在默认以外),杀手是需要将卸载信息放在HKLM \ Software \ Microsoft \ Windows \ CURRENTVERSION \卸载。 对于在64位系统上运行的32位的东西,这被redirect到Wow6432Node。 我不觉得有什么办法 – 事实上是可能的吗?

RegCreateKeyEx()和GetLastError()

为什么RegCreateKeyEx()返回一个LONG ,而不是通过SetLastError()设置DWORD错误代码? 将它的LONG返回值转换为DWORD ,然后将它设置为SetLastError()的全局错误代码是否安全? http://msdn.microsoft.com/en-us/library/windows/desktop/ms724844(v=vs.85).aspx

开始 – >运行对话框 – “以pipe理员身份运行”checkbox?

我试图find是否有一个registry项,以启用Windows 7中的“开始” – >“运行”对话框中的“以pipe理员身份运行”checkbox(类似于可以在registry中启用的“在单独的内存空间中运行”checkbox) 。 在几个网站,我记得我有这个选项,但是在我现在的电脑,它没有启用/可见。 如果您知道通过registry启用此checkbox的方法,或者通过第三方工具包提供,请指出正确的方向? 我已经知道如何创build一个快捷方式,并设置“以pipe理员身份运行”在一个特定的应用程序和“runas”命令,我正在寻找启用checkbox在开始 – >运行命令特别是在这种情况下。 谢谢。

编辑Windowsregistry,从Python,在Linux下

我正在寻找一个Python API(或者我愿意绑定的C API),用于在Linux系统中将Windowsregistry从XP编辑为7。 Windows目标将是Linux下的一个装载卷。 如果不存在,我愿意编写一个库。 因此,在registry中的任何文档或内部结构也将是方便的。 任何帮助,非常appriciated。

如何将多个文件名传递给上下文菜单命令

将一个文件名传递给上下文菜单的shell命令很简单: [HKEY_CLASSES_ROOT\*\shell\MyProgram\Command] @="program.exe %1" 但是,如果我select了多个文件, 每个这样select的文件都会调用program.exe 。 我想要做的只是调用一次program.exe ,传递给它当前select的所有文件名。 这个怎么做?

Set-ItemProperty将registry值设置为string而不是DWord,为什么?

我尝试使用PowerShell中的Set-ItemProperty创build一个项目,该项目适用于大多数系统: New-PSDrive -name HKCR -PSProvider Registry -root HKEY_CLASSES_ROOT Set-ItemProperty -Path HKCR:\Software\MyCompany\ -Name Level -Value 5 -ErrorAction SilentlyContinue 这在大多数Windows 7系统上创build了一个DWORD值,但是我发现一个系统创build了一个STRING值,我想知道:为什么? 会发生什么系统的行为有所不同? 所有没有已经设置的值,都使用相同的基础镜像使用相同的Powershell版本。 顺便说一句,我发现通过使用下面的代码,我可以明确地设置一个types,所以我已经解决了这个问题: New-ItemProperty -Path HKCR:\Software\MyCompany\ -Name Level -Value 5 -ErrorAction SilentlyContinue -PropertyType DWord 但只是为了好奇,我想知道为什么系统的行为有所不同。

读取存储在registry中的GUID值

我尝试读取在Delphiregistry中存储为一个binary值的GUID值。 当我用BintoHex读它时,结果却是相反的。 看来我必须交换字节,但我认为BinToHex会做到这一点。 我提到这个线程,但我找不到正确的解决scheme: 如何在Delphi中将字节数组转换为其hex表示它似乎是由于小Eendian。 下面,你可以看到存储在registry中的GUID 这是我的代码: var s : string; buffer : pointer; … begin getmem(buffer, 1024*1024); …. reg.ReadBinaryData(iValueOfregistry, buffer^, 1024*1024); …. bintohex(pointer(longint(buffer)+14), PChar(s), 32); s的输出: 90E24D373F126545916439C4925E467B GUID应该是FOLDERID_Downloads GUID: {374DE290-123F-4565-9164-39C4925E467B} 请帮忙

获取registry项的值C#

我已经看过现有的主题,所以请尽量避免在这里丢弃链接。 我想获得registry项的价值 – 简单明了。 这是我迄今为止。 registry: 1)下了一个密钥 CURRENT_USER \ SOFTWARE \ Custom_Subkey \ Custom_Value \ Custom_key \ STRING_VALUE 我正在试图findstring_value string reg_subKey = "Software\\Custom_Subkey\\Custom_Value"; RegistryKey root = Registry.CurrentUser.CreateSubKey(reg_subKey); foreach (string keyname in root.GetValueNames()) { textBox4.AppendText(keyname.ToString() + Environment.NewLine); // Appends the following data to textBox4 once the foreach is completed: // Header1 // Header2 // Header3 // […]

Inno设置registry

我可以添加到winregistry,以便资源pipe理器上下文菜单,当你右键点击一个文件,得到一个条目,调用“\path\到\ EXE”“path\ \ \本\文件\你\右\点击\上”? 如果在Inno setup中可以做到这一点,你能否给我提供一些例子? (以及在卸载时摆脱registry键) 谢谢。

C#WOW6432registry节点messin事情了

试图完成写入registry的简单任务,使C#应用程序在启动时运行。 使用基本的Win32.RegistryKey设置,但由于某些原因,它不断将我的密钥添加到/SOFTWARE/WOW6432/Microsoft/Windows.. etc目录,而不是普通的ol /SOFTWARE/Microsoft/Windows.. 试过看了一下,但似乎没有一个简单的答案这个问题:如何具体写一个密钥/SOFTWARE/Microsoft/Windowsregistry项,而不是它写入WOW6432 ? 我已经检查,以确保我的Visual C#速成解决scheme文件的平台列为x86 …所以它正在编译…我只是不想要那个wow6432目录。 感谢您的任何build议! 编辑: 我现在使用以下,但仍然没有成功: Microsoft.Win32.RegistryKey localKey32 = Microsoft.Win32.RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, Microsoft.Win32.RegistryView.Registry64);