Inno Setup 安装 - 访问被拒绝

2024-02-03

我已经使用 inno setup 创建了一个安装。我的应用程序(除其他外)运行后会在子文件夹中创建一个 pdf 文件,然后打开它。但 Windows 7 说访问被拒绝并弹出异常。怎么了?如何使用 innosetup 授予对子文件夹的访问权限? 这是 ino 中的代码片段:

Source: "C:\Users\Someone\Desktop\NET\Animations\*"; DestDir: "{app}\Animations"; Flags: ignoreversion recursesubdirs createallsubdirs

大概是因为您正在尝试从不同的用户的私人文件夹。那是禁区。您只能将文件放入当前用户的文件夹(正在运行安装的文件夹)。无论如何,很难想象有什么充分的理由让你想要这样做。

尝试使用{userdocs}相反,常数。使用ExpandConstant将其扩展为完整路径。

如果您需要将东西放在方便到达的地方all用户,您需要以管理权限运行安装程序。然后,您将能够从All Users配置文件目录。


EDIT:啊,抱歉。我完全错过了你问题中你说你试图这样做的部分after安装。我只是看了代码,认为这是你让 Inno Setup 做的事情during设置过程。

这是对某件事完全不同的答案after安装已完成。 Windows 7(感谢UAC http://en.wikipedia.org/wiki/User_Account_Control)不允许您的应用程序(或anyapp,就此而言)写入系统文件夹。这包括Windows目录,以及Program Files文件夹及其包含的任何文件夹。这是一项安全措施,旨在阻止应用程序在不属于它们的地方疯狂运行。

您有几种不同的选择:

  1. If you 绝对地需要写访问权限Program Files文件夹中,您可以提示用户提升应用程序的进程。基本上,这意味着您将请求管理权限,并且他们会看到 UAC 中的一个框,要求他们输入密码。

    我提供了有关如何从 C# 应用程序执行此操作的更多信息我对这个问题的回答 https://stackoverflow.com/questions/5507818/workaround-against-registry-manipulation-limitation-in-windows-7/5508000#5508000。对于用任何其他语言编写的应用程序,您将遵循类似的步骤;您只是调用 Windows API 中内置的函数。

  2. The better不过,选择是修改您的应用程序,以便它doesn't必须写入系统文件夹。这样,您就不必以管理权限运行。这是所有标准 Windows 应用程序的预期模型。 Microsoft 至少从 Windows 2000 早期就开始推荐它,但直到 Vista 才真正强制您遵循它。

    我更多地讨论应用程序具有写入权限的各个位置(以及每个位置的各种用途)我对这个问题的回答 https://stackoverflow.com/questions/5210575/does-windows-7-have-the-same-problem-as-vista/5210642#5210642.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Inno Setup 安装 - 访问被拒绝 的相关文章

  • 通过批处理文件(.bat)编译 Inno Setup 项目

    在我的工作项目中 我们必须使用 Inno Setup 创建 4 个安装程序 这样 我必须逐个文件运行 这最终会占用我更多的时间 文件 iss setup prog 01 iss setup prog 02 iss setup prog 03
  • Inno Setup:如何处理[UninstallDelete]部分的进度条?

    我使用 Inno Setup 为我的应用程序制作安装程序 当用户卸载应用程序时 我想删除其中的自定义文件夹Program Data文件夹 我的文件夹很大 大约15 GB 所以我使用 UninstallDelete 删除此文件夹的部分 Uni
  • 是否可以使用 sha1 和 sha256 证书对安装程序和卸载程序进行双重签名?

    Inno Setup 中是否可以同时使用 sha1 和 sha256 对卸载程序和安装程序进行签名 我知道它是可以签署 https stackoverflow com a 30671378 1329977通过命令工具具有两个证书的可执行文件
  • 可以在 Inno Setup 脚本中使用环境变量吗?

    我需要找到一种方法来引用 Inno Setup 脚本文件 iss 中的环境变量 我发现了很多关于从 iss 修改环境的参考资料 但没有关于如何实际使用它的参考资料 这可能吗 当我尝试在 Files 部分中指定文件的源位置时 我遇到了同样的问
  • “ProgramData”目录的 Inno 设置常量

    我希望我的安装程序将一些文件复制到 Windows 中ProgramData目录中 我看到大多数 Windows 目录都有已在 Inno Setup 文档中定义的预定义常量 但是我看不到一个ProgramData 因此我计划使用类似的东西
  • Innosetup 添加多个 exe 文件并在主设置中执行

    我想知道如何添加额外的安装 exe 并使用 innosetup 与我的主 exe 一起执行额外的 exe 请帮助我 因为我在过去 3 天里一直在尝试这个 因为我是 innosetup 的新手 谢谢 最简单的方法是在 Run 部分调用附加的
  • 如何使用 Inno Setup 检查互联网连接

    我正在学习 Inno Setup 来制作一个简单的安装程序 在安装过程中我需要从网站下载文件 因此检查是否有互联网连接很重要 在安装过程中如何检查或采取一些警报以连接互联网 Thanks 最好的检查是尝试实际下载该文件 互联网 几乎不是一个
  • Inno Setup - 更新时删除旧的/过时的文件

    所以 我意识到这个问题以前已经被问过 事实上 在写这篇文章之前 我读了其中的 10 篇文章 但没有一个有适用的解决方案 我希望现在有人已经找到了一些东西 问题 我的程序是使用脚本构建的 在单个文件夹中创建所有最终文件 这些文件包含在 inn
  • 安装前检查 Java 是否存在

    我正在为 jar 应用程序创建 Inno Setup 安装程序 我现在想做的是在继续安装之前检查 java 是否存在 所以我只需要确保用户能够运行 java jar my app jar 我现在正在做的是 Code function Ini
  • 如果在 Inno Setup 中更新安装,则排除 ssPostInstall 步骤中的部分代码部分

    我尝试对两者使用相同的安装程序 全新安装和更新 因此 如果用户第一次尝试安装我的应用程序 它将运行完整安装 包括 MySQL 安装程序作为先决条件 以及 MySQL 安装的一部分 Code 就会正常执行 但是 如果用户已经安装了我的应用程序
  • Inno Setup 选择一个目录来安装预定义集中的文件

    在这种情况下 我需要将文件安装到特定目录 但在不同的计算机上它可能位于不同的文件夹中 所以我需要检查哪个是正确的 例如 我有一个文件 需要将其安装在A文件夹或B文件夹或C文件夹 取决于计算机有A or B or C 所以我需要先检查一下计算
  • 在 Inno Setup 中获取 MAC 地址

    我尝试使用下面的代码来获取 Inno Setup 中的 mac 地址 但出现错误 内部错误 ExtractTemporaryFile 找不到文件 ISID dll 我已经复制了ISID dll在应用程序文件夹中仍然出现上述错误 如果我遗漏了
  • Inno Setup 无法导入 DLL

    我没有运气将 Delphi DLL 导入 Inno Setup Unicode 该DLL有一个简单的过程 procedure Foo stdcall begin end exports Foo 该 DLL 包含在安装程序源中 并添加到文件列
  • InnoSetup:不卸载更改的文件

    如何告诉 InnoSetup 不要卸载已被用户更改的 文本 文件 与 InnoSetup 安装的文件不同 或者可能更困难 在现有版本上安装新版本时 InnoSetup 应该询问用户是否覆盖更改的文件 但在纯粹卸载时 它应该在不询问的情况下卸
  • 从 Inno Setup 项目内部调用 MySQL

    我正在为一些使用 MySQL 的软件编写安装程序 我正在尝试运行 sql用于在安装时设置数据库的脚本 唉 我目前在执行它时遇到了很大的问题 这个问题似乎是由于这样一个事实而产生的 当你设置一条通往 sql文件内的 execute SOURC
  • 在 Inno Setup 中实现脚本常量时出现“预期标识符”或“原型无效”

    因此 鉴于此功能 我在GetRoot ROOTPage Values 0 线 我希望它告诉我ROOTPage没有定义 const DefaultRoot C IAmGRoot Var ROOTPage TInputQueryWizardPa
  • Inno Setup:允许用户只选择可以安装软件的驱动器?

    我可以允许用户只选择要安装软件的驱动器吗 例如 他们可以选择C or D drive C Software D Software 但用户不能指定任何其他内容 就像他们不能选择安装下面的软件一样Downloads or MyDocumnets
  • Inno Setup 代码部分创建隐藏文件

    我正在处理 Inno Setup 项目 该项目正在使用SaveStringToFile函数在 Code 部分 我想将此文件设置为隐藏系统文件 但我无法找到有关如何实现此操作的信息 有任何想法吗 Inno Setup Pascal Scrip
  • inno setup bmp图像出现在单个页面上

    我希望 bmp 图像出现在单个页面 selectadditionaltasks 上 但它出现在所有页面上 我究竟做错了什么 procedure LogoOnClick Sender TObject var ResCode Integer b
  • 欢迎页面未显示,SelectDir 页面首先显示

    我正在尝试使用 Inno Setup 来制作安装程序 我想先显示欢迎页面 然后显示 SelectDir This is CurPageChanged示例代码 procedure CurPageChanged CurPageID intege

随机推荐

  • 如何强制XPath使用UTF8?

    我有一个 XHTML 文档通过 Greasemonkey AJAX 传递到 PHP 应用程序 PHP 应用程序使用 UTF8 如果我将 POST 内容直接输出到 AJAX 接收 div 中的文本区域 则所有内容仍然以 UTF8 正确编码 当
  • 为什么广度优先搜索比深度优先搜索使用更多的内存?

    我在网上找不到这个问题的答案 在类似问题的其他答案中 似乎 DFS 的优点是它使用的内存比 DFS 少 对我来说 这似乎与我的预期相反 BFS 只需存储它访问的最后一个节点 例如 如果我们在下面的树中搜索数字 7 它将搜索值为 8 的节点
  • 在窗口内打印,而不是在边框上打印

    我试图在诅咒窗口内写一些东西 但它似乎也在边框上写 我该如何修复下面的代码 win self newwin LINES 2 COLS 0 0 box win self 0 0 wrefresh win self wprintw win se
  • Puppeteer 错误:导航失败,因为浏览器已断开连接

    我在 Google App Engine 上使用 puppeteer 和 Node JS 每当我在应用程序引擎上运行 puppeteer 时 我都会遇到一条错误消息 导航失败 因为浏览器已断开连接 这在本地环境中工作正常 所以我猜测这是应用
  • 根据列值拆分数据并创建散点图。

    我需要绘制散点图days vs age对于 f 组 性别 1 并绘制另一个散点图days vs age对于 m 组 性别 2 使用 R days age sex 306 74 1 455 67 2 1000 55 1 505 65 1 39
  • sqlite 查询子句中需要括号

    我正在运行以下 sqlite3 查询 并注意到前两个查询没有给出预期的答案 即 1240969 1225691 1531026 如果我在 or 子句周围使用括号 我会得到预期的结果 为什么是这样 sqlite gt select count
  • 根据与 R 中的字符串共享的值将颜色分配给数据框

    我在 R 中工作 我有许多不同的数据框 其中包含样本名称 我尝试根据样本名称为每个数据框中的每一行分配颜色 有许多行具有相同的样本名称 但我的输出数据很混乱 因此无法按样本名称排序 这是我所拥有的一个小例子 names lt c TC3 1
  • 如何减小 Android 中使用 FFMPEG 的默认摄像头捕获的视频大小?

    我正在尝试减小 Android 中默认摄像头 它正在生成高分辨率视频 捕获的视频大小 做FFMPEG有一个属性可以对给定分辨率的视频进行编码吗 我尝试谷歌 但所有示例都使用 FFMPEG 的命令行模式 我的问题是 我们可以在Android中
  • 获取每周的最后一个值以及匹配的日期

    所以我从pd Series called jpm 我想将其分组为几周 并取每周的最后一个值 这适用于下面的代码 它确实获得了最后一个值 但它将相应的索引更改为一周中的星期日 我希望它保持不变 import pandas datareader
  • 如何使用REUSE_ALV_FIELDCATALOG_MERGE功能模块?

    我正在尝试使用功能模块REUSE ALV FIELDCATALOG MERGE传递 ddic 中的字段标签以显示在 alv 报告的列标题中 但是 那没有用 如果我评论I STRUCTURE NAME TY YNAH CUS OBJ REQ
  • 使用 javascript 在 html 页面中查找单词

    如何快速搜索 html 页面中的单词 我怎样才能得到这个词所在的html标签 这样我就可以使用整个标签 要查找单词所在的元素 您必须遍历整个树 仅查找文本节点 并应用与上面相同的测试 在文本节点中找到单词后 返回该节点的父节点 var wo
  • 在seaborn中绘制带有孵化的堆积条形图

    我正在尝试使用带有孵化功能的seaborn matplotlib 绘制堆积条形图 但孵化不合适 如图所示 我的代码如下 sc bar sns barplot x Salt Concentration y EPS Produced data
  • Spring 元素必须指定引用或值

    我在 Spring 和构造函数注入方面遇到问题 我想动态创建具有名称的对象 String 和特殊 ID long 但是当加载 spring xml 文件时会发生异常 线程 main 中的异常 java lang ExceptionInIni
  • 将弹出窗口置于前面

    在我的应用程序中 我有一个弹出窗口 其中包含当我选择某些选项时打开的信息 第一次还可以 在所有内容前面弹出突出显示 但是 当它失去焦点时 当用户转到其他窗口时 如果用户再次单击同一选项 我希望弹出窗口再次显示在所有内容的前面 我尝试过类似的
  • iPhone 应用程序的分发(App Store)版本中出现错误

    我创建了一个具有自建照片工具的应用程序 当我测试 调试和临时 时 它工作正常 它是使用 UIScrollView 构建的 并在照片的插槽滚动到屏幕上时将每个照片添加到 UIScroll 视图 但现在该应用程序已在 App Store 中 并
  • 具有多个命令的 Git 别名的语法[重复]

    这个问题在这里已经有答案了 我想创建一个 Git 别名来执行多个命令 但我找不到有关如何完成此操作的文档 具有多个命令的 Git 别名的语法是什么 这是在哪里记录的 来自 man git config alias git 1 命令包装器的命
  • 如何向 R Shiny 表添加行

    我正在尝试使用 R Shiny 构建一个表单 一旦单击表单末尾的操作按钮 它将用于填充表格 我无法弄清楚如何获取表单中的数据并将其添加到表中的新行中 现在 它只是用表单中的任何内容不断更新第一行 我在这里重现了代码的简单版本 ui r li
  • UITabBarController 中的 UIViewController 和 UISplitViewController shouldAutorotateToInterfaceOrientation

    我的 iPad 代码有一些问题 我有一个 UITabBarController 其中包含一些 UIViewController 和 UISplitViewController 问题是 UIViewController 甚至 UISplitV
  • 使用 Javascript 动态创建具有递增 ID 的 dom 元素

    我有一个 ID 为 orangeButton 的 div 每次单击它时都会创建一个新的 div 这工作正常 但是 我希望每个新创建的 div 都有一个增量编号添加到它的 ID 中 我不知道该怎么做 这是我迄今为止带有注释的代码的小提琴 ht
  • Inno Setup 安装 - 访问被拒绝

    我已经使用 inno setup 创建了一个安装 我的应用程序 除其他外 运行后会在子文件夹中创建一个 pdf 文件 然后打开它 但 Windows 7 说访问被拒绝并弹出异常 怎么了 如何使用 innosetup 授予对子文件夹的访问权限