首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    duilib创建自定义控件

    DoEvent函数:控件的核心函数,他是消息处理函数,用来处理Duilib封装过的各个消息,比如鼠标的移入移出、出现的悬停、单击双击、右击、滚轮滑动、获取焦点、设置光标等等。...SetInternelVisible、SetPos:这几个函数同样也是,当控件封装了Win32子窗口后,重写这几个函数来控制子窗口的显示和隐藏、和位置。       这样就创建完成了自定义控件。...封装Win32控件或者Win32子窗口:       如果要给Duilib,增加一个视频播放控件,一般来说视频播放库都需要依赖一个子窗口。...封装的子窗口有三种:第一种比较简单、单纯封装一个子窗口、让视频库一类的库依赖;第二种麻烦一些、封装子窗口、并且处理子窗口的消息;第三种和第二种类似、封装Win32的控件并且处理他的消息。...这样就封装好了win32子窗口,然后可以把这个窗体句柄用于视频播放等。 封装子窗口并处理他的消息:       这时就比较麻烦了,参见Duilib的CEditUI控件等。

    3.1K50

    如何通过WPF编译H265视频流媒体播放器EasyPlayerPro上改变控件的位置?

    对于EasyPlayerPro的播放我们也尝试了通过WPF执行,下面分享下我们WPF播放EasyPlayerPro控件改变位置的方式。...创建一个WPF程序,在使用EasyPlayPro中dll文件,传入一个窗口句柄,这样运行起来的画面如下图显示;但是有个问题:就是在WPF加入任何的控件都会隐藏在画面下面。...完全设置不了顺序,导致画面窗口永远的置顶。...image.png WPF的原生控件并不具备自身的句柄,即使使用偏门的方式获取控件所在的窗口句柄,也并不代表该控件本身的资源属性,这个主要是由WPF自身的机制所决定得。...当我们直接使用WPF的控件句柄为OSG等第三方控件的绘制视图区域时,我们就会发现视图区域占用整个窗体,无法在上面添加任何控件(不是控件没添加上)。

    1.4K20

    EasyCVR新版本如何通过接口获取AI智能分析网关推送的告警照片?

    基于EasyCVR和智能分析网关的AI智能识别与分析能力,通过部署多种AI算法,可提供人脸、人体、车辆、物体、行为等检测识别能力,并能实现抓拍、比对、告警、分发等视频能力服务,能广泛应用在智能安监、通用安防...图片今天我们来分享一下:在EasyCVR新版本中,如何通过接口获取智能分析网关推送上来的告警照片呢?...操作方法如下:1)首先,调用登录接口,如图:图片2)然后,再调用获取告警快照的接口,如图:图片3)注意,如果用户需要更多的快照照片,则可以将limit=10改为100,调用后返回的参数可以获取到快照的对应地址以及告警类型...用户也能根据自己的业务需求,将接口集成到自己的平台中。

    47810

    QT4C-Windows自动化测试框架正式开源

    控件类型 技术实现 技术原理 Windows Native控件 基于pywin32库 通过调用Windows API来对应用进行操作 UIA控件 基于UIAutomation技术 通过UIAutomationCore.dll...在QT4C中,通过使用win32com模块和comtypes模块实现IAccessible接口的包裹类,对用户提供封装好的AccessibleObject对象进行使用,用户可以通过控件的AccessibleObject...QT4C对每一种控件类型都内置了Proxy Object,用于获取应用程序的属性或者进行操作,Proxy Object底层基于注入测试桩或调用被测程序提供的API来封装获取属性或操作的接口。 ?...01 使用Inspect获取控件属性 Inspect是一种Win32应用控件抓取工具,你可以使用微软提供的Inspect.exe来获取控件,关于微软的Inspect.exe的使用,可参考官方文档。...这里使用Inspect获取计算器主界面的控件,下面是Inspect的截图。 ?   借助Inspect工具,就可以获取大部分Win32应用中控件的属性来使用QPath来对其进行封装。

    3.2K32

    达观金克:RPA界面元素智能自适应定位与操控技术

    优点:对标准Windows控件支持良好缺点:过于底层,调用复杂。例如:Win32 API查询窗体需要逐层获取窗体句柄进行遍历查找技术落后,用途不广。...例如WPF和Silverlight中的子窗口和控件并不是传统的HWND,所以Win32 API和MSAA无能为力,而UIA可以直接支持这两种程序。兼容传统的Win32和MSAA模式。...对于一个UI窗口,里面可能有几十个子控件或者子窗口。在编写测试代码的时候, 如果对这些子元素的获取,操作不能简化, 势必导致代码冗繁,难以维护。...Client需要事先加载WindowsAccessBridge.dll获取Server提供的接口,通过FindWindow获取窗口句柄,用IsJavaWindow来判断筛选出Java程序的窗口。...使用者想要实现点击目标元素,只需要按照统一的规则调用Invoke方法即可,不需要关心该方法底层是如何实现的。定位目标元素还存在一个很常见的问题,目标元素的属性和在UI中的位置偶尔会发生变化。

    1.3K10

    聊聊 PC 端自动化最佳方案 - Pywinauto

    元素控件 和 WinAppDriver 类似,在编写自动化脚本之前,我们需要先获取元素控件的各类属性值 获取元素控件有 2 种方式: 窗口内置方法 检查工具 其中 窗口对象内置的 2 个方法都可以打印出当前页面的元素控件树...# 窗口对象中内置方法,打印窗体内所有元素控件 # 方式一: 窗体对象.print_control_identifiers() # 方式二 窗体对象.dump_tree() 常用的检查工具也包含...3 种方式,可以按需使用 4-2 获取窗体对象 通过检查工具获取窗体的属性列表,然后使用应用对象 + 窗体属性获取微信首页的窗体对象 实现代码如下: from pywinauto.win32functions...import SetFocus # 获取窗口对象 # 通过title及ClassName获取窗体对象 self.weixin_pc_window = self.app.window(title=u"...微信", class_name="WeChatMainWndForPC") self.weixin_pc_window.set_focus() 4-3 切换到聊天列表 获取左侧聊天切换按钮,获取其坐标位置

    2.6K51

    基于Python+uiautomation的windowsGUI自动化测试概述

    Python接口。...定位窗口、显示和关闭窗口、获取窗口位置等)pyautoguihttps://pyautogui.readthedocs.io/en/latest/屏幕控制(截屏等)、鼠标控制(移动鼠标、单击、双击、右击...,如果有中文则需用Unicode;可用window.Exists(maxSearchSeconds)来判断此窗口是否存在;2、EditControl(searchFromControl) # 查找编辑位置...,如果不指定,枚举整个树-f 从焦点控件枚举,如果不指定,从当前窗口枚举-c 从光标下的控件枚举,如果不指定,从当前窗口枚举-a 获取光标下控件及其所有父控件-n 显示控件的完整Name, 如果不指定,...只显示前30个字符-m 显示控件更多属性,默认只显示控件的四个属性示例:automation.pyc –t3, 3秒后枚举当前窗口所有控件automation.pyc –d2 –t3, 3秒后枚举当前窗口前三层控件

    3.8K30

    浅谈window桌面GUI技术及图像渲染性能测试实践

    Win32程序 使用 Win32 API 来创建的程序成为Win32程序。 提供 Win32 API的dll被加载到应用程序的进程中,应用程序通过这些API来创建线程、窗口和控件。...Win32程序中,所有窗口和控件都是一个窗口类的实例,都拥有一个窗口句柄,窗口对象属于内核对象,由Windows子系统来维护。...WPF程序 WPF的控件不再是通过Win32 API来创建窗口,使用Win32 API并不能查找和操作WPF控件 WPF所有控件和动画都是使用DirectX 绘制 WPF控件不直接支持MSAA,而是通过...UIA定义了全新的、针对UI自动化的接口和模式。测试程序可以通过这些接口来查找和操作控件。...比如Win32和WinForm程序,UIA Runtime通过MSAA来实现UIA定义的接口。UIA定义了全新的、针对UI自动化的接口和模式。测试程序可以通过这些接口来查找和操作控件。

    4K30

    WPF 同一窗口内的多线程多进程 UI(使用 SetParent 嵌入另一个窗口)

    后者使用的是 Win32 的方式,实际效果非常类似 WindowsFormsHost,新线程中的 UI 在原来的所有 WPF 控件上面遮挡。另外,后者不止可以是跨线程,还可以跨进程。...在传统的 Win32 应用程序中,每一个控件都有自己的窗口句柄,它们之间通过 SetParent 进行连接;可以说一个 Button 就是一个窗口。...而我们现在使用 SetParent 其实就是在使用传统 Win32 程序中的控件的机制。 MoveWindow 用于指定窗口相对于其父级的位置,我们使用这个函数来决定新嵌入的窗口在原来界面中的位置。...private void OnSourceInitialized(object sender, EventArgs e) { // 在这里可以获取到窗口句柄。...OnLoaded; } private async void OnLoaded(object sender, RoutedEventArgs e) { // 获取父窗口的窗口句柄

    4.4K10

    如何通过API接口获取EasyDSS单条多条直播流信息?

    TSINGSEE青犀视频开发的视频平台都提供了众多的二次开发接口,用户可以根据自己需求调用,调用参考对应平台的接口文档即可。...鉴于很多用户的需求,我们本文跟大家介绍下如何通过调用接口获取EasyDSS的直播流信息。 1、调用系统登录接口,如下: ?...2、获取直播流信息的接口定义如下:/live/get,需要传入的ID值为直播流ID号: ? ? 我们将参数带入POSTMAN中看下效果: ?...测试发现系统也支持同时获取多条直播流信息,ID传值时用”,”分开即可,如下图: ?...EasyDSS直播点播平台对外提供测试版本,如果大家有需要可以联系我们获取测试账号进行试用,测试期间也可以自由调用二次开发接口,欢迎大家了解。

    1.1K30

    WPF 自定义文本框输入法 IME 跟随光标

    所用的 win32 的 API 重点是如下几个 ImmGetContext 获取输入法上下文,用于后续所有的其他函数调用 ImmAssociateContext 关联输入法和对应的窗口,让输入法了解在哪个窗口输入...UIElement 和 IIMETextEditor 接口,用了泛形 在文本框控件 Editor 获取焦点的时候,将需要唤起输入法进行输入。...需要重新绑定输入法,告诉输入法当前的窗口获取输入焦点,可以使用如下代码,通过修改附加属性的值,通过附加属性变更调用到 WPF 框架的逻辑,从而修复此问题 if (_defaultImeWnd...在进行设置之前,需要获取到文本框的输入光标相对于窗口的坐标,用于给输入法使用 下面代码从文本框获取文本框实现接口的获取光标和输入框左上角 var textEditorLeftTop...接下来是对接 IMESupporter 和具体的文本框 先在自定义的文本框 TextEditor 控件上继承 IIMETextEditor 接口。

    1.8K21

    PC端自动化测试(一)

    PC端自动化测试(一) pywinauto:同时支持控件操作和图像操作,支持Win32 API和MS UI Automation API A set of Python modules to automate...应用程序的可访问技术 支持控件的访问技术 Win32 API(backend=“win32”) 默认的backend MFC,VB6,VCL简单的WinForms控件和大多数旧的应用程序 MS UI Automation...打开任意一个应用程序app = Application(backend='uia').start("exe路径") 连接已经打开的应用程序 通过进程号 通过窗口句柄 app = Application(...选择指定的窗口 # 方式一:app[类名/标题] :推荐使用该方式 # 1.通过窗口类型来选择dlg = app["TNavicatMainForm"] # 2.通过窗口标题来选择dlg = app["...() # 获取当前窗口的坐标位置rect = dlg.rectangle()print(rect)# (L548,T194,R1768,B1043) # 关闭窗口dlg.close() 选择控件 控件:

    4K61
    领券