只有以管理员身份运行时才运行应用程序

时间:2011-06-02 11:11:01

标签: c++ windows-7 windows-vista administrator

编辑:此问题仅发生在我听过的Windows 7和Vista上。

我有一个使用外部图形库开发的非常简单的应用程序。如果我将此应用程序安装到程序文件目录并运行它,它将立即崩溃,但它通常工作正常,具有完全相同的文件。我意识到这是因为您需要以管理员身份运行应用程序才能使用它。

我很欣赏这是一个与我正在使用的图形引擎直接相关的问题,但我真的不这么认为(但我很无能)。任何人都可以帮助我吗?

修改以获取更多详细信息:
应用程序可执行文件和运行它所需的文件安装在默认程序目录中 - 对我来说,C:\ Program Files(x86)。如果您尝试运行而不单击以管理员身份运行,它将简单地冻结并说“应用程序已停止工作.Windows正在检查问题的解决方案......”我的问题基本上是,我该如何制作它所以不需要以管理员身份运行?

3 个答案:

答案 0 :(得分:3)

当程序无法执行操作时,它(操作)应该正常失败。我的猜测是你的应用程序试图做一些它不能作为普通用户做的事情,然后无法检查返回代码,然后崩溃。您需要确定您的程序正在做什么,它不应该像普通用户那样做。例如(在我的头顶):

  • 将文件写入Program Files(x86)
  • 写信给HKLM

答案 1 :(得分:3)

(没有更多细节)问题很可能与您的程序尝试写入目录然后排除文件创建/修改以实际产生效果有关。 UAC阻止应用程序在没有管理员权限的情况下编写Program Files目录。解决方案是重新设计您的应用程序,使其不依赖于此类行为,或将有问题的文件存储在其中一个预定位置(AppData等文件夹)。

答案 2 :(得分:1)

如果您右键单击EXE并转到Properties -> Compatibility,则有一些选项可能有所帮助。您可以尝试在以前的Windows版本的兼容模式下运行应用程序,或者如果不起作用,至少标记EXE默认以管理员身份运行。