如何在C#中远程控制cmd.exe进程

时间:2011-08-17 11:02:46

标签: c# winapi cmd kernel32

我真的遇到了一个问题(现在已经7天了),在我发疯之前,我以为我只会征求意见。

我想要做的基本上就是启动并远程控制cmd.exe进程。但是,StandardInput和StandardOutput流不能完成这项工作,因为它们不会被等待用户输入的“mysql”等命令触发。

所以我想要的是读取cmd.exe控制台的内容并写入它。但是write方法应该能够触发一个新命令。

我尝试了很多,我很确定kernel32.dll可以解决这个问题:

  • ReadConsoleOutput()
  • WriteConsoleInput()
  • GetConsoleScreenBufferInfo()
  • SetConsoleCursorPosition()

当然我已经有一些工作了,但我绝对不确定我是否采取了正确的道路。因此,我不会发布任何代码,因为它可能会让你感到困惑。

如果有人能指出我的工作演示或教程或类似的东西,那将是很棒的。即使它是C ++或C - 也会比没有好。

提前致谢。

Mewes Kochheim

PS:请不要只发布pinvoke或MSDN的链接,我需要的是更复杂一点。似乎我没有足够的winapi经验来自己到达那里:/

编辑:我要根据你们发布的链接尝试一些我的新想法。我会回来发布我的想法。谢谢你的帮助...

1 个答案:

答案 0 :(得分:0)

here你找到了几个关于“远程控制命令提示”的例子......

另一个link(这次是来自stackoverflow的.NET)...

来自visualstudio杂志的

something ......