C# SendKey 到 MS-DOS 应用程序

发布于 2024-07-22 01:21:38 字数 491 浏览 5 评论 0 原文

我需要通过 C# 中的 SendKey 驱动旧版 DOS 应用程序。 然而,我发现它不起作用。

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

不过,论坛指出 MSDN 文章 142819,它利用剪贴板将按键推送到MS-DOS 应用程序。 给出了 VB 示例,但我不知道如何将其转换为 C#。

有人有或知道用 C# 编写的类似示例可供我参考吗?

I need to drive a legacy DOS application through SendKey in C#. However, I found that it didn't work.

From http://www.vbforums.com/showthread.php?t=39626, I understand that SendKey doesn't really works on MS-DOS application. All MS-DOS application receives is "\" when SendKey is called.

However, the forum points to MSDN Article 142819, which utilizes Clipboard to push the keys into the MS-DOS application. An VB sample is given but I don't know how to translate it to C#.

Anyone has or know any similar example that is written in C# that I can refer?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我们只是彼此的过ke 2024-07-29 01:21:38

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

If I understand question correctly, you can try to use Process.StandardInput property to send keys. To obtain a Process object you can use one of GetProcessBy... methods.

如此安好 2024-07-29 01:21:38

您应该使用 keybd_event (pinvoke)。 您需要使用 SetForegroundWindow (pinvoke),然后调用它。

You should use keybd_event (pinvoke) instead. You will need to set the console window to be the foreground window using SetForegroundWindow (pinvoke) and then call it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文