我有一个程序可以读取和写入注册表文件以记住窗口位置等。这对于只是管理员来说非常简单,但如果您只是系统上的用户则不是那么简单。
如果您对此有任何很棒的建议,我会使用高级安装程序。
编辑/更新:
问题 1:如果不在 HKEY_CURRENT_USER 中,您将把东西放在哪里?
回答:当我将文件放在 HKEY_CURRENT_USER 下时,它只会放在该用户下。因此,如果我以管理员身份安装该程序,则只有该用户拥有这些文件。由于我使用的是高级安装程序,我不确定它是否属于某些设置值。
Bogdan Mitrache 的声明 1: 如果愿意,您还可以利用 Windows Installer 的 self 修复支持(Advanced Installer 也支持)让安装程序在 HKCU 下为每个启动应用程序的用户写入默认设置,即使是由管理员安装的。这是一个文件示例,但它也适用于注册表:advancedinstaller.com/user-guide/qa-self-healing.html
响应:除了我有条件安装的问题外,这是一个很好的解决方案。用户可以选择安装一个或另一个功能,它们都使用这些注册表值。这可能就是它对我不起作用的原因。我将研究在 AI 中从逻辑意义上复制文件。
最佳答案
处理此问题的正确方法是在HKEY_LOCAL_MACHINE(如果有的话)中存储默认值(例如在安装期间),然后再存储用户- HKEY_CURRENT_USER 中的特定 值。
当应用需要读取一个值时,首先检查 HKEY_CURRENT_USER,如果没有找到则检查 HKEY_LOCAL_MACHINE(或使用硬编码默认值)。
当应用需要存储一个值时,只存储在HKEY_CURRENT_USER中。
是的,这确实意味着如果您的应用程序由管理员运行,默认情况下它将从管理员的 key 中读取值,并将该值存储在管理员的 key 中。这完全没问题,因为管理员是当时应用程序的用户。如果应用程序由非管理员运行,则这些值将与该用户相关。
在应用程序以管理员用户身份运行但需要读取/存储另一个用户的 HKEY_CURRENT_USER 键中的值的情况下(例如,当非管理员用户登录到 Windows 并该应用程序正在使用其他用户的登录以 UAC 提升运行),然后该应用程序可以通过以下任一方式打开其他用户的 HKEY_CURRENT_USER key :
冒充其他用户然后使用 RegOpenCurrentUser() .
使用 LoadUserProfile() 加载其他用户的个人资料,它返回加载用户的 HKEY_CURRENT_KEY 键的句柄(除其他外)。
如果你想访问另一个用户的 HKEY_CLASSES_ROOT 键而不是 HKEY_CURRENT_USER,你可以使用 RegOpenUserClassesRoot() .
关于c++ - 每个用户的注册表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46000368/
我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server
我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数
我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。
我在新的Debian6VirtualBoxVM上安装RVM时遇到问题。我已经安装了所有需要的包并使用下载了安装脚本(curl-shttps://rvm.beginrescueend.com/install/rvm)>rvm,但以单个用户身份运行时bashrvm我收到以下错误消息:ERROR:Unabletocheckoutbranch.安装在这里停止,并且(据我所知)没有安装RVM的任何文件。如果我以root身份运行脚本(对于多用户安装),我会收到另一条消息:Successfullycheckedoutbranch''安装程序继续并指示成功,但未添加.rvm目录,甚至在修改我的.bas
如何将send与+=一起使用?a=20;a.send"+=",10undefinedmethod`+='for20:Fixnuma=20;a+=10=>30 最佳答案 恐怕你不能。+=不是方法,而是语法糖。参见http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_expressions.html它说Incommonwithmanyotherlanguages,Rubyhasasyntacticshortcut:a=a+2maybewrittenasa+=2.你能做的最好的事情是:
作为新的阿里云用户,您可以50免费试用多种优惠,价值高达1,700美元(或8,500美元)。这将让您了解和体验阿里云平台上提供的一系列产品和服务。如果您以个人身份注册免费试用,您将获得价值1,700美元的优惠。但是,如果您是注册公司,您可以选择企业免费试用,提交基本信息通过企业实名注册验证,即可开始价值$8,500的免费试用!本教程介绍了如何设置您的帐户并使用您的免费试用版。关于免费试用在我们开始此试用之前,您还必须遵守以下条款和条件才能访问您的免费试用:只有在一年内创建的账户才有资格获得阿里云免费试用。通过此免费试用优惠,用户可以免费试用免费试用活动页面上列出的每种产品一次。如果您有多个帐
我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我
我在我的项目中有一个用户和一个管理员角色。我使用Devise创建了身份验证。在我的管理员角色中,我没有任何确认。在我的用户模型中,我有以下内容:devise:database_authenticatable,:confirmable,:recoverable,:rememberable,:trackable,:validatable,:timeoutable,:registerable#Setupaccessible(orprotected)attributesforyourmodelattr_accessible:email,:username,:prename,:surname,:
因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实
在Ruby中,是否有一种简单的方法可以将n维数组中的每个元素乘以一个数字?这样:[1,2,3,4,5].multiplied_by2==[2,4,6,8,10]和[[1,2,3],[1,2,3]].multiplied_by2==[[2,4,6],[2,4,6]]?(很明显,我编写了multiplied_by函数以区别于*,它似乎连接了数组的多个副本,不幸的是这不是我需要的)。谢谢! 最佳答案 它的长格式等价物是:[1,2,3,4,5].collect{|n|n*2}其实并没有那么复杂。你总是可以使你的multiply_by方法:c