【问题标题】:Start application from driver从驱动程序启动应用程序
【发布时间】:2009-02-13 15:45:15
【问题描述】:

我可以从驱动程序代码启动另一个应用程序吗?代码用C编写,用DDK编译。

【问题讨论】:

    标签: c windows driver wdk


    【解决方案1】:

    我不这么认为。而是:

    • 您可以使用一项服务,将 DeviceIoControl 发送到设备。
    • 设备然后保留(不完成)关联的 IOCTL
    • 当设备想要启动应用程序时,它会完成 IOCTL
    • 当服务注意到其 DeviceIoControl 已完成时,它会启动其他应用程序

    服务可以启动应用程序,但我不知道它是否可以在用户桌面上启动它。如果您希望启动的应用程序与登录的最终用户用户交互,那么最好将 DeviceIoControl 功能放在一个(可见或不可见的)应用程序中,而不是如上所述的服务,该应用程序会自动启动用户登录时在用户的工作站中。

    如果您这样做,请注意假设只有一个登录用户(可能有很多,在 Citrix/终端服务器上)。

    【讨论】:

    • 在大多数情况下,我同意这一点,除了最后一点。如果它必须与用户的桌面交互,它将无法在 Vista 上运行,而且这通常是一种不好的做法。相反,有一个在用户登录时运行的程序,它通过 IPC 与服务交互。
    • 通过快速用户切换也可以有多个用户。
    猜你喜欢
    • 2020-10-28
    • 2013-03-30
    • 2022-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    相关资源
    最近更新 更多