【问题标题】:How to open cmd from windows service?如何从windows服务打开cmd?
【发布时间】:2016-03-07 15:50:23
【问题描述】:

我正在创建一个 Windows 服务并使用 C#。我想从服务中打开 cmd.exe。我的操作系统是 Windows 8。是否有可能来自 Windows 服务,或者是否有其他替代方案。

(我想在一段时间后打开 cmd.exe - 这就是我选择 Windows 服务的原因)

【问题讨论】:

  • 经过一段时间的什么?登录 Windows 后?您可以改用调度程序。
  • 我已经尝试了schedular,而不是使用windows服务。但没有成功。应用程序是在VB中构建的,当我运行它打开cmd但从schedular无法打开
  • 你能显示一些代码吗?你正在使用System.Diagnostics.Process.Start ?

标签: c# windows-services


【解决方案1】:

这行不通。问题是您试图从 Windows 服务显示 UI(控制台),而 Windows 服务未在任何特定用户的上下文中运行。从 Vista 和更高版本的操作系统开始,Windows 服务在隔离会话中运行,并且不允许与用户或桌面交互,从而无法运行。

根据您的需要,此问题有两种解决方案。

  1. 如果您希望打开 cmd,您可以考虑使用 Windows 任务计划程序中的任务计划操作,然后执行您的操作
  2. 如果您只需要使用cmd.exe 执行一些操作,例如复制文件,不需要显示 UI,那么您可以通过以下方式实现

在不创建窗口的情况下启动cmd

ProcessStartInfo processInfo = new ProcessStartInfo
            {
                WindowStyle = ProcessWindowStyle.Normal,
                CreateNoWindow = true,
                UseShellExecute = false,
                FileName = "cmd.exe",
                Arguments = @"/C copy /b Image1.jpg + Archive.rar Image2.jpg"
            };

更多详情请查看以下链接:

【讨论】:

    猜你喜欢
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多