0

我正在容器化一个 Windows 应用程序,该应用程序包含一个需要在启动应用程序之前运行的命令行实用程序。该实用程序需要一些用户输入,我希望能够通过启动该实用程序并将数据写入其标准输入来自动执行此步骤。不幸的是,我发现该实用程序不会从标准输入中读取数据,而是会监听键盘事件。我想出了如何以编程方式生成键盘事件并确认一切都可以完全自动化,但似乎我使用的所有 winapi 函数都不能在 docker 容器内工作。

在 Windows Server Core 2019 容器中使用时, SendInputkeybd_event都返回错误代码 5(拒绝访问)。我尝试将这些函数称为 ContainerAdministrator 和 System ,但都不起作用。如果我手动输入输入,该实用程序在容器内工作;所以我知道它能够监听和接收键盘事件。有什么我想念的吗?我需要切换一些安全设置以允许使用 SendInput 和/或 keybd_event 吗?或者这只是 Windows 容器设计禁用所有用户桌面/UI 功能的一种情况?

我也尝试过在容器内工作的WriteConsoleInput,但该实用程序不响应这些调用;我认为这是因为它没有使用 ReadConsoleInput 或任何其他控制台读取功能。

4

0 回答 0