我有几个应用程序是我们工作室的各种开发人员使用的一套工具的一部分。这些应用程序主要是打开 DOS cmd shell 的命令行应用程序。这些应用程序依次启动一个 GUI 应用程序,该应用程序跟踪这些命令行应用程序的输出和状态(通过套接字)。
命令行应用程序可以在用户登录、他们的工作站被锁定(他们启动批处理文件然后立即锁定他们的工作站)以及当他们注销(通过计划任务)时启动。我遇到的问题是最后两个案例。
如果在用户被锁定或注销时这些应用程序中的任何一个启动,这些命令将生成跟踪输出/状态的 GUI 窗口。这很好,但是假设用户锁定了他们的工作站——当他们解锁他们的工作站时,GUI 是不可见的。它正在运行任务列表,但不可见。下次这些用户运行我们的一些命令行应用程序时,GUI 不会启动(因为它已经在运行),但是因为它在桌面上不可见,所以用户看不到任何输出。
我正在寻找的是一种从我的命令行应用程序中判断它们是在锁定的工作站后面运行还是在用户注销时(通过计划任务)运行的方法——基本上它们是在没有用户桌面可见的情况下运行的。如果我能说出来,那么我就可以简单地不启动我们的 GUI 并且可以防止很多问题。
我需要测试的这些应用程序是 C/C++ Windows 应用程序。
我希望这是有道理的。