读书人

C# 如何给控制台程序发送ctrl+c命令

发布时间: 2013-06-25 23:45:41 作者: rapoo

C# 怎么给控制台程序发送ctrl+c命令?
最近折腾了下站点,又折腾了点winform,遇到一个问题,在winform里Process调用控制台程序之后,运行,想给控制台发送ctrl+c的命令,退出原有任务,有方法没? C# 控制台 WinForm
[解决办法]
win api
[解决办法]

[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);

...
}

[解决办法]
SendKeys.Send("{Ctrl}+{C}");
[解决办法]
额 这个你算问着了,我之前写过..
用api搞定的
先找窗体句柄,
然后对窗体发消息!
[解决办法]
1. 这个发送key是小事。
2. 关键你找到那个cmd 窗口,然后让这个窗口get focus, 发送key就可以了。
3. 找到窗口的方法,可以了解一下UI Automation技术。用UISpy看一下cmd窗口的一些属性,根据条件找到窗口,然后就可以做第二点里提到的操作了。
[解决办法]
退出原有任务直接用 Process.Kill 就可以了。

读书人网 >C#

热点推荐