这是一个有点不寻常的问题。我目前正在努力实现 Office 应用程序的自动化。基本上问题是,当我通过 RDP 执行我的应用程序时,我的应用程序能够与 Office 应用程序正确交互,但是如果我将应用程序设置为从 Windows 服务生成,则无法使用 SendInput() 发送击键。操作系统是 Win03 标准。
当从 Windows 服务生成应用程序时,我可以通过 pinvoke 读取窗口标题、通过互操作实现自动化等,但即使调用返回 1,SendInput() 消息似乎也消失了。我正在尝试此时要做的是向对话框发送一个转义键。
我尝试将击键作为虚拟键和扫描码发送。
有什么想法或提示吗?提前致谢!
(顺便说一句:我确实意识到 MSFT 不支持/批准这种自动化。)
编辑: 以防万一其他人有这个问题,这有效:
[DllImport("user32")]
public static extern bool PostMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
bool returnVal = NativeWin32.PostMessage(popup, 0x0100, new IntPtr(0x1b), IntPtr.Zero);