我将非常感谢对此的一些帮助!这可能是一个棘手的问题。:)
问题
- 我有一个设置为计划任务的 VB6 应用程序。它每次都会启动,但是
CreateObject()
如果用户未登录到计算机,则在执行时会失败。 - 我正在寻找可能导致这种情况的信息。我的主要怀疑是某些 Windows API 失败了。
关键点
- 在 Windows 2000、2003、2008 和 Vista 上确认的行为。
- 应用程序在预定时间以用户 X 身份执行,由 Windows 任务计划程序执行。
- 它每次都执行。申请开始了!
- 如果用户 X 通过 RDP 登录,它会完美运行。(注意,用户不需要连接,只需登录)
- 如果用户 X 未登录到计算机,则应用程序将失败。
故障点
CreateObject()
使用实例化也是应用程序一部分的 DCOM 对象时应用程序失败。- DCOM 对象在启动时声明 .dll 引用(全局/在 .bas 文件之上)并运行一个小型启动函数。失败必须在启动期间,可能在 .dll 声明之一中。
想法
经过一番谷歌搜索后,我最初的怀疑是针对 MAPI。从我可以看到 MAPI 要求用户登录。该应用程序具有 MAPI 引用。但即使删除了所有 MAPI 引用,它仍然无法正常工作。
如果用户登录有什么区别?注册表映射?环境?Explorer.exe 正在运行。
当应用程序以用户身份执行时,用户没有登录吗?
什么信息会有帮助?
- 一个明确的答案真的很棒。
- 任何关于任何 VB6 功能/Windows API 的信息都可能会根据用户是否登录而有所不同,这肯定会有所帮助。
- 类似的经历可能会引导我走向正确的方向。
- 关于调试的提示。