C# 怎么给控制台程序发送ctrl+c命令?

路过秋天-博客园 2013-04-09 01:19:35
最近折腾了下站点,又折腾了点winform,遇到一个问题,在winform里Process调用控制台程序之后,运行,想给控制台发送ctrl+c的命令,退出原有任务,有方法没?
...全文
1075 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wy811007 2013-05-03
  • 打赏
  • 举报
回复
10L说的对 用process.kill 我就是这么弄滴 嘻嘻
wy811007 2013-04-17
  • 打赏
  • 举报
回复
额 这个你算问着了,我之前写过.. 用api搞定的 先找窗体句柄, 然后对窗体发消息!
devmiao 2013-04-17
  • 打赏
  • 举报
回复
退出原有任务直接用 Process.Kill 就可以了。
devmiao 2013-04-17
  • 打赏
  • 举报
回复
只能把剪贴版上的文字依次模拟键盘输入发给控制台。 ctrl+v是不行的。
  • 打赏
  • 举报
回复
引用 7 楼 MicrosoftCenterOfHN 的回复:
1. 这个发送key是小事。 2. 关键你找到那个cmd 窗口,然后让这个窗口get focus, 发送key就可以了。 3. 找到窗口的方法,可以了解一下UI Automation技术。用UISpy看一下cmd窗口的一些属性,根据条件找到窗口,然后就可以做第二点里提到的操作了。
如果你知道cmd窗口的process ID,那就更好了。以此为条件获得窗口句柄。就不用再用UISpy去查看其它一些信息了。
  • 打赏
  • 举报
回复
1. 这个发送key是小事。 2. 关键你找到那个cmd 窗口,然后让这个窗口get focus, 发送key就可以了。 3. 找到窗口的方法,可以了解一下UI Automation技术。用UISpy看一下cmd窗口的一些属性,根据条件找到窗口,然后就可以做第二点里提到的操作了。
wy811007 2013-04-17
  • 打赏
  • 举报
回复
引用 5 楼 hzfqq333 的回复:
引用 4 楼 wy811007 的回复:额 这个你算问着了,我之前写过.. 用api搞定的 先找窗体句柄, 然后对窗体发消息! 能贴个代码 我们也学习下么?
额...那个代码是人家定制滴 收费写的..囧rz sorry
阿拉敏敏 2013-04-17
  • 打赏
  • 举报
回复
引用 4 楼 wy811007 的回复:
额 这个你算问着了,我之前写过.. 用api搞定的 先找窗体句柄, 然后对窗体发消息!
能贴个代码 我们也学习下么?
Rockstone 2013-04-09
  • 打赏
  • 举报
回复
SendKeys.Send("{Ctrl}+{C}");
gxingmin 2013-04-09
  • 打赏
  • 举报
回复
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern void keybd_event(int bVk, byte bScan, int dwFlags, int dwExtraInfo);   

 static void Main(string[] args)
        {

....
   //发送ctrl+c
            keybd_event(Convert.ToInt32(System.Windows.Forms.Keys.ControlKey), 0, 0, 0);
            keybd_event(Convert.ToInt32(System.Windows.Forms.Keys.C), 0, 0, 0);

           ...
        }
amu0528 2013-04-09
  • 打赏
  • 举报
回复
win api

110,552

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