win10 程序管理員權限讀寫文件和界面無法拖入的情況解決


 自己開發了一個股票智能分析軟件,功能很強大,需要的點擊下面的鏈接獲取:

https://www.cnblogs.com/bclshuai/p/11380657.html

 1.問題描述

環境:

Qt 5.9.6, vs2105編譯的程序在win7系統上可以正常運行,在win10系統上出現無法創建寫入文件的問題,設置了管理員權限之后,可以創建和寫入,但是無法拖拽文件到程序界面。

2.問題分析

win10系統對權限控制要求比較高,C盤創建文件,需要管理員權限才能打開,所以需要編譯時,在屬性中設置管理員權限。

設置管理員權限之后,打開程序時需要以管理員權限打開程序。但是卻無法拖入文件到程序界面,因為管理員權限打開的程序權限級別比較高,拖入的文件權限比較低,無法將低權限的文件拖入到高權限的程序界面。

3.解決辦法

設置不按照用戶權限控制來設置程序,程序就不會受到任何權限限制,誰都可以用,可以拖入,誰也可以打開。

將下面的內容復制到一個txt文件中,保存,然后將txt后綴改成reg,保存,然后雙擊,修改系統的一個參數,或者按照路徑去修改注冊表參數EnableLUA為0,表示不使用USer account control。

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableLUA"=dword:00000000

 

如果是需要你自己開發的程序自動檢測,這個參數,並且將它修改為0,可以用代碼實現,Qt代碼實例如下:

bool EncryptedSoft::DragCheck()
{
    QSettings *programReg = NULL;
    programReg = new QSettings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\", QSettings::NativeFormat);

    if (!programReg->contains("EnableLUA"))
    {
        LOG_ERROR("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\ don't have EnableLUA");
        delete programReg;
        return false;
    }
    if (programReg->value("EnableLUA").toInt()==1)
    {
        programReg->setValue("EnableLUA", 0);
    }
    delete programReg;
    LOG_INFO("set EnableLUA 0 ");
    return true;
}

 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM