z1041313804
如题
我想写一个酷Q机器人插件向cmd窗口发送指令
求C#完整代码

傲娇的小白
这个简单啊   调用api 窗口句柄 发送message啊 你这悬赏也太高了吧
等我一会我去敲代码

z1041313804
傲娇的小白 发表于 2019-3-11 17:01
这个简单啊   调用api 窗口句柄 发送message啊 你这悬赏也太高了吧
等我一会我去敲代码
...

简单吗?  我怎么不会。。。
赶快 代码 急用

傲娇的小白
本帖最后由 傲娇的小白 于 2019-3-11 17:17 编辑

首先你需要调用系统API
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int y, int Width, int Height, int flags);

[DllImport("user32.dll", EntryPoint = "FindWindow", CharSet = CharSet.Auto)]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

然后你需要遍历运行中的程序 找到Cmd的窗口句柄(如果有多个cmd的话 就需要你自己加个判断了)
Process[] pro = Process.GetProcesses();
foreach(var item in pro)
{
     if (item.ProcessName.Equals("cmd"))
     {
             cmdmwhd= item.MainWindowHandle;
      }
}//cmdmwhd是cmd窗口句柄 类型是IntPtr

然后就是发送了
//IntPtr cmdmwhd= FindWindow("ConsoleWindowClass", null);   你也可以去掉上面的遍历程序找句柄  直接通过className获取cmd句柄
SetWindowPos(cmdmwhd, -1, 0, 0, 0, 0, 1 | 2);  //置顶窗体
SendKeys.Send("stop");
SendKeys.Send("{ENTER}");   //回车

哇,2000贡献 我这是到手了嘛?

额,为什么代码显示不全??????


我改成引用了

z1041313804
傲娇的小白 发表于 2019-3-11 17:11
首先你需要调用系统API
然后你需要遍历运行中的程序 找到Cmd的窗口句柄(如果有多个cmd的话 就需要你自己加 ...

我先试试可行不

z1041313804
傲娇的小白 发表于 2019-3-11 17:11
首先你需要调用系统API
然后你需要遍历运行中的程序 找到Cmd的窗口句柄(如果有多个cmd的话 就需要你自己加 ...

测试好了 谢谢啊

第一页 上一页 下一页 最后一页