Это несколько необычная проблема. В настоящее время я работаю над тем, чтобы автоматизировать приложение Office. В основном проблема заключается в том, что мое приложение может правильно взаимодействовать с приложением Office, когда я запускаю свое приложение через RDP, но я не могу отправлять нажатия клавиш с помощью SendInput (), если я настроил приложение для вызова из службы Windows. ОС Win03 Std.
При порождении приложения из службы Windows я могу читать заголовки окон, автоматизировать через взаимодействие и т. Д., Как и ожидалось, через pinvoke, но сообщения SendInput (), по-видимому, исчезают, даже если вызов возвращает 1. Все I Я пытаюсь сделать на этом этапе отправить комбинацию клавиш в диалоговом окне.
Я пытался отправить нажатия клавиш как в виде виртуальных клавиш, так и в виде кодов сканирования.
Есть идеи или советы? Заранее спасибо!
(Кстати: я понимаю, что такого рода автоматизация не поддерживается и не разрешается MSFT.)
EDIT:
На случай, если у кого-то еще есть эта проблема, это работает:
[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);