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. PaddleNLP--UIE(二)--小样本快速提升性能(含doccona标注)

    相关文章: 1.快递单中抽取关键信息[一]----基于BiGRU+CR+预训练的词向量优化 2.快递单信息抽取[二]基于ERNIE1.0至ErnieGram + CRF预训练模型 3.快递单信息抽取[ ...

  2. P7167 [eJOI2020 Day1] Fountain 题解

    题目链接:Fountain 很不错的基础算法组合题:单调栈+倍增 首先考虑到一个事实,就是下面第一个比当前半径大的位置会成为移动的第一次落脚点,抽象下就是下面出现的第一次比自身大的半径,这个问题显然可 ...

  3. Java21 + SpringBoot3集成七牛云对象存储OSS,实现文件上传

    目录 前言 实现步骤 引入maven依赖 修改配置文件 创建七牛云配置类 创建文件操作服务类 创建文件操作控制器 前端实现 运行效果 总结 前言 近日心血来潮想做一个开源项目,目标是做一款可以适配多端 ...

  4. Flutter聊天室|dart+flutter仿微信App界面|flutter聊天实例

    一.项目概述 flutter-chatroom是采用基于flutter+dart+chewie+image_picker+photo_view等技术跨端开发仿微信app界面聊天室项目.实现了消息发送/ ...

  5. vue 导出多页pdf, window.print()实现

    如果你对分页打印没思路,而网上的现成方案又不适合,不妨进来看看,也许会对你有帮助. 由于工作环境是局域网,对于插件的安装有限制,所以排除了jspdf + html2canvas的实现方式:采用wind ...

  6. [Spring 6.0源码解析] @Configuration注解源码解析

    Spring 6.0源码解析之@Configuration 首先写一个启动代码: public class ConfigurationAnnotationTest { private static f ...

  7. K8S部署之VMWare网络拓扑踩坑

    目录 背景 VMWare 虚拟网络 安装 Ubuntu Server 20.04 时遇到的网络问题 解决方法和解释 总结 背景 知乎上最近发现一篇好文 图解K8S(01):基于Ubuntu 20.04 ...

  8. ABC 309

    直接从 F 开. F 三维偏序. 把盒子按 \(h_i\) 排序,离散化,正常跑三维偏序(注意不能相等). 还要处理 \(h_i\) 相等的情况,可以再把 \(h_i\) 从大到小排序,然后 \(w_ ...

  9. NC204418 新集合

    题目链接 题目 题目描述 集合 \(s\) 中有整数 \(1\) 到 \(n\) ,牛牛想从中挑几个整数组成一个新的集合. 现在牛妹给牛牛加了 \(m\) 个限制 ,每个限制包含两个整数 \(u\) ...

  10. MySQL Unknown error 1267

    1.问题说明 最近在mysql中运行一段SQL直接报错: 有一点要说一下,这个navicat给出的报错太简短只有错误码,还得自己去查有点垃圾,不知道新版如何? 2.问题原因 这里可以看到问题出在t2. ...