前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >增加MATLAB获取其他程序窗体位置功能

增加MATLAB获取其他程序窗体位置功能

作者头像
万木逢春
发布2019-04-30 18:09:49
1K0
发布2019-04-30 18:09:49
举报
文章被收录于专栏:帮你学MatLab帮你学MatLab

借助Java或者Python实现获取其他程序窗体位置

Java实现

代码语言:javascript
复制
function Rect = getWindowRect(class,name)
%导入jar包
import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinDef;
%获取窗体句柄
hwnd = User32.INSTANCE.FindWindow(class,name);
%新建一个矩形对象
rect = javaObject('com.sun.jna.platform.win32.WinDef$RECT');
%获取位置
User32.INSTANCE.GetWindowRect(hwnd, rect);
%整合输出

width = rect.right - rect.left;
height = rect.bottom - rect.top;
Rect=[rect.left rect.top width height];
end

Python实现

代码语言:javascript
复制
function Rect = getWindowRect(class,name)
%获取窗体句柄
hwnd = py.win32gui.FindWindow(class, name);
%获取位置
rect = py.win32gui.GetWindowRect(hwnd);
%转换为MATLAB元胞数组
cell_rect = cell(rect);
%整合输出
width = cell_rect{3} - cell_rect{1};
height = cell_rect{4} - cell_rect{2};
Rect=[cell_rect{1} cell_rect{2} width height];
end

对比

一样的调用win32程序,都需要窗体的类名、窗体名称作为参数。Java接口用的传值方式、需要创建一个矩形对象传入函数,执行后矩形对象里面就是返回值;Python接口就是正常的返回,只是返回值格式不一样,针对不一样的返回将数值组成MATLAB数组返回

在发现Java或者Python有成熟的功能时,只需要参考以上语句在m文件中创建对象、使用对应方法、取得返回值即可

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帮你学MatLab 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档