次の曲、一時停止、再生、音量アップなどのマルチメディア制御コマンドをオペレーティング システムに送信する方法はありますか? Fn+ some mappingを押したときに送信されるコマンド..key。私は PC 用のリモコンを作成しており、それらのコマンドを送信することが不可欠です。
2142 次
3 に答える
3
keybd_event を使用してキーの押下をシミュレートできます。正しく認識するには、キーを押し下げてからキーを押し上げる必要があります。
[DllImport("user32.dll", SetLastError = true)]
public static extern void keybd_event(byte virtualKey, byte scanCode, uint flags, IntPtr extraInfo);
public const int VK_MEDIA_NEXT_TRACK = 0xB0;
public const int VK_MEDIA_PLAY_PAUSE = 0xB3;
public const int VK_MEDIA_PREV_TRACK = 0xB1;
public const int KEYEVENTF_EXTENDEDKEY = 0x0001; //Key down flag
public const int KEYEVENTF_KEYUP = 0x0002; //Key up flag
private void ButtonClick(object sender, EventArgs e)
keybd_event(VK_MEDIA_PREV_TRACK, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
keybd_event(VK_MEDIA_PREV_TRACK, 0, KEYEVENTF_KEYUP, IntPtr.Zero);
}`
于 2017-01-08T16:18:34.830 に答える
0
残念ながら、ほとんどの場合、キーFnはWindows APIを使用して送信できず、その結果、.NETクラスを使用して送信できません。これは、製造元がこの機能をどのように実行したかによって異なります。おそらくそれは追加のドライバーによってサポートされているか、オペレーティングシステムを超えています。
Windows APIコードまたはAutoHotKeyFnなどのアプリケーションを使用してコマンドをフックしようとすると、コードからコマンドを送信できるかどうかを確認できます。たとえば、私のラップトップでは、マルチメディアコマンドをフックできません。
それ以外の場合は、運が良ければ、コメントに記載されているようにSendKeysを使用してください。
于 2013-02-22T00:52:30.660 に答える