在整个执行生命周期中如何查看服务的控制台 window?
How see console window of a service during your full execution lifetime?
可能这已经在这里得到解答,但我没有找到。
然后我想知道如何执行一个 c++ 控制台应用程序/服务(将自身安装为服务)我可以看到所有在执行期间输出 (printf()
)(类似于在 main()
中使用 system("pause");
时在普通控制台应用程序中发生的情况)?直到现在,我只能在 Avast DeepScreen 执行时看到您控制台 window :-).
提前致谢。
版本:
我已经在 ServiceMain()
和 while (true) ... Sleep()
中插入了 getchar();
但没有成功。
好吧,以使用 C++ 程序执行任何程序为例,您只需使用命令提示符即可。
只需输入:
system(“path to the program”);
并且,程序将被执行。如果是控制台window程序,就会弹出。
你可以看到输出,好吧,按照这些:
1 System.Diagnostics.Trace class 具有与控制台 class 类似的界面,因此您可以很容易地将代码迁移到此。
2 然后可以将其配置为输出到文件。您可以使用 System.Diagnostics.EventLog class 写入事件日志,然后您可以使用事件查看器对其进行监控。
3 可以使用第三方开源的log4net库,非常灵活
服务没有控制台window。即使有,服务也不会在交互式桌面中 运行,因此无论如何您都看不到这样的 window。
您需要重新考虑您的日志记录方法。要么
将日志消息写入 Windows 事件日志,并使用 Windows 事件查看器查看消息。
创建一个单独的可视化应用程序,运行它位于用户的交互式桌面中,并与服务进程通信以接收日志消息。然后您可以根据需要显示消息。
可能这已经在这里得到解答,但我没有找到。
然后我想知道如何执行一个 c++ 控制台应用程序/服务(将自身安装为服务)我可以看到所有在执行期间输出 (printf()
)(类似于在 main()
中使用 system("pause");
时在普通控制台应用程序中发生的情况)?直到现在,我只能在 Avast DeepScreen 执行时看到您控制台 window :-).
提前致谢。
版本:
我已经在 ServiceMain()
和 while (true) ... Sleep()
中插入了 getchar();
但没有成功。
好吧,以使用 C++ 程序执行任何程序为例,您只需使用命令提示符即可。 只需输入:
system(“path to the program”);
并且,程序将被执行。如果是控制台window程序,就会弹出。 你可以看到输出,好吧,按照这些: 1 System.Diagnostics.Trace class 具有与控制台 class 类似的界面,因此您可以很容易地将代码迁移到此。 2 然后可以将其配置为输出到文件。您可以使用 System.Diagnostics.EventLog class 写入事件日志,然后您可以使用事件查看器对其进行监控。 3 可以使用第三方开源的log4net库,非常灵活
服务没有控制台window。即使有,服务也不会在交互式桌面中 运行,因此无论如何您都看不到这样的 window。
您需要重新考虑您的日志记录方法。要么
将日志消息写入 Windows 事件日志,并使用 Windows 事件查看器查看消息。
创建一个单独的可视化应用程序,运行它位于用户的交互式桌面中,并与服务进程通信以接收日志消息。然后您可以根据需要显示消息。