aardio 嵌入 其他应用程序

需求

这个chrome壳不能进行拖拽和缩放,所以再套一个壳,可以再分屏的时候用

import win.ui;
/*DSG{{*/
winform = win.form(text="数字化加工 - 一定先关闭内部的chrome,再关闭本程序";right=959;bottom=591)
winform.add(
custom={cls="custom";text="自定义控件";left=767;top=13;right=1373;bottom=467;z=2};
static={cls="static";left=0;top=0;right=959;bottom=591;db=1;dl=1;dr=1;dt=1;z=1}
)
/*}}*/ import winex;
import process; var exeUrl = "C:\Program Files\dpsys\数字化加工系统win64.exe"
pid = process.execute(exeUrl)
//win.delay(5000)
chwnd = winex.waitVisible(,,,,,pid)
//win.delay(5000)
// 让外部窗口成为自身的悬浮窗口,吸附并可显示在外面
//winform.custom.orphanWindow(,chwnd) //process.executeWaitInput(exeUrl);//运行记事本
//var prcs = process(exeUrl); //win.delay(5000) //var hwnd1 = winex.find("SunAwtToolkit",,prcs.id); //var hwndNotepad,hNotepadEdit = winex.wait(,,"SunAwtToolkit","<RichEditD2DPT>|<Edit>");//查找句柄
//SunAwtFrame
//SunAwtToolkit //悬浮影子窗口:外部进程窗口附加到 winform.static 并如影随形的自适应缩放调整位置
winex.orphanWindow(winform.static,chwnd) //退出程序前让记事本退出
winform.onClose = function(hwnd,message,wParam,lParam){
if(!winex.closeAndWait(chwnd)) return 1;
} /*
prcs=process(exeUrl);
for hwnd,title,tid,pid in winex.each( ) {
if(pid == prcs.id){
io.open()
io.print("窗口句柄",string.format("%x",hwnd),"窗口类",win.getClass(hwnd),"进程ID",prcs.id,'\r\n')
}
}
*/ //窗口句柄 3023e4 窗口类 SunAwtToolkit 进程ID 32356 //process.executeWaitInput(exeUrl);//运行记事本 // //var hwndNotepad,hNotepadEdit = winex.wait(,,"Chrome_RenderWidgetHostHWND", "SunAwtToolkit");//查找句柄
//var hwndNotepad,hNotepadEdit = winex.wait(,,"SunAwtToolkit");//查找句柄 //悬浮影子窗口:外部进程窗口附加到 winform.static 并如影随形的自适应缩放调整位置
//winex.orphanWindow(mainForm.static,hwndNotepad) winform.show();
return win.loopMessage();

更新了一版 ini 配置exe地址的

import win.ui;
/*DSG{{*/
winform = win.form(text="数字化加工 - 一定先关闭内部的chrome,再关闭本程序";right=959;bottom=591)
winform.add(
custom={cls="custom";text="自定义控件";left=767;top=13;right=1373;bottom=467;z=2};
static={cls="static";left=0;top=0;right=959;bottom=591;db=1;dl=1;dr=1;dt=1;z=1}
)
/*}}*/ import winex;
import process;
import fsys.ini
ini=fsys.ini("\config.ini") // 编码格式要GBK ansi, utf8会有乱码
sec = ini.getSection("appSection")
//sec.app
//io.open()
//io.print(sec.app) //import inet.url;
//sec.app = "C:\Program Files\dpsys\数字化加工系统win64.exe"
//sec.save()
//var exeUrl = string.fromto(sec.app, 936, 65001) // "C:\Program Files\dpsys\数字化加工系统win64.exe"
var exeUrl = sec.app
pid = process.execute(exeUrl)
io.print(exeUrl)
//win.delay(5000)
chwnd = winex.waitVisible(,,,,,pid)
//win.delay(5000)
// 让外部窗口成为自身的悬浮窗口,吸附并可显示在外面
//winform.custom.orphanWindow(,chwnd) //process.executeWaitInput(exeUrl);//运行记事本
//var prcs = process(exeUrl); //win.delay(5000) //var hwnd1 = winex.find("SunAwtToolkit",,prcs.id); //var hwndNotepad,hNotepadEdit = winex.wait(,,"SunAwtToolkit","<RichEditD2DPT>|<Edit>");//查找句柄
//SunAwtFrame
//SunAwtToolkit //悬浮影子窗口:外部进程窗口附加到 winform.static 并如影随形的自适应缩放调整位置
winex.orphanWindow(winform.static,chwnd) //退出程序前让记事本退出
winform.onClose = function(hwnd,message,wParam,lParam){
if(!winex.closeAndWait(chwnd)) return 1;
} /*
prcs=process(exeUrl);
for hwnd,title,tid,pid in winex.each( ) {
if(pid == prcs.id){
io.open()
io.print("窗口句柄",string.format("%x",hwnd),"窗口类",win.getClass(hwnd),"进程ID",prcs.id,'\r\n')
}
}
*/ //窗口句柄 3023e4 窗口类 SunAwtToolkit 进程ID 32356 //process.executeWaitInput(exeUrl);//运行记事本 // //var hwndNotepad,hNotepadEdit = winex.wait(,,"Chrome_RenderWidgetHostHWND", "SunAwtToolkit");//查找句柄
//var hwndNotepad,hNotepadEdit = winex.wait(,,"SunAwtToolkit");//查找句柄 //悬浮影子窗口:外部进程窗口附加到 winform.static 并如影随形的自适应缩放调整位置
//winex.orphanWindow(mainForm.static,hwndNotepad) winform.show();
return win.loopMessage();

