C#中的SendKeys.Send操作CMD命令的问题

今日需要实现通过C#操作cmd窗口的功能,在使用SendKeys.Send或SendKeys.SendWait方法进行按键模拟的时候发现,如果传入的Keys为小写开始则不被执行

代码:

            Process p = new Process();
            p.StartInfo.FileName = "cmd.exe";
            p.StartInfo.UseShellExecute = true;
            p.StartInfo.RedirectStandardInput = false;
            p.StartInfo.RedirectStandardOutput = false;
            p.StartInfo.RedirectStandardError = false;
            p.StartInfo.CreateNoWindow = false;
            p.Start();
            Thread.Sleep(2000);
            SendKeys.Send("perl -v{Enter}");

结果:


不会有任何执行。但这里如果只是用SendKeys.Send 向一个文本编辑框输入文本,那大小写都可以正常输入。

Microsoft 官方也并没有相关的解释,只是给了下面一个提示

但我个人觉得歪果仁跟我们的键盘大小写应该一样吧,这个问题也没必要深究,所以自行测试。


经过个人测试,发现问题在于输入文本的大小写,如果将“perl”改成大写开始,并且同时需要把“-v”也改成大写,这样就可以正常执行了。


总结:

在SendKeys.Send调用cmd执行cmd命令的时候,当传入小写的字符,则cmd不显示。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值