首页 > 代码库 > 文件拖拽功能失效,原来是UAC把它过滤了

文件拖拽功能失效,原来是UAC把它过滤了

碰到这样一个问题,文件拖拽功能在没有以管理员身份运行的时候是正常的,但是一旦使用管理员身份运行,这个功能就失效了,搜索了好久总算找到原因了。

在window visa以上版本里引入了用户账户控制(UAC),在管理员权限上会过滤掉一些窗口消息,文件拖拽正好也也被过滤了,解决的方法就是使用ChangeWindowMessageFilterEx()解除过滤

//解除window7以上窗口对该消息的过滤
ChangeWindowMessageFilterEx(hwndDlg, WM_DROPFILES, MSGFLT_ALLOW, NULL);
ChangeWindowMessageFilterEx(hwndDlg, 0x0049, MSGFLT_ALLOW, NULL);//这句不详,但是没它不行
//ChangeWindowMessageFilterEx函数最低版本要window visa,所以要做版本校验

 

文件拖拽功能失效,原来是UAC把它过滤了