首页 > 系统相关 >QT实现windows窗口内嵌

QT实现windows窗口内嵌

时间:2024-07-27 23:53:57浏览次数:18  
标签:内嵌 winID QT attach windows app shareMem process shared

app

    QSharedMemory shared("appID");

    //attach成功表示已经存在该内存了,表示当前存在实例
    if (shared.attach())//共享内存被占用则直接返回
        return 0;

    MainWindow w;
    w.show();

    qulonglong winID = (qulonglong)w.winId();
    shared.create(32);
    shared.lock();
    memcpy(shared.data(), &winID, sizeof(qlonglong));
    shared.unlock();
process
   // 启动窗口
    QProcess process;
    process.start("app.exe");
    process.waitForStarted();

    QSharedMemory shareMem("appID");
    if(!shareMem.isAttached())
        shareMem.attach();

    HWND winID;
    shareMem.lock();
    memcpy(&winID, shareMem.data(), sizeof (qulonglong));
    shareMem.unlock();
    shareMem.detach();
    qDebug() << "id:" << winID <<"\n";

    // 嵌入进程窗口显示
    auto window = QWindow::fromWinId((WId)winID);
    auto widget = QWidget::createWindowContainer(window, nullptr);
    widget->show();
效果 

 

注:调试崩溃会引起共享内存异常,需taskkill /f /im app.exe|process.exe


创作不易,小小的支持一下吧!

标签:内嵌,winID,QT,attach,windows,app,shareMem,process,shared
From: https://blog.csdn.net/qq_30220519/article/details/140666360

相关文章

  • 使用浏览器开发人员工具抓取Windows聚焦桌面壁纸
    最近发现Windows聚焦桌面壁纸质量都挺高的,比如下图,无奈图片不给保存。所有只有想办法把他爬下来。没有这个功能的可以在桌面右击鼠标,选择个性化,背景,Windows聚焦这样桌面上就出现一个图标右击这个图标,出现一个弹窗,选择“了解详情”就打开一个网页,我们按F12打开开发人员工具......
  • 在Windows下安装配置JDK-21
    目录一.下载JDK-21二.安装JDK-21三.配置JDK-17四.验证JDK-21 欢迎阅读我的博客。今天,我想和大家分享一下如何在Windows环境下配置JDK-21。无论你是刚接触Java,还是想要在新的环境中安装JDK,这篇文章都将为你提供详细的步骤和指导。让我们开始吧! 一.下载JDK-21O......
  • 在Windows配置java环境变量
    目录环境变量环境变量的介绍环境变量的作用设置环境变量方法一方法二方法三安装JDKJAVA_HOME变量设置JAVA_HOME变量PATH变量设置PATH变量CLASSSPATH变量设置CLASSSPATH变量总结环境变量环境变量的介绍环境变量是操作系统中用来指定运行环境信息的一种参数。它......
  • Windows下用CMake构建和编译第三方依赖库并向C:\Program Files\或C:\Program Files
    从CMake构建和编译第三方依赖库的步骤:1、下载第三方依赖库的源码,并解压到指定的目录中。2、在第三方依赖库的的源码所在的目录下(一般是src/目录下)创建一个文件夹build。3、打开CMakeGUI软件,按照常规步骤配置和产生针对某种编译器的解决方案文件,比如Visualstudio2019。如下如......
  • Qt+OpenCascade开发笔记(一):occ的windows开发环境搭建(一):OpenCascade介绍、下载和安装过
    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/140604141长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…Qt开发专栏:三方......
  • 【待做】【攻防技术系列+权限提升】Windows提权
    Windows提权思维导图Windows提权工具vulmapvulmon开发的一款开源工具,原理是根据软件的名称和版本号来确定,是否有CVE及公开的EXP。这款Linux的工具挺好用,但是对于Windows系统层面不太适用。windows-exp-suggester这款和本工具的原理一样,尝试使用了之后,发现它的CVEKB数据库只......
  • Windows系统更新R版本及Rstudio
    由于一些包对R的版本的要求比较高,所以有时候我们不得不更新R的版本。但是呢,更新了R版本后,另外有些包的版本又不兼容,唉,更新R包的版本又很费时,所以一般能不更新就不更新吧。下面介绍一下常见的更新R的方法吧。一、更新R版本(1)在RGui或Rstudio中使用以下代码(推荐RGui) #install......
  • 【模型训练-1】【Windows-PaddleOCR-ocr模型训练(CPU)】数据标注
    模型训练使用ocr的使用对硬件设备有比较高的依赖。网上下的模型没有GPU的加持识别效率不高,完成自有模型的训练在相同硬件设备的基准上能大大提高识别效率,加速脚本执行效率。看一组数据:训练了自己的模型识别耗时1000ms,相同的图片网上随便下的模型4000ms接下来可以根据......
  • Ubuntu14.04QT程序开机自启动(转)
     按语:    linux应用程序设为开机自启动,可修改/etc/rc.local中添加启动代码,但QT应用程序无法自动启动,后参考此文,添加应用(原来做好的desktop文件),成功。1.运行已经编辑好的QT程序,run、debug,生成类似于build-qtplot-Desktop-Debug的文件,当然程序在编译时会显示该debu......
  • windows redis5使用,下载安装
    1.Reids下载Redis对windows支持停留在3版本,在github看到有大佬适配的5版本可用地址:https://github.com/tporadowski/redis/releases访问不了的可在此链接下载:https://download.csdn.net/download/qq_51355375/895851952.Redis使用2.1cmd启动redis-server.exe......