计划任务导致访问冲突,但手动运行正常

时间:2012-09-20 19:32:38

标签: windows-7 scheduled-tasks access-violation

这不是一个编程问题,因为它是一个配置问题。

我有一个用Delphi编写的 EXE 。不是我的。我可以直接从快捷方式运行它,它运行正常。如果我尝试设置计划任务,则每次都会以

崩溃
  

模块[文件]中[十六进制地址]的访问冲突。读取地址   00000000

无论是运行任务还是让计划运行任务,都会发生这种情况。

现在有趣的部分。 这种情况发生在 Windows 7 32位上。 它在 WindowsXP 上的任务计划程序中运行良好。

我启用 DEP ,并设置与 XP sp3 的兼容性。我将计划程序服务设置为与桌面交互,即使它在7中确实不可用。

为该任务设置的用户与我登录的用户相同。

该程序设置为仅在用户登录时运行,因为它具有 UI 组件

我愿意尝试任何事情,因为对此负责的供应商只告诉我它应该可以正常工作,我们使用它们的所有其他项目都会在没有任何崩溃的情况下运行。

编辑:添加一些要求的信息:
1。如果是服务,则不需要任务计划程序。是否可以对存储在数据库中的文档进行条形码扫描的常规GUI 2。供应商和我一样困难。并且不愿意付出很多努力来解决这个问题。今年我们正在离开他们,所以最终可能会成为一个有争议的问题。

1 个答案:

答案 0 :(得分:3)

消息中的错误地址(Read of address 00000000)是空指针异常。在Delphi中,它通常发生在您创建对象实例(例如,组件)之前尝试访问它时。

除此之外,您没有提供任何可用于帮助您解决问题的信息。您没有提供有关应用程序类型(服务,常规GUI应用程序,控制台应用程序)的信息,除了它是用Delphi编写的事实,还有一个UI组件(允许Vista之前的服务)并且它正在由Scheduler启动。您可以获得有关其功能的信息,或有关应用程序本身的任何其他详细信息,这可能会有所帮助。

向供应商发送错误对话框的屏幕截图,并询问它们是否“正常”。建议他们投资于MadExceptEurekaLog这样的异常处理包,它们会以可读格式为他们提供堆栈跟踪,您可以将其发送给他们,以便他们可以使用它来追踪问题。如果他们不愿意这样做,找一个新的供应商。