UAC打开后,如何实现文件的拖拽

duyanbin_sy 2008-09-08 04:49:30
UAC打开后,如何实现文件的拖拽
上网找了很多资料,都说用ChangeWindowMessageFilter函数。
但是具体怎么用,请jiangsheng指点。
在线等,分不是问题。多谢了!
...全文
736 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanluwky 2011-05-03
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 qiubolecn 的回复:]
请用

ChangeWindowMessageFilter(0x0049, MSGFLT_ADD);
ChangeWindowMessageFilter(WM_DROPFILES, MSGFLT_ADD);
[/Quote]


高人!太猛了!厉害厉害!
qiubolecn 2010-01-31
  • 打赏
  • 举报
回复
请用

ChangeWindowMessageFilter(0x0049, MSGFLT_ADD);
ChangeWindowMessageFilter(WM_DROPFILES, MSGFLT_ADD);
duyanbin_sy 2008-09-16
  • 打赏
  • 举报
回复
谢谢,各位的回复,暂时不解决了。

揭帖
蒋晟 2008-09-12
  • 打赏
  • 举报
回复
可以将启动服务的代码分离出来,只提升需要提升的代码
fzpfzpaaa 2008-09-12
  • 打赏
  • 举报
回复
因为程序启动时要运行一个服务。所以得是管理者方式运行。
SetTokenInformation()这个函数谁用过
蒋晟 2008-09-11
  • 打赏
  • 举报
回复
不行
你的程序为什么必须提升安全级别才可以运行?

fzpfzpaaa 2008-09-11
  • 打赏
  • 举报
回复
刚刚试了一下,UAC打开后,在任务管理器中结束Explorer进程,然后再重新运行Explorer.exe,这时资源管理器就是管理者级别了,拖放消息就能收到了。
能否在代码中提升Explorer.exe的安全级别吗?
fzpfzpaaa 2008-09-11
  • 打赏
  • 举报
回复
继续顶!
maitao_sy 2008-09-10
  • 打赏
  • 举报
回复
很难很深奥。
关注ing~
naxiahucao 2008-09-09
  • 打赏
  • 举报
回复
我也不会,帮你顶
fzpfzpaaa 2008-09-09
  • 打赏
  • 举报
回复
up
蒋晟 2008-09-09
  • 打赏
  • 举报
回复
问题是从资源管理器拖的话,要在资源管理器进程内调ChangeWindowMessageFilter……
fzpfzpaaa 2008-09-09
  • 打赏
  • 举报
回复
vista刚发布时,有很多软件都是在vista上不能拖拽。但是后来更新后都好了。
他们是如何实现的啊?
请能人指点了!
fzpfzpaaa 2008-09-09
  • 打赏
  • 举报
回复
啊.PGC通信太专业了点.以前重来没有用过.一时半会想来也学不会.
MSDN上说可以修改拖放策略,不知道可不可实现.
大体说在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Low Rights\DragDrop和
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy中建立影射.
不知道GUID是如何创建的呢.怎么样和程序绑定在一起的?
sys0000 2008-09-09
  • 打赏
  • 举报
回复
貌似没啥好方法

只能调整程序结构,把界面部分做成普通权限启动,后台再做一个服务来实现高权限的部分操作,两者通过RPC来通信。
剑心1977 2008-09-09
  • 打赏
  • 举报
回复
拖放源与目标如果安全级别(隔离级别)不一致,是禁止拖放的
fzpfzpaaa 2008-09-09
  • 打赏
  • 举报
回复
是在资源管理器中开始的托的动作。应该怎么发送消息啊
如果不用WINDOWS自己的拖放消息。改用拖放组件(比如IDropTarget)能不能实现呢
有用过DropTarget类的,请指教。
蒋晟 2008-09-09
  • 打赏
  • 举报
回复
拖放的时候两边都要互相发送消息,所以两边都要调用ChangeWindowMessageFilter函数
但是拖放的时候具体是什么消息我就不清楚了
scq2099yt 2008-09-08
  • 打赏
  • 举报
回复
up
sys0000 2008-09-08
  • 打赏
  • 举报
回复
ChangeWindowMessageFilter添加的消息只要大于WM_USER才有效,所以添加WM_DROPFILES是没有的。

MSDN:

UIPI is a security feature that prevents messages from being received from a lower integrity level sender. All such messages with a value above WM_USER are blocked by default. The filter, somewhat contrary to intuition, is a list of messages that are allowed through. Therefore, adding a message to the filter allows that message to be received from a lower integrity sender, while removing a message blocks that message from being received.

Certain messages with a value less than WM_USER are required to pass through the filter regardless of the filter setting. You can call this function to remove one of those messages from the filter and it will return TRUE. However, the message will still be received by the calling process.

Processes at or below SECURITY_MANDATORY_LOW_RID are not allowed to change the filter. If those processes call this function, it will fail.
加载更多回复(2)

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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