by_封爱 辽宁芒果网络股份有限公司 软件工程师  2020年04月20日
user32.dll注册了HotKey导致原功能失效的问题.
我注册了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 ...

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

...全文
20 点赞 收藏 2
写回复
2 条回复

还没有回复,快来抢沙发~

发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告