PYQT5内嵌外部exe程序(win7)
来源:互联网 发布:java就业培训教程豆瓣 编辑:程序博客网 时间:2024/05/17 21:47
实现思路:
01 首先通过Spy++查看窗口名称,找到需要内嵌exe程序的位置
02 通过新建子线程来运行exe程序,然后获取它的句柄,这样可以通过句柄来获取它的整个窗体
注:句柄是动态分配的
03 准备编码,先用PYQT写一个QMainWindow,开启线程获取句柄,通过句柄建立QWindow,再将它添加到QWidget中
import sysimport subprocessimport timeimport win32guifrom PyQt5.QtCore import QProcessfrom PyQt5.QtGui import QWindowfrom PyQt5.QtWidgets import QMainWindowfrom PyQt5.QtWidgets import QMdiAreafrom PyQt5.QtWidgets import QWidget, QApplication, QVBoxLayoutclass Example(QMainWindow): def __init__(self): super().__init__() self.p = QProcess() self.layout = QVBoxLayout() self.mdi = QMdiArea() self.widget = QWidget() self.initUI() def initUI(self): import threading t = threading.Thread(target=self.runExe) t.start() hwnd1 = win32gui.FindWindowEx(0, 0, "CalcFrame", "计算器") start = time.time() while hwnd1 == 0: time.sleep(0.01) hwnd1 = win32gui.FindWindowEx(0, 0, "CalcFrame", "计算器") end = time.time() if end - start > 5: return window = QWindow.fromWinId(hwnd1) self.createWindowContainer(window, self) self.setGeometry(500, 500, 450, 400) self.show() @staticmethod def runExe(): exePath = "C:\\Windows\\system32\\calc.exe" subprocess.Popen(exePath)if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
阅读全文
0 0
- PYQT5内嵌外部exe程序(win7)
- C#窗体内嵌外部程序(cmd.exe)的显示
- 打包python程序(win7(64) +python3.5 + pyqt5 + multiprocess)
- C/C++执行外部程序(调用外部exe程序)
- C/C++执行外部程序(调用外部exe程序)
- C++执行外部程序(调用外部exe程序)
- C/C++执行外部程序(调用外部exe程序)
- c++ 启动exe(外部程序)
- c++ 启动exe(外部程序)
- c++ 启动exe(外部程序)
- c++ 启动exe(外部程序)
- 内嵌第三方EXE程序窗口
- 调用cmd.exe程序和外部程序(转)
- c#调用外部exe程序
- c#调用外部exe程序
- c++打开外部exe程序
- C#如何调用外部exe程序 (转)
- 收集的C/C++执行外部程序(调用外部exe程序)文章
- SoapUI Pro 5.1.2破解方法
- maven环境变量配置
- POJ 3207 Ikki's Story IV
- 简单解读安卓开发中shape的具体用法
- Android-androidstudio懒惰开发-必备插件
- PYQT5内嵌外部exe程序(win7)
- preception_m
- 快速入门新的编程语言方法
- 实现RTSP摄像机进行网页直播和微信直播的技术方案
- C# 文件重定向
- MySQL常见存储引擎对比
- mysql判断时间
- 风动蓝牙代码简述
- linux内核里的数据结构之双向链表