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;
}
复制代码

 


posted @   一字千金  阅读(1497)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示