2

我需要通过 C# 中的 SendKey 来驱动遗留的 DOS 应用程序。但是,我发现它不起作用。

http://www.vbforums.com/showthread.php?t=39626,我了解到 SendKey 并不真正适用于 MS-DOS 应用程序。调用 SendKey 时,所有 MS-DOS 应用程序接收到的都是“\”。

但是,论坛指向MSDN 文章 142819,该文章利用剪贴板将密钥推送到 MS-DOS 应用程序中。给出了一个 VB 示例,但我不知道如何将其转换为 C#。

任何人都有或知道任何用 C# 编写的类似示例,我可以参考?

4

2 回答 2

2

您应该改用keybd_event ( pinvoke )。您需要使用SetForegroundWindow ( pinvoke ) 将控制台窗口设置为前景窗口,然后调用它。

于 2009-06-02T17:27:59.643 回答
1

如果我正确理解问题,您可以尝试使用Process.StandardInput属性发送密钥。要获取 Process 对象,您可以使用 GetProcessBy... 方法之一。

于 2009-06-02T17:48:53.013 回答