为什么我的应用程序在Windows 10上放置在C:\ Program Files但Windows 7上没有时需要管理员权限?

时间:2018-06-08 09:58:46

标签: java windows eclipse-rcp rcp windows-10-desktop

我的Java RCP应用程序( App.exe )最近从 32位转换为64位。由于它是64位应用程序,因此我使用 NSIS 创建了一个安装程序,该安装程序将在C:\ Program Files中转储所有必需的文件以及 App.exe 。运行 App.exe 时,当应用程序尝试在编辑模式下打开文件(在C:\ Program Files中)以转储结果/日志时,我收到安全异常(拒绝访问)。当我以管理员身份运行 App.exe 时,它可以正常工作。即使在非管理员模式下运行,它也可以在Windows 7 64位机器上正常工作。

任何想法,如何在非管理员模式下运行 App.exe

  

注意:这不是 NSIS 的问题,因为32位应用程序的工作正常。

1 个答案:

答案 0 :(得分:1)

基本上,程序文件目录始终受到保护。

您应该检查WIN 7用户权限和用户的UAC设置。

同时...

您可能想重新考虑存储数据的位置。

有关于here

的SO帖子
  

说实话, ProgramData 包含非用户特定的应用程序数据。此数据可供计算机上的所有用户使用。任何全球数据都应该放在这里。

     

AppData 文件夹包含配置设置,特定用户的下载信息/文件。因此,例如,任何用户特定的首选项和配置文件配置都可以存储在AppData文件夹中。 AppData文件夹进一步分为三个子文件夹
  漫游 - 此文件夹包含可以随用户个人资料从计算机移动到另一个计算机的数据   本地 - 此文件夹包含不随用户个人资料一起移动的数据    LocalLow - 您可以在此文件夹中输入低级访问信息,例如与受保护模式下运行的Web浏览器相关的信息。