user32.dll注册了HotKey导致原功能失效的问题.

by_封爱 版主 2020-04-20 03:43:29
我注册了ctrl+c热键,用于"拦截"每次用户copy的东西.



HotKey.RegisterHotKey(Handle, 100, HotKey.KeyModifiers.Ctrl, Keys.C);


而且我在重载WndProc的时候,也能正常拦截这个热键.


const int WM_HOTKEY = 0x0312;
switch (m.Msg)
{
case WM_HOTKEY:
switch (m.WParam.ToInt32())
{
case 100: //TODO
cw(Convert.ToString(Clipboard.GetDataObject().GetData(DataFormats.Text)));
base.WndProc(ref m);


当我执行ctrl+c的时候 ,能执行...

但是这个时候剪贴板里的数据 不对...

比如 我没运行的时候 我copy了 "abc"

那么启动软件之后 不管我如何运行ctrl+c 到别的地方 ctrl+v 都是abc ...

我想是不是我破坏了系统的复制功能?

...全文
118 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
by_封爱 版主 2020-04-20
  • 打赏
  • 举报
回复
引用 1 楼 OrdinaryCoder 的回复:
拦截每次copy后的东西你做什么了 是不是因为你的拦截 导致copy的东西没有粘贴到剪切板中
我只是注册了ctrl+c 这个热键.. 然后在用户复制东西的时候.. 把数据从剪贴板里拿出来 存起来而已..
OrdinaryCoder 2020-04-20
  • 打赏
  • 举报
回复
拦截每次copy后的东西你做什么了 是不是因为你的拦截 导致copy的东西没有粘贴到剪切板中

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