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

本文介绍了一种使用Windows API实现复制粘贴的方法。通过调用keybd_event模拟按下和释放Ctrl键,并配合发送V键消息来实现粘贴操作。文章提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近玩windows api ,想触发个复制粘贴。

各种百度,各种google。网上大部分都是说使用

 SendMessage 先触发ctrl 消息,然后再触发V消息。

然而小炮。(我)试炸了,PostMessage方法也试了,只能触发最后一个V字母。

查了原因好像说是什么鬼sendMessage不支持ctrl按钮。

后来不了了之了~~~~~~

 

开玩笑。后来还是查到了一种方法:

[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 键

 全是百度、Google来的,不喜自己查。

谢谢~~

 

转载于:https://www.cnblogs.com/heiDog/p/6395815.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值