在安装VB6应用程序时,是InstallShield Express 4还是Windows 7导致我出现问题

时间:2012-02-29 02:04:33

标签: vb6 installshield

我正在使用一个非常旧版本的InstallShield Express 4来打包我的VB6应用程序。在XP上安装它,效果很好。但是,当我将它安装在Windows 7机器上,而不是使用“以管理员身份运行”时,一切似乎都是只读的。我无法编辑INI文件,因为access is denied。应用程序无法正常运行。它几乎无法访问该文件夹。它安装在默认的“程序文件”文件夹中。我卸载应用程序,使用“以管理员身份运行”选项重新安装,将快捷方式的兼容性设置为“以管理员身份运行”,一切正常。

我的问题是VB6中继承的内容,应用程序必须以管理员身份运行,还是InstallShield问题?如果是InstallShield Express问题,最新版本的InstallSheild Express 2012会解决这个问题吗?我希望用户不必担心以管理员身份安装或运行应用程序。

2 个答案:

答案 0 :(得分:3)

您的VB6应用程序没有什么特别的错误。我会说这是旧版本的InstallSheild,在这种情况下可能会出现问题。

此功能称为User Access Control (UAC),已在Windows Vista和以下Microsoft操作系统中引入,以防止应用程序对%ProgramFiles%进行任意写入访问。您仍然可以手动执行它(通过将文件复制并粘贴到%ProgramFiles%中),但UAC会提示您的许可。

要确保您的应用程序能够正常运行,请将应用程序设置保存在%APPDATA%或注册表中, NOT 保存在%ProgramFiles%目录中。在安装或卸载需要对%ProgramFiles%进行写入访问的程序的过程中,您必须以管理员身份运行它(除非您已禁用UAC,这是一个巨大的安全风险,强烈建议不要使用)。

答案 1 :(得分:2)

是的,你的VB6应用程序有一些特别的错误。它将数据存储在错误的位置。您的应用程序无法访问程序文件文件夹,除非它以管理员身份运行。这是由User Account Control引起的,正如gsabil的回答中所解释的那样。

以下是一些解决方案(最后一个)

  • 始终以管理员身份运行VB6应用程序。
  • 关闭用户帐户控制权限。这会打开一些安全漏洞并且不推荐
  • 使安装程序更改安装目录的权限,授予所有用户写入权限。这相当糟糕,但它可能是让您的程序正常工作的快捷方式
  • Change your application(不是您的安装程序),以便将其数据存储在%AppData%中而不是安装目录中。这是优选的。以下是关于如何在VB6中执行此操作的detailed advice