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

Application only runs if you run as administrator?

本文关键字:应用程序 运行 运行时 身份 管理员      更新时间:2023-10-16

编辑:据我所知,这个问题只发生在windows 7和vista上

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

如果这是一个与我使用的图形引擎直接相关的问题,我很感激,但我并不这么认为(但我一无所知)。有人能帮我吗?

编辑以获取更多详细信息:
应用程序可执行文件和运行它所需的文件被安装到默认程序目录中——对我来说,是C:\program files(x86)。如果您尝试在不单击"以管理员身份运行"的情况下运行,它会简单地冻结并显示"应用程序已停止工作。Windows正在检查问题的解决方案…"我的问题基本上是,我如何使其不需要以管理员身份运行

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

  • 将文件写入程序文件(x86)
  • 写入HKLM

(没有更多详细信息)问题很可能与程序试图写入目录,然后超出文件创建/修改的实际效果有关。UAC阻止应用程序在没有管理员权限的情况下写入程序文件目录。解决方案是重新设计您的应用程序,使其不依赖于这种行为,或者将有问题的文件存储在某个预定位置(AppData等文件夹)。

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