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. 18.3 NPCAP自定义数据包过滤

    NPCAP 库是一种用于在Windows平台上进行网络数据包捕获和分析的库.它是WinPcap库的一个分支,由Nmap开发团队开发,并在Nmap软件中使用.与WinPcap一样,NPCAP库提供了一些 ...

  2. 【链表】链表的合并【经典面试OJ详解】【力扣21,力扣23】超详细的算法教程

    链表的合并 导航小助手 说在前面 题目链接 链表结构 OJ21.合并两个有序链表 题目描述和算法分析 接口的完整实现代码 OJ23.合并K个升序链表 题目描述和算法分析 接口的完整实现代码 尾声 说在 ...

  3. 【二叉树】二叉树的深度优先遍历DFS(前中后序遍历)和广度优先遍历BFS(层序遍历)详解【力扣144,94,145,102】【超详细的保姆级别教学】

    [二叉树]二叉树的深度优先遍历(前中后序遍历)和广度优先遍历(层序遍历)详解[超详细的保姆级别教学] 先赞后看好习惯 打字不容易,这都是很用心做的,希望得到支持你 大家的点赞和支持对于我来说是一种非常 ...

  4. Vue +Spring Boot 前后端分离 的 项目 笔记

    Vue +Spring Boot 前后端分离 的 项目 笔记 前端部分 Vue 脚手架的搭建 1.在创建目录的上一目录执行命令 命令为 vue init webpack 项目名 再创建项目的时候会自动 ...

  5. 24.3 向量化异常VEH--《Windows核心编程》

    Windows 提供了向量化异常处理(vectored excepation handing,VEH)机制.程序可以注册一个函数,每当异常发送或者一个未处理异常脱离标准SEH的控制时,这个函数就会被调 ...

  6. Nginx+uwsgi+ssl配置https

    Nginx+uwsgi+ssl配置https 使用原始django,太过于笨重和杂多nginx是一个轻量级的web服务器,在处理静态资源和高并发有优势uwsgi是一个基于python的高效率的协议,处 ...

  7. Linux dmesg命令使用方法详解

    一.命令简介  dmesg(display message)命令用于显示开机信息.kernel 会将开机信息存储在 ring buffer 中.您若是开机时来不及查看信息,可利用 dmesg 来查看. ...

  8. Js实用小技巧

    Js实用小技巧 这是一份Js实用小技巧,也可以是一份Js挨打小技巧,下面的一系列操作虽然能够在一定程度上使代码更加简洁,但是在缺少注释的情况下会降低可读性,所以需要谨慎使用这些黑魔法. 位元算 取整 ...

  9. 斐讯K3C改散热

    斐讯K3C改散热 斐讯K3C日常使用还是不错的,就是日常的温度还是比较高的,不过冬天用来当暖手宝还是不错的. 这个改散热的方法是跟贴吧老哥学的,不得不说贴吧老哥还是牛皮,原贴在这,我当时拍的照片不够, ...

  10. heapq模块通过nlargest()和nsmallest()找到最大或最小的N个元素

    问题 我们想在某个集合中找出最大或最小的N个元素 解决方案 heapq模块中有两个函数nlargest()和nsmallest() import heapq nums = [1,8,2,23,7,-4 ...