关闭直接杀掉进程,因为内层 还弹框问是否关闭

import win.ui;
/*DSG{{*/
winform = win.form(text="数字化加工 - 要配置好 app 和 fileName 打开和关闭按钮才能用";right=959;bottom=591)
winform.add(
custom={cls="custom";text="自定义控件";left=767;top=13;right=1373;bottom=467;z=2};
static={cls="static";left=0;top=0;right=959;bottom=591;db=1;dl=1;dr=1;dt=1;z=1}
)
/*}}*/ import winex;
import process;
import fsys.ini
ini=fsys.ini("\config.ini") // 编码格式要GBK ansi, utf8会有乱码
sec = ini.getSection("appSection")
//sec.app
//io.open()
//io.print(sec.app) //import inet.url;
//sec.app = "C:\Program Files\dpsys\数字化加工系统win64.exe"
//sec.save()
//var exeUrl = string.fromto(sec.app, 936, 65001) // "C:\Program Files\dpsys\数字化加工系统win64.exe"
var exeUrl = sec.app
var fileName = sec.fileName
pid = process.execute(exeUrl)
io.print(exeUrl)
//win.delay(5000)
chwnd = winex.waitVisible(,,,,,pid)
//win.delay(5000)
// 让外部窗口成为自身的悬浮窗口,吸附并可显示在外面
//winform.custom.orphanWindow(,chwnd) //process.executeWaitInput(exeUrl);//运行记事本
//var prcs = process(exeUrl); //win.delay(5000) //var hwnd1 = winex.find("SunAwtToolkit",,prcs.id); //var hwndNotepad,hNotepadEdit = winex.wait(,,"SunAwtToolkit","<RichEditD2DPT>|<Edit>");//查找句柄
//SunAwtFrame
//SunAwtToolkit //悬浮影子窗口:外部进程窗口附加到 winform.static 并如影随形的自适应缩放调整位置
winex.orphanWindow(winform.static,chwnd) //退出程序前让记事本退出
winform.onClose = function(hwnd,message,wParam,lParam){
process.kill(fileName)
//var t = !winex.closeAndWait(chwnd)
//io.open()
//io.print(t)
//if(t) return 1;
} /*
prcs=process(exeUrl);
for hwnd,title,tid,pid in winex.each( ) {
if(pid == prcs.id){
io.open()
io.print("窗口句柄",string.format("%x",hwnd),"窗口类",win.getClass(hwnd),"进程ID",prcs.id,'\r\n')
}
}
*/ //窗口句柄 3023e4 窗口类 SunAwtToolkit 进程ID 32356 //process.executeWaitInput(exeUrl);//运行记事本 // //var hwndNotepad,hNotepadEdit = winex.wait(,,"Chrome_RenderWidgetHostHWND", "SunAwtToolkit");//查找句柄
//var hwndNotepad,hNotepadEdit = winex.wait(,,"SunAwtToolkit");//查找句柄 //悬浮影子窗口:外部进程窗口附加到 winform.static 并如影随形的自适应缩放调整位置
//winex.orphanWindow(mainForm.static,hwndNotepad) winform.show();
return win.loopMessage();

