scrcpy是一个安卓手机投屏到电脑的开源组件。手机在开发者选项中打开USB调试开关,使用数据线连接到电脑,运行scrcpy.exe,就可以在电脑上查看手机屏幕,可以使用鼠标、键盘进行操作,并且提供了一系列命令行和快捷键,方便二次开发。我下载的是scrcpy-win32-v1.25,你也可以到github下载其他版本。
嵌入外部窗口并不是一个值得推荐的开发方式,但这个方法还是要掌握,有时候可以作为应急之选。下面是个小练习。
import win.ui;
/*DSG{{*/
var winform = win.form(text="未连接";right=759;bottom=469;bgcolor=12639424)
winform.add(
btnConnect={cls="button";text="连接手机";left=473;top=59;right=614;bottom=101;dr=1;dt=1;z=1};
btnDisconnect={cls="button";text="断开连接";left=472;top=127;right=613;bottom=169;dr=1;dt=1;z=2}
)
/*}}*/
import process.popen
import winex
import winex.key
winform.btnConnect.oncommand = function(id,event){
if pp return ;
pp=process.popen("\scrcpy\scrcpy.exe")
device=pp.expect("Device\:(.+?)\r",5000)
if (!device ){
pp.terminate()
pp=null
hwnd=null
return win.msgbox("连接失败");
}
winform.text=device
hwnd=winex.wait(,,"@SDL_app",,,pp.process.id)
win.modifyStyle(hwnd,0x800000/*_WS_BORDER*/|0x40000/*_WS_THICKFRAME*/)
winex.attach(hwnd,true)
winex.key.combine(hwnd,"ALT","W")
winex.attach(hwnd,false)
_,_,w0,h0=win.getPos(hwnd)
win.setParent(hwnd,winform.hwnd)
adjust(hwnd)
win.show(hwnd)
}
winform.btnDisconnect.oncommand = function(id,event){
if pp pp.terminate();
pp=null
hwnd=null
winform.text="未连接"
}
winform.onClose = function(hwnd,message,wParam,lParam){
if pp pp.terminate()
}
winform.adjust = function( cx,cy,wParam ) {
adjust(hwnd)
};
adjust=function(hwnd){
if !hwnd return ;
var rc=winform.getClientRect()
var height=rc.height()
var h1=height-20
var w1=h1*w0/h0
win.setPos(hwnd,rc.left+50,rc.top+10,w1,h1)
}
winform.show();
win.loopMessage();
return winform;
这里用的是设置父窗口的办法,有时候也可以用悬浮窗口。窗口样式需要改一下,位置和大小需要调一调,感觉不算复杂。
scrcpy有个默认控制台,为了屏蔽它,使用了管道。有时候,嵌套的程序在打开瞬间来不及调整,也可以用管道调用,调整好了再显示。文章来源:https://www.toymoban.com/news/detail-523182.html
第一次使用嵌入窗口,可能理解得不透彻,欢迎指正。文章来源地址https://www.toymoban.com/news/detail-523182.html
到了这里,关于aardio嵌入外部窗口(以scrcpy手机投屏窗口为例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!