Windows 7 使用Windows 7注册表在用户之间共享数据

Windows 7 使用Windows 7注册表在用户之间共享数据,windows-7,registry,Windows 7,Registry,我有一个用XP编写的程序。我发现它在Win7上无法正常工作,因为HLKM不再可由非管理员写入 本质上,当您注册程序时,许可信息应该进入注册表。这些信息对计算机上的每个人都有效,而不仅仅是一个用户,所以我不想把它放在HKCU中。但程序的任何副本都需要能够编辑该注册表(即使它是非管理员运行的),因为在某些情况下,它将从我的web服务器获取更新的许可证信息(例如,如果注册表数据丢失或损坏,或者您当前的许可证已过期,则需要查看我们是否已应用扩展) 如果每个启动程序的唯一用户都能访问web服务器,这并不可

我有一个用XP编写的程序。我发现它在Win7上无法正常工作,因为HLKM不再可由非管理员写入

本质上,当您注册程序时,许可信息应该进入注册表。这些信息对计算机上的每个人都有效,而不仅仅是一个用户,所以我不想把它放在HKCU中。但程序的任何副本都需要能够编辑该注册表(即使它是非管理员运行的),因为在某些情况下,它将从我的web服务器获取更新的许可证信息(例如,如果注册表数据丢失或损坏,或者您当前的许可证已过期,则需要查看我们是否已应用扩展)


如果每个启动程序的唯一用户都能访问web服务器,这并不可怕,但它会导致一些恼人的问题,因此我宁愿它继续像在XP中那样工作。是否有办法将数据存储在注册表中并在Win7下共享,或者我必须开始考虑在dr上存储INI文件ive?

你能让安装程序使你的注册表特定区域人人都可写吗?我希望安装程序无论如何都需要以提升的权限运行-因此这似乎是一种理想的方法。

你能让安装程序使你的注册表特定区域人人都可写吗无论如何,aller都需要以提升的权限运行,我想这似乎是一种理想的方法。

以下是我将如何构建它:您的安装程序运行提升并设置密钥。然后,如果他们的许可证损坏或诸如此类,您可以启用一个按钮或菜单项,其中包含“修复许可证”或“更新许可证”等文本。您可以在该按钮或菜单项上放置一个屏蔽。当他们单击它时,您可以使用ShellExecute启动一个单独的exe。该exe有一个需要提升的清单。然后它可以写入注册表的受保护区域。应用程序的其余部分可以有一个带有asInvoker的清单


如果你想让它完全不可见,要么整个应用程序必须一直运行在高位(恼人)或者有时应用程序会在没有警告的情况下启动另一个请求提升的exe,在这种情况下,智能用户会说不。在我看来,少一点隐身性是一件好事。

以下是我的设计方法:你的设置运行提升并设置密钥。然后,如果他们的许可证损坏或诸如此类,你可以启用一个按钮或菜单包含“修复许可证”或“更新许可证”等文本的项。您可以在该按钮或菜单项上放置一个屏蔽。当他们单击它时,您可以使用ShellExecute启动一个单独的exe。该exe有一个需要提升的清单。然后它可以写入注册表的受保护区域。应用程序的其余部分可以有一个带有asInvoker的清单


如果你想让它完全不可见,要么整个应用程序必须一直运行在高位(恼人)或者,有时该应用程序只会在没有警告的情况下启动另一个请求提升的exe,在这种情况下,智能用户会说不。在我看来,少一点隐身性是一件好事。

这是最好的选择,因为它使用UAC机制,使您在HKLM下的许可信息与用户更改时实际安装的可执行文件一样安全未受驱动的用户(或恶意程序)。这是最好的选择,因为它使用UAC机制使您在HKLM下的许可信息与未受驱动的用户(或恶意程序)更改时实际安装的可执行文件一样安全。这应该是可行的,但我不认为这是一种理想的方法。它使HKLM下的许可信息容易受到非特权用户更改的影响。理想情况下,您希望保护许可信息,就像保护应用程序中已安装的EXE和DLL一样。Kate Gregory建议的方法将实现此目标。实际上这对我正在处理的问题之一很有效。如何告诉安装程序使HKLM的一部分成为用户可写的?这应该是可行的,但我不认为这是一种理想的方法。它使HKLM下的许可信息容易受到非特权用户更改的影响。理想情况下,您希望像stron一样保护许可信息gly作为应用程序中已安装的EXE和DLL。Kate Gregory建议的方法将实现该目标。实际上,这对我正在处理的问题之一很有效。如何告诉安装程序使HKLM的一部分可由用户编写?