aardio 嵌入 其他应用程序的更多相关文章

  1. Qt界面中嵌入其他exe程序的界面,使用Qt5

    下面用一个小例子来演示如何在Qt的界面中嵌入其他exe程序的界面,最终效果如下图所示.本文参考了 http://blog.csdn.net/jiaoyaziyang/article/details/4 ...

  2. WPF中嵌入普通Win32程序的方法

    公司现在在研发基于.Net中WPF技术的产品,由于要兼容旧有产品,比如一些旧有的Win32程序.第三方的Win32程序等等,还要实现自动登录这些外部Win32程序,因此必须能够将这些程序整合到我们的系 ...

  3. 在winform嵌入外部应用程序

    应朋友要求,需要将一个第三方应用程序嵌入到本程序WinForm窗口,以前在VB6时代做过类似的功能,其原理就是利用Windows API中FindWindow函数找到第三方应用程序句柄,再利用SetP ...

  4. 把任意的EXE嵌入到自己程序中

    把任意的EXE嵌入到自己程序中 taoyuan19822008-08-24上传   Delphi把任意的EXE嵌入到自己程序中的程序 资源积分:0分 下载次数:327 资源类型:其他 资源大小:175 ...

  5. Delphi SetParent 嵌入其他应用程序

    [代码]Delphi实现窗体内嵌其他应用程序窗体 实现原理是启动一个应用程序,通过ProcessID得到窗体句柄,然后对其设定父窗体句柄为本程序某控件句柄(本例是窗体内一个Panel的句柄),这样就达 ...

  6. 在winform上内嵌入其它的程序

    这段代码很有意义,用于把一个程序的界面嵌入到我们自己程序的某个指定窗体上. 比如在某个项目里,我需要把基恩士的激光扫描轮廓显示给客户看,但是激光的DLL中并没有这种功能提供. 于是我想先启动激光的官方 ...

  7. 嵌入在C++程序中的extern "C"

    1.extern的作用 extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,可以告知编译器,用extern声明的函数和变量可以在本模块或其它模块中使用. 通常,在模块的头文件中 ...

  8. [转]嵌入字体到程序 Winform C#

    http://www.cnblogs.com/top5/archive/2011/06/20/2084942.html 程序安装字体或直接调用非注册字体[c#] .安装字体 //程序直接将字体文件安装 ...

  9. C# SetParent将其他程序嵌入自己的程序

    模块化的开发,将模块合并到一起的时候,遇到了Mdi不能添加到其它窗口下的问题. 分两种情况: 将mdi窗口A设成普通窗口B的子控件,需要将A的TopLevel设置成false,但是Mdi窗口的TopL ...

  10. Winform嵌入其它应用程序

    Options: using CommandLine; using System; using System.Collections.Generic; using System.Linq; using ...

随机推荐

  1. SpringCloud-Config配置中心搭建保姆级教程

    一.分布式配置中⼼ 在使⽤微服务架构开发的项⽬中,每个服务都有⾃⼰的配置⽂件(application.yml),如果将每个服务的配置⽂件直接写在对应的服务中,存在以下问题: 1. 服务开发完成之后,需 ...

  2. centos7.9离线安装MongoDB4.4.17

    前言 MongoDB 5.0开始要求CPU支持avx指令集,参考https://mp.weixin.qq.com/s/6FFXih1DEZYDFOk1hCu69w 环境 CentOS 7.9.2009 ...

  3. Intel 4工艺太难了!酷睿Ultra终于突破5GHz

    无论是14nm还是10nm,Intel这些年的新工艺都有一个通性:刚诞生的时候性能平平,高频率都上不去,只能用于笔记本移动端(分别对应5代酷睿.10代酷睿),后期才不断成熟,比如到了13代酷睿就达到史 ...

  4. 2022年“腾讯杯”大学生程序设计竞赛 死去的 Elo 突然开始攻击我 题解

    题目链接:死去的 Elo 突然开始攻击我 容易知道,如果暴力对某个区间而言进行查询,我们可以考虑使用并查集,开一个桶,每次添加一个数 \(val\),那么如果已经存在了 \(val-1\) 或者 \( ...

  5. Delphi批量替换工具Cnpack

    操,delphi官方 没有 批量替换工具,需要用到cnpack才可以,

  6. .NET Core开发实战(第14课:自定义配置数据源:低成本实现定制化配置方案)--学习笔记

    14 | 自定义配置数据源:低成本实现定制化配置方案 这一节讲解如何定义自己的数据源,来扩展配置框架 扩展步骤 1.实现 IConfigurationSource 2.实现 IConfiguratio ...

  7. 【译】发布 .NET Aspire 预览版 2(一)

    原文 | Damian Edwards 翻译 | 郑子铭 自上个月宣布并推出 .NET Aspire 以来,我们收到的反馈非常惊人!通过问题和拉取请求对回购协议的参与一直激励着团队.我们正在深入了解开 ...

  8. 了解一下基本的tcp代理配置

    我们首先用一个简单例子了解一下基本的tcp代理配置 worker_processes 1; #nginx worker 数量 error_log logs/error.log; #指定错误日志文件路径 ...

  9. 二进制安装Kubernetes(k8s) v1.27.3 IPv4/IPv6双栈 可脱离互联网

    二进制安装Kubernetes(k8s) v1.27.3 IPv4/IPv6双栈 可脱离互联网 https://github.com/cby-chen/Kubernetes 开源不易,帮忙点个star ...

  10. NC16670 [NOIP2006]能量项链

    题目链接 题目 题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗 ...