Win7系統應用程式不能拖放檔案原來又是UAC是惹的禍

來源:互聯網
上載者:User
 

一定要先開啟文字框的拖放屬性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級就無問題了
如果有更好的方法,請留言! 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.