加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何从Windows服务打开cmd?

发布时间:2020-12-15 22:23:28 所属栏目:百科 来源:网络整理
导读:我正在创建一个 Windows服务并使用C#.我想从服务中打开cmd.exe.我的操作系统是Windows 8.是否可以从Windows服务中获取,或者是否有其他替代方案. (我想在一段时间后打开cmd.exe – 这就是我选择Windows服务的原因) 解决方法 这不行.问题是您尝试从Windows服务
我正在创建一个 Windows服务并使用C#.我想从服务中打开cmd.exe.我的操作系统是Windows 8.是否可以从Windows服务中获取,或者是否有其他替代方案.

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

解决方法

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

根据您的需要,有两个解决此问题的方法.

>如果要打开cmd,可以考虑使用Windows任务计划程序中的任务计划操作,然后执行操作
>如果您只需要使用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"
            };

有关详细信息,请查看以下链接:

> How can I run an EXE program from a Windows Service using C#?
> How can a Windows Service start a process when a Timer event is raised?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读