首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拖放Win7机器到我的应用程序

拖放Win7机器到我的应用程序
EN

Stack Overflow用户
提问于 2010-12-20 17:08:06
回答 1查看 729关注 0票数 2

我有一个用户正在Win7上运行我的Winforms应用程序。我的应用程序允许用户从打开的Excel电子表格中选择行,并将它们拖放到应用程序上。但是,该用户无法执行拖放。游标更改为"no“游标(带线的小圆圈),操作将不完成。

我正在研究拖放和Win7,以及我发现的所有指向UAC和/或UIPI的东西。我正在寻找一些解决方案,但不确定以下任何一种方法是否有效:

  • 如果用户以管理员身份登录(结果是以管理员身份运行我的应用程序),那么是否允许拖-n拖放工作?
  • 是否需要关闭或更改UAC/UIPI的设置,以便能够拖放?

我不知道这是什么问题。我的应用程序通常运行在C:/Documents和Settings/.(C)/用户/.( Win7)。它是从物质跑出来的吗?拖放不工作是因为用户没有足够的权限运行我的应用程序吗?他的Excel和我的应用程序在不同的权限级别上吗?如果是这样,那又能做些什么呢?请注意,尽管我的应用程序允许用户直接拖动文件,但这也不起作用。

另外,我有没有办法让用户用其他应用程序来重现这个问题?有没有Win7附带的应用程序,他可以看到同样的问题。例如,可以使用记事本复制吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-20 17:41:44

由UIPI解释这个问题是一个很长的过程。这与用户是否作为管理员登录没有任何关系,这并不影响UAC,而且您的程序也将使用相同的帐户运行。UIPI阻止D+D的唯一方法是当你的程序被提升,而Excel没有被提升。

提升自己需要工作,而不是偶然的。您必须包含一个清单,以便用户获得UAC提示符,您将知道这一点。或者用户必须更改桌面快捷方式并勾选“以管理员身份运行此程序”选项,她知道这一点。虽然UIPI可以绕过Windows (ChangeWindowMessageFilter),但是它不能拖放,所以如果有任何提升,那么您就会陷入困境。最终的测试是简单地要求用户将UAC滑块放下来。

更可能的情况是,您的DragEnter事件处理程序对它看到的数据不满意,因此不分配e.Effect属性。如果您无法在站点上获得调试器,那么编写一个小的测试程序来记录e.Data.GetFormats()的值,再加上您用来检查drop是否可以接受的任何内容。别忘了显而易见的一点:用户只是在摸索拖拽。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4491998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档