右键文件或文件夹或空白处弹出菜单包含自己软件快捷方式
创始人
2025-05-29 10:00:10

        做一个软件向服务器传递文件,想在选中文件或者文件夹的时候,通过右键菜单就可以打开传递软件,并且把选中的文件或者文件夹地址传递给软件。这样就不需要每次都执行“打开软件->打开文件夹->选择文件”步骤了。

        Windows下通过修改注册表的形式,把软件注册到右键菜单文件里的,对应的注册表位置如下:

        右键空白处: \\HKEY_CLASSES_ROOT\\Directory\\Background\\shell

        右键文件夹: \\HKEY_CLASSES_ROOT\\Directory\\shel

        右键文件:   \\HKEY_CLASSES_ROOT\\*\\shell

        下面是程序按钮槽函数,头文件包含

//===注册表里注册,在桌面右键可以显示当前软件
//===如果直接编译时就能修改注册表的话,使用管理员身份运行Qt Creator,后面在注册表中:查看->刷新,就能看到注册表的内容变化了
void MainWindow::on_pushButton_zhuce_clicked()
{QString appRunningPath =QDir::toNativeSeparators(QCoreApplication::applicationDirPath());   //===获取当前运行路径,并转成\\形式qDebug()<

        上面在settingWJ.setValue (".","打开测试数据上传软件");是设置右键菜单里显示的名字,如下图中红色框内的信息。

 

 

        settingWJ2.setValue(".",appRunningPath+"\\fileManagement.exe %1");这个是设置右键菜单选择打开的程序的路径。注:路径要使用’\\’方式来表示;%1则会在右键时,将传递选中文件的路径。

        如果要使这些信息写入注册表,运行程序的时候要用管理员身份运行。这样才能写入注册表里。

        右键文件或文件夹时,如何将当前的路径信息传递到程序里?路径信息会从主程序的argc和argv中传递进来,argc=0时,传递进来的argv[0]则是本程序的路径,比如我的是fileManagement.exe的路径;当argc为1时,则argv[1]传进来的就是当前的文件或者文件夹的路径。我这里通过isDir()和isFile()来判断是文件还是文件夹,然后通过MainWindow构建相应的函数getFileName()和getFolderName(),就可以把文件或者文件名传递到MainWindow里进行上传等操作。

        具体的代码如下:

int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();//===第0个参数为当前exe的路径  如果有第1个参数,则是选择文件或者文件夹的路径if(argc>1){QString appRunningPath =QDir::toNativeSeparators(QCoreApplication::applicationDirPath())+"\\fileManagement.exe";QString str(argv[1]);if(QString::compare(str,appRunningPath)==0){//w.getFileName("名字相同");}else{QFileInfo fi(str);if(fi.isDir()){w.getFileName(str);}else if(fi.isFile()){w.getFolderName(str);}}}return a.exec();
}

创作不易,如有意见建议欢迎留言!

如果有帮助,望不吝点赞和赞赏!

相关内容

热门资讯

直线涨停!603956,3连板... 6月29日,A股三大指数开盘涨跌不一。截至发稿,科创50指数涨超4%,继续刷新历史新高,半导体芯片股...
字节跳动考虑采用百度昆仑芯?接... 资料图。本文来源:澎湃新闻字节跳动考虑采用百度昆仑芯?接近人士:字节没有与其合作意向6月29日,有消...
暴涨368%!白鸽在线卡点上市... 出品|达摩财经6月29日,白鸽在线(02672.HK)正式登陆港交所,成为“场景险AI第一股”。截至...
说多了都是泪!牛市刚赚的钱,又... 每一轮行情退潮之后,总有大批投资者面对缩水的账户百思不解:明明在牛市中赚得盆满钵满,为何短短几日震荡...
罕见,今夜54家A股公司提示风... 6月29日晚间,54家A股公司发布股票交易异常波动公告或股票交易风险提示公告,分别是创元科技、五方光...