关于C# 调用windows API组合键。栗子 CTLacrosseL+V

不久前玩windows api ,想触发个复制粘贴。

各样百度,各个google。网上海高校部分都是说利用

 SendMessage 先触发ctrl 音信,然后再触发V新闻。

但是小炮。(笔者)试炸了,PostMessage方法也试了,只可以触发尾数V字母。

查了原因好像正是什么鬼sendMessage不协助ctrl按钮。

后来不了了之了~~

图片 1

 

春风得意。后来或许查到了一种办法:

[DllImport(“User32.dll”, EntryPoint = “keybd_event “)]
public static extern void keybd_event(byte bVk, byte bScan, int
dwFlags, int dwExtraInfo);

[DllImport(“user32.dll”, CharSet = CharSet.Auto)]
private static extern int SendMessage(int hWnd, int wMsg, uint wParam,
uint lParam);

keybd_event(VK_CONTROL, 0, 0,
0);  //按下ctrl,在下边释放从前,他的场地一向依旧被按下的,不信你试下找个地点按
v  

SendMessage(hwdn, WM_KEYDOWN, VK_V, 0);  //按下 V 键
Thread.Sleep(10);  //这么些懒得说,不会
SendMessage(hwdn, WM_KEYUP, VK_V,
0);  //部分系统恐怕不需求接触那一个,自动释放V键,提议开头添加比较好

keybd_event(VK_CONTROL, 0, 0x02, 0);  //释放 ctrl 键

 全是百度、谷歌来的,不喜本人查。

谢谢~~

 

相关文章