zoukankan      html  css  js  c++  java
  • Win7系统应用程序不能拖放文件原来又是UAC是惹的祸

     


    一定要先开启文本框的拖放属性this.txtPath.AllowDrop = true;
    本来就是一个很简单的问题,妈的,浪费我一个多小时。愿意就是罪魁祸首就是win7的UAC权限导致的。又是一个蛋疼的问题!
     private void txtPath_DragEnter(object sender, DragEventArgs e)
            {
                if (e.Data.GetDataPresent(DataFormats.FileDrop))
                    e.Effect = DragDropEffects.All;
                else
                    e.Effect = DragDropEffects.None;
            }

            private void txtPath_DragDrop(object sender, DragEventArgs e)
            {
                string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false);
                if (s.Length > 0)
                {
                    //指定html文件类型。
                    if (System.IO.Path.GetExtension(s[0]).ToLower() == ".html")
                    {
                        txtPath.Text = s[0];
                    }
                    else
                    {
                        XtraMessageBox.Show("只支持拖放html格式的文件""消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }

    我的Visual Studio2012 是以管理员身份运行,导致Debug的时候应用程序也是以管理员身份运行的,然后Win7系统在UAC的保护下,控件的DragEnter/DragOver/DragDrop等事件统统都不被触发。

     


    从VISTA->WINDOWS7 UAC(用户帐户控制)出现到至今,拖放文件一直存在一个问题:
    “以管理员身份运行”的任何程序,均不能正常接受拖放进窗口中的文件!


    当我们的WinForm应用程序需要以管理员的身份运行时(比如,为了访问windows注册表),我们需要在程序清单(app.manifest文件)中将UAC选项改为"requireAdministrator"(可以参考如何自动以管理员身份运行.NET程序?)。如此生成的exe的图标在XP和Win2003下是没有变化的,但是放到win7下面,你会发现图标的右下角多了一个小盾牌。

     

    如何解决Win7下这个拖拽的问题了?
    解决办法:一、应用程序不以管理员身份运行。或者visual studio也不要以管理员身份运行。

    解决办法二:超级无耻方法:UAC设置为0级就无问题了


    UAC设置为0级就无问题了
    如果有更好的方法,请留言! 
  • 相关阅读:
    Openmp编程练习
    PAT-1107 Social Clusters (30 分) 并查集模板
    [无需建树]已知前序或后序和中序遍历结果,输出前序或后序或层次遍历的方法汇总
    微机原理与接口技术笔记(二)
    微机原理与接口技术笔记(一)
    win32API多线程编程
    PAT-1021 Deepest Root (25 分) 并查集判断成环和联通+求树的深度
    PAT-1015 Reversible Primes (20 分) 进制转换+质数
    PAT-1022 Digital Library (30 分) 字符串处理
    PAT-1013 Battle Over Cities (25 分) DFS求连通块
  • 原文地址:https://www.cnblogs.com/51net/p/2558578.html
Copyright © 2011-2022 走看看