首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2013-06-25 
C# 怎么给控制台程序发送ctrl+c命令?最近折腾了下站点,又折腾了点winform,遇到一个问题,在winform里Proces

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 就可以了。

热点排行