【问题标题】:Application on System Startup. After CTRL ALT DEL Form is not Displaying系统启动时的应用程序。 CTRL ALT DEL 表单不显示后
【发布时间】:2014-04-22 19:45:17
【问题描述】:

我的目标(在我解释其他内容之前)是拥有一个应用程序:

  1. 在系统启动时运行的应用程序(在 CTRL ALT DEL 屏幕登录之前)
  2. 登录计算机 (CTRL ALT DEL)
  3. 登录后查看申请表 (System.Windows.Forms.Form)(在 CTRL ALT DEL 屏幕之后)

第 3 项是我的麻烦。我不是要求也不需要关于项目 #1 和 #2 的帮助。

我有一个标准的 c# .NET 4.0 应用程序,当您运行应用程序时会显示一个表单

如果我登录(通过 CTRL ALT DEL 屏幕)并运行应用程序(双击 Exe),它工作正常。对此绝对没有惊喜......

如果我使用 Windows 任务计划程序以“在系统启动时”触发器运行我的应用程序,那么会发生什么......

  1. 计算机启动
  2. 坐在 CTRL ALT DEL 屏幕上
  3. 我的应用程序已在后台以“管理员”身份启动
  4. 我按 CTRL ALT DEL 并以“管理员”身份登录
  5. 表单不显示
  6. 我确实看到我的应用程序列在任务管理器中
  7. 此外,还会触发 Form.OnShown 事件。我有一个方法 OnShown 订阅了创建文件夹的 Form.Shown 事件。我看了看,确实它创建了一个文件夹。证明事件正在触发。这让我有以下问题:

表单 (System.Windows.Forms.Form) 是否正常工作? 是我不知道的其他“幕后”问题吗? 启动/显示/初始化表单时用户是否登录是否重要?

【问题讨论】:

  • 欢迎来到 Stack Overflow。我不确定没有代码我们能做什么。请看How do I ask a Good question?
  • 我认为我们不需要标准 winforms 应用程序的代码。这个问题对我来说似乎很好。
  • 当您在任务管理器中看到应用程序时,它说它是以什么用户身份运行的?
  • 当您在任务管理器中看到应用程序时,它有什么会话 id。是0吗? (您可以在任务管理器中添加 Session Id 列)

标签: c# forms startup


【解决方案1】:

如果您的应用程序在没有桌面的情况下启动,则会在新会话中创建表单,并在您登录时创建另一个表单。

最好不要在启动时启动您的应用,而是启动一项服务,然后在会话启动时使用表单打开您的应用。

这可能会对您有所帮助:http://www.codeproject.com/Articles/35773/Subverting-Vista-UAC-in-Both-32-and-64-bit-Archite

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 2011-09-23
    • 2014-12-18
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多