草庐IT

windows - 添加/删除程序条目丢失

我有NSI脚本和编译安装程序,其中包含以下代码:WriteRegStrHKLM"Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}""DisplayName""${NAME}"WriteRegStrHKLM"Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}""InstallLocation""$\"$INSTDIR$\""WriteRegStrHKLM"Software\Microsoft\Windows\CurrentVersion\Uninsta

windows - NSIS 卸载程序权限级别

我有一个生成卸载程序的NSIS安装程序脚本。卸载程序在创建时需要提升权限才能执行。某些要求使得我需要能够在没有提升权限级别的情况下以任何用户身份运行卸载程序。生成的其他文件都没有设置提升的权限,甚至应用程序可执行文件本身也没有。有没有办法为任何用户设置权限级别?这是我的NSIS脚本。我从脚本中删除了很多内容,以便应用程序保持匿名,但保留了我认为相关的所有内容Function.onInitUserInfo::GetAccountTypepop$0${If}$0!="admin"MessageBoxmb_iconstop"Administratorrightsrequired!"SetEr

windows - NSIS 获取参数

要将-n0值作为字符串(不需要选项)传递给安装程序,我不太明白这个函数的作用是什么?;GetParameters;input,none;output,topofstack(replaces,withe.g.whatever);modifiesnoothervariables.FunctionGetParametersPush$R0Push$R1Push$R2Push$R3StrCpy$R21StrLen$R3$CMDLINE;CheckforquoteorspaceStrCpy$R0$CMDLINE$R2StrCmp$R0'"'0+3StrCpy$R1'"'GotoloopStrCpy

windows - 如何创建注册表项

如何使用NSIS创建注册表项?我在NSIS文档中找不到合适的命令。(我了解所有安全问题)谢谢! 最佳答案 您不能使用nativeNSIS指令创建空注册表项,但在您设置值时会为您创建该注册表项:WriteRegStrHKCU"Software\Test""""TheDefault";orWriteRegStrHKCU"Software\Test""Foo""Bar" 关于windows-如何创建注册表项,我们在StackOverflow上找到一个类似的问题: h

windows - 获取 %ALLUSERSPROFILE% 的 NSIS 变量

是否有%ALLUSERSPROFILE%的NSIS变量?如果不是,您知道我如何使用NSIS代码获取此环境变量吗?注意:如果我使用ReadEnvStr$R7"ALLUSERSPROFILE",$R7包含C:/ProgramData因为安装程序已请求提升权限(RequestExecutionLeveladmin)。这太令人沮丧了! 最佳答案 从Vista开始,%ALLUSERSPROFILE%是%SystemDrive%\ProgramData。以前位于AllUsers下的一些内容已移至%Public%,其余内容位于%ProgramDa

windows - "Newly Installed Programs"是如何工作的?

我正在使用NSIS构建程序安装程序。可执行文件名为XYZ.exe,我想将其安装在“$PROGRAM_FILES/XYZ1.0/”中。我还在菜单开始中创建快捷方式:“$MENU_START/XYZ1.0/XYZ1.0”指向“$PROGRAM_FILES/XYZ1.0/XYZ.exe”使用创建的安装程序安装我的软件后,会显示“新安装的软件”提示。使用链接不会使此提示消失。这是一个简短说明Windows如何处理新安装的程序的链接。不幸的是,这些信息并不准确。http://blogs.msdn.com/b/oldnewthing/archive/2005/11/24/496690.aspx我该

windows - 如何从 cygwin ssh 运行 win32 gui 程序?

我有一个以静默模式运行的(nsis)安装程序。我想通过ssh运行它,以便我可以针对已安装的代码库自动运行我们的测试套件。不幸的是,当我运行该程序时,它只是启动并停在那里,实际上并没有做任何事情。我的猜测是,这是由于Windows服务(在本例中为ssh)无法与桌面交互造成的。因此,即使安装程序是静默的,它也会分配一些对象或其他东西并永远阻塞。如何强制安装程序运行?请注意,它是静默的,不应该要求任何用户输入。有什么方法可以让我说“在桌面上运行它”之类的吗? 最佳答案 尝试使用PsExec来自Sysinternals。如果您打算通过ssh

windows - 在 Windows 中将批处理文件放在哪里,以便在不更改 PATH 的情况下始终可以访问它?

我有一个程序的NSIS安装程序并更改PATH设置以使该程序始终可以从命令行访问。然而,操纵PATH会产生一些不利影响,例如其他程序会从该目录中获取DLL。为了避免摆弄PATH,我想创建一个包装器.bat文件来调用可执行文件。我应该把这个.bat文件放在哪里以便总能找到它?c:\Windows\System32(更准确地说,NSIS中的$SYSDIR)在良好实践方面是否合适?我的目标是64位系统,XP和7。 最佳答案 我个人不太喜欢对我的%path做任何事情的应用程序,使用命令行工具的人可能知道如何更改%path%或使用doskey(

windows - 我可以让 NSIS 制作一个处理本地部署和系统部署的安装程序吗?

Chrome有一个安装程序,可用于在系统范围内安装,或安装到用户的主目录(如果用户不是管理员)。当您在公司环境中进行部署时,这非常有用,您仍然希望允许潜在用户安装,即使他们不一定具有安装权限。NSIS可以用来创建这样的安装程序吗? 最佳答案 事实证明可以。重要的部分是:RequestExecutionLevelhighest:这可确保安装程序获得用户帐户可用的最高权限。即,如果他们在管理员组中,安装程序将要求提升权限。确定用户是否是管理员。这是使用UserInfo插件实现的。这很简单。SetShellVarContextall|cu

windows - 在 Windows 卸载程序中执行程序

我正在使用NSIS创建Windows安装程序。在我的卸载程序中,我需要在退出之前执行一个不同的程序(无需等待该程序完成后再退出)。从Windows控制面板运行卸载程序后,我遇到以下问题:在我手动刷新之前,列表不会刷新,即使在那之后我也无法继续卸载其他软件,因为我会弹出消息:“请等待当前程序完成卸载或更改”。我猜问题是Windows检测到我从卸载程序执行的新程序,并认为卸载过程仍在运行。有人知道如何克服这个问题吗?非常感谢! 最佳答案 Windows这样做是为了处理旧的损坏的卸载程序,这是设计使然。你可以试试escapethejob但