如何从Windows服务打开cmd?

Jui*_*est 5 c# windows-services

我正在创建Windows服务并使用C#。我想从服务中打开cmd.exe。我的操作系统是Windows8。是否可以从Windows服务中获取,或者是否还有其他选择。

(我想在一定间隔后打开cmd.exe-这就是为什么我选择Windows服务的原因)

niz*_*zik 4

这行不通。问题是您尝试从 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"
            };
Run Code Online (Sandbox Code Playgroud)

欲了解更多详情,请查看以下链接: