3
A
回答
7
如果您正在讨论Win32下的编程,请使用SendInput Windows API。
您需要构建INPUT结构,将类型成员设置为INPUT_KEYBOARD。在ki成员(KEYBDINPUT类型)中,可以将vk(虚拟键)设置为所需的VK代码(例如,VK_MEDIA_NEXT_TRACK,VK_MEDIA_STOP)。
虚拟键代码:http://msdn.microsoft.com/en-us/library/dd375731(v=VS.85).aspx
SendInput功能:http://msdn.microsoft.com/en-us/library/ms646310(v=VS.85).aspx
我没有测试以下,但应该是这样的:
KEYBDINPUT kbi;
kbi.wVk = VK_MEDIA_STOP; // Provide your own
kbi.wScan = 0;
kbi.dwFlags = 0; // See docs for flags (mm keys may need Extended key flag)
kbi.time = 0;
kbi.dwExtraInfo = (ULONG_PTR) GetMessageExtraInfo();
INPUT input;
input.type = INPUT_KEYBOARD;
input.ki = kbi;
SendInput(1, &input, sizeof(INPUT));
4
更容易比接受的答案是keybd_event。 没有结构只是一个数值参数调用。
// C# example:
public const int KEYEVENTF_EXTENDEDKEY = 1;
public const int KEYEVENTF_KEYUP = 2;
public const int VK_MEDIA_NEXT_TRACK = 0xB0;
public const int VK_MEDIA_PLAY_PAUSE = 0xB3;
public const int VK_MEDIA_PREV_TRACK = 0xB1;
[DllImport("user32.dll", SetLastError = true)]
public static extern void keybd_event(byte virtualKey, byte scanCode, uint flags, IntPtr extraInfo);
keybd_event(VK_MEDIA_PREV_TRACK, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
相关问题
- 1. 在Mac上模拟媒体按键
- 2. 模拟键按c#
- 3. 可可:模拟的Macbook上键和多媒体键
- 4. 如何模拟按键(ALT + C)
- 5. 如何在C中模拟按键#
- 6. 如何在C中模拟按键#
- 7. 多媒体控制与多媒体键盘在C#
- 8. 模拟C中的按键#
- 9. 按键模拟游戏[C++]
- 10. Qt - C++模拟按键
- 11. 模拟多个按键
- 12. 如何模拟按键
- 13. 如何模拟按键
- 14. 模拟流媒体数据
- 15. 如何模拟键盘/鼠标按键?
- 16. 模拟按键
- 17. 如何在Mac OS上模拟C++中的键入/按键?
- 18. 如何在C++中模拟指定的键盘按键?
- 19. react.js如何检测按键以及如何模拟按键?
- 20. 按键模拟键盘按下“Shift”键
- 21. Flex:模拟按键
- 22. 模拟键盘按
- 23. Android模拟按键
- 24. VB模拟按键
- 25. C#:模拟游戏中的按键
- 26. C++ win32使用DirectInput模拟按键
- 27. 模拟在C#中一个按键
- 28. 模拟多个按键组合
- 29. 在javascript中模拟多个按键
- 30. 如何在java中模拟按键?
语言不可知的?我认为你需要担心操作系统不可知论。无论使用哪种语言,解决方案都必须针对特定的操作系统。 – 2010-06-03 19:31:53