相关疑难解决方法(0)

如何在需要时提升权限?

此问题适用于Windows Vista!

我有一个通常无需管理权限的应用程序.有一个活动确实需要管理权限但我不想以更高的权限启动应用程序本身,因为我知道大部分时间用户甚至不使用该功能.

我正在考虑某种方法,通过该方法,我可以在某些事件上提升应用程序的权限(例如按下按钮).例:

如果用户单击此按钮,则会提示他使用UAC对话框或同意.我怎样才能做到这一点?

.net c# privileges uac windows-vista

83
推荐指数
4
解决办法
8万
查看次数

Inno Setup始终安装在admin的AppData目录中

我想将我的应用程序存储在当前用户的AppData目录中,以避免在自动更新我们的应用程序时(当它存储在Program Files中时)的权限问题.我们不会向用户提供安装应用程序的位置选项.我们收到非管理员用户的抱怨,安装程序将应用程序存储在管理员AppData目录中(当然是在UAC之后),而不是当前用户的AppData目录,这会阻止应用程序在将来运行.

首先,我有DefaultDirName={userappdata}\{#MyAppName}.然后我试了一下DefaultDirName={commonappdata}\{#MyAppName}.然后我想,随着PrivilegesRequired=lowest甚至是PrivilegesRequired=none作为制作InnoSetup安装程序要求特权提升,只有当需要的问题建议.

这是我现在的脚本,以防我遗漏了一些明显的东西:

; Script generated by the Inno Setup Script Wizard.
;SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Teamwork Chat"
#define MyAppVersion "0.10.0"
#define MyAppPublisher "Digital Crew, Ltd."
#define MyAppURL "http://www.teamwork.com/"
#define MyAppExeName "TeamworkChat.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for …
Run Code Online (Sandbox Code Playgroud)

windows installer executable inno-setup

6
推荐指数
1
解决办法
4228
查看次数

从以管理员身份运行的Inno Setup安装程序安装当前登录用户的应用程序

关于创建(Inno Setup)安装程序的一个非常常见的问题是围绕从使用提升/管理员权限运行的安装程序访问/修改特定用户(当前登录用户)的配置文件.

这样做有许多缺点,并且容易出错.

所有现有的答案都包含问题的一部分(注册表,文件,桌面图标等).这个问题的目的是通过所有可能的方法收集解决全球问题的答案.

inno-setup

5
推荐指数
1
解决办法
1683
查看次数

Inno Setup 5.6.0有关快捷方式和admin v用户的警告

我将Inno Setup升级到5.6.0,现在编译时得到警告:

警告:[Setup]节指令“ PrivilegesRequired”设置为“ admin”,但脚本使用了每个用户区域(HKCU,userappdata,userdesktop)。无论Windows的版本如何,如果安装是管理性的,则应谨慎进行每个用户区域的更改:此类更改可能无法实现您的预​​期。有关更多信息,请参见帮助文件。

我明白这是在说什么。在本[icons]节中,我有:

Name: "{userdesktop}\Meeting Schedule Assistant"; \
      Filename: {app}\MeetSchedAssist.exe; \
      Tasks: desktopicon; 

Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Meeting Schedule Assistant"; \
      Filename: {app}\MeetSchedAssist.exe; \
      MinVersion: 4,4; \
      Tasks: quicklaunchicon; 
Run Code Online (Sandbox Code Playgroud)

我认为这些都是由脚本向导创建的。现在,我的安装程序正在与一起运行PrivilegesRequired。并且所有数据文件都安装到ProgramData文件夹中。程序启动时,它将查找所有丢失的文件,并从该公共位置获取它们。

因此,唯一的问题与这两个快捷方式有关。迎合捷径的正确方法是什么?由于通常情况下,安装程序会添加快捷方式。

inno-setup

5
推荐指数
1
解决办法
763
查看次数

每个用户或每台机器安装的Inno Setup自定义对话框

我正在使用Inno Setup(http://www.jrsoftware.org/isinfo.php)为我的JavaFX应用程序创建本机包.

我想创建一个自定义步骤,询问用户是否需要"按用户"或"每台机器"安装,以便允许非特权用户和管理员安装软件.

Inno Setup可以实现这一点吗?如果是,你可以提供跟踪的痕迹吗?

看一下这个截图

在此输入图像描述

javafx inno-setup pascalscript

4
推荐指数
1
解决办法
1156
查看次数

Inno Setup - 带有 VCL 样式的语言选择器

有没有办法在 VCL 样式中使用语言选择器(Inno Setup)?如何?

inno-setup pascalscript vcl-styles.-utils

4
推荐指数
1
解决办法
1202
查看次数

如果 Inno Setup 中的权限不是管理员,则将文件安装在不同的文件夹中

我想使用如下脚本

function InitializeSetup(): Boolean;
begin
  Result := not IsAdminLoggedOn;
  if Result then
  begin
Run Code Online (Sandbox Code Playgroud)

检查用户是否是管理员。

但是如果用户是管理员,那么我该怎么办,然后安装A.txtC:\program files\ABC,否则安装在D:\TEST

我可以写一些东西来连接[Files]吗?

因为我也想在安装文件时使用检查路径,如果我可以结合起来[Code][Files]对我来说可能会更容易。

请原谅我缺乏知识,并提前致谢。

我试过用这个

[Files]
Source: "..\ABC\CDE.txt"; DestDir: "{code:GetDirName}\IJK"; \
    Check: DirExists(ExpandConstant('C:\Program Files\FGH'))
Run Code Online (Sandbox Code Playgroud)

但如果我想在更多路径中安装更多文件,我不知道如何编写代码。

这个不起作用:

[Files]
Source: "..\ABC\CDE.txt"; DestDir: "{code:GetDirName}\IJK"; \
    Check: DirExists(ExpandConstant('C:\Program Files\FGH'))
Run Code Online (Sandbox Code Playgroud)

installation privileges inno-setup

3
推荐指数
1
解决办法
1463
查看次数

如何使用Inno Setup在HKLM中创建注册表项,而无需管理员权限

我正在使用C#开发桌面应用程序并使用Inno setup编译器创建设置.

让我解释一下应用功能,

  1. 我使用Inno Setup创建了应用程序安装程序所有用户(即应用程序可以安装在admin/non admin PC中).

    //all user
    PrivilegesRequired=lowest
    
    Run Code Online (Sandbox Code Playgroud)
  2. 安装应用程序时,我想在中创建注册表项HKLM.为此,我在Inno Setup脚本中添加了注册表项,如下所示

    [Registry]
    Root: HKLM; Subkey: "SOFTWARE\Wow6432Node\TestKey"; Permissions: users-modify; \
        Flags: uninsdeletekey createvalueifdoesntexist; ValueType: string; \
        ValueName: "SOAPAddress"; ValueData: "ABC"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 安装应用程序注册表项时未创建其抛出异常

    ---------------------------
    Error
    ---------------------------
    Error creating registry key:
    
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\TestKey
    
    RegCreateKeyEx failed; code 5.
    
    Access is denied.
    
    Click Retry to try again, Ignore to proceed anyway, or Abort to cancel installation.
    
    Run Code Online (Sandbox Code Playgroud)

请帮帮我,如何HKLM使用Inno Setup编译器创建注册表项.

我已经在VS2010中检查了它的创建注册表项,但是安装程序无法运行非管理员PC.

提前致谢!

inno-setup

0
推荐指数
1
解决办法
3378
查看次数