これはやや珍しい問題です。現在、Office アプリケーションの自動化に取り組んでいます。基本的に問題は、RDP 経由でアプリを実行するとアプリが Office アプリと正しくやり取りできることですが、Windows サービスからアプリケーションを起動するように設定すると、SendInput() を使用してキーストロークを送信できません。OSはWin03 Std.
Windows サービスからアプリを生成すると、ウィンドウのキャプションを読み取ったり、相互運用機能を自動化したりできますが、呼び出しが 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);