|
分類:[C#]
はじめまして,現在C#でアプリケーションを開発しています.
OS:WindowsXP 開発環境:VS2005 C#
その中で,APIのSendMessageを用いてファンクションキーを送信するような ことを行いたいのですが,上手く行きません. ソースコードは次のような感じです.
==== [DllImport("user32.dll", CharSet=CharSet.Auto)] private extern static int SendMessage(IntPtr hwnd, IntPtr wMsg, IntPtr wParam, ref IntPtr lParam);
private const int VK_F8 = 0x77; private const int WM_KEYDOWN = 0x100; private const int WM_KEYUP = 0x101;
public void SendKey(int handle){ IntPtr param = IntPtr.Zero; SendMessage((IntPtr)handle, (IntPtr)WM_KEYDOWN, (IntPtr)VK_F8, ref param); SendMessage((IntPtr)handle, (IntPtr)WM_KEYUP, (IntPtr)VK_F8, ref param); } ====
このSendKeyメソッドで送信しようとしています. 上手く行かない現象として,開発環境から立ち上げたところ,上手く送信されるのですが, コンパイルしたものを立ち上げてみると,どのようなキーを送っても「e」が送信されてしまいます.
そこで開発環境で,ホスティングプロセスの使用を切ってみたところ,開発環境からでも同じ現象に なりました.
このような現象なのですが,どなたか解決方法をご存知ないでしょうか. よろしくお願いします.
|