QT调用VNC并放到一个窗口中

1.VNC资源下载

本例中的这个VNC可以从以下连接中下载,也可以从官网上下载,应该都是类似的。

https://download.csdn.net/download/xiaoding_ding/89549092

下载完成后放到项目的release文件夹中

2.程序中引用

2.1在主界面中放置一个按钮,命名为vnc_connect

2.2 通过按钮转到槽,修改mainwindow.cpp

里面的内容如下: 

    QProcess program(this);
    QString cmd ="VNC-Viewer-7.6.1-Windows-64bit.exe";
    program.startDetached(cmd);

    Sleep(200);
    QString classname = "os::Window::Dialog";//窗口的类名
    QString windowname = "RealVNC Viewer";//窗口标题名
    WId winId = (WId)FindWindow((LPCWSTR)classname.unicode(),(LPCWSTR)windowname.unicode());
    qDebug()<<winId;
    QWindow *window = QWindow::fromWinId(winId);

    QWidget *widget = QWidget::createWindowContainer(window);
    widget->show();

 2.3增加头文件

增加图示中的四个

3.运行效果

点击按钮就是这种效果

 4.问题说明

将这个窗口关闭后,再次点击“打开VNC”按钮后,会显示空白

这是因为程序中的process是独立执行的。关闭这个窗口,VNC进程还在。

在任务管理中杀死这个进程后,就可以重新调用了。

5.窗口句柄的获得

5.1打开visual studio,点击搜索,搜索功能spy

5.2打开vnc和spy,从搜索中拖动那个2中的标靶到VNC标题栏中。

 5.3在程序中进行对应

 6.总结

中间总是有各种各样的问题,本例提供了一种探索。中间有问题还是可以多搜索一下相关文章。

相关推荐

  1. Qt多线程调用python接收调用数据

    2024-07-20 18:00:05       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 18:00:05       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 18:00:05       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 18:00:05       45 阅读
  4. Python语言-面向对象

    2024-07-20 18:00:05       55 阅读

热门阅读

  1. 冒泡排序代码

    2024-07-20 18:00:05       18 阅读
  2. qt log 输出为文件,每分钟换一个log文件

    2024-07-20 18:00:05       15 阅读
  3. Docker 运维常用命令及问题案例

    2024-07-20 18:00:05       15 阅读
  4. 从零开始!Jupyter Notebook的安装教程

    2024-07-20 18:00:05       18 阅读
  5. HttpHeaders类详解,这一篇就够了

    2024-07-20 18:00:05       18 阅读
  6. WPF中UI元素继承关系

    2024-07-20 18:00:05       21 阅读
  7. Linux复习01

    2024-07-20 18:00:05       16 阅读
  8. 算法刷题笔记 八数码(C++实现)

    2024-07-20 18:00:05       20 阅读
  9. Apollo开发指南

    2024-07-20 18:00:05       18 阅读
  10. Day05 Redis 面试题 下

    2024-07-20 18:00:05       18 阅读
  11. 【鸿蒙学习笔记】UI・页面路由 (@ohos.router)

    2024-07-20 18:00:05       19 阅读