CN114896647A - 一种注入式操作建模软件自动建模的方法和系统 - Google Patents

一种注入式操作建模软件自动建模的方法和系统 Download PDF

Info

Publication number
CN114896647A
CN114896647A CN202210493474.9A CN202210493474A CN114896647A CN 114896647 A CN114896647 A CN 114896647A CN 202210493474 A CN202210493474 A CN 202210493474A CN 114896647 A CN114896647 A CN 114896647A
Authority
CN
China
Prior art keywords
control
interface
finding
modeling software
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210493474.9A
Other languages
English (en)
Other versions
CN114896647B (zh
Inventor
陈永宏
张超
王渊博
胡定贵
尹华承
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qingju Technology Co ltd
Original Assignee
Qingju Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qingju Technology Co ltd filed Critical Qingju Technology Co ltd
Priority to CN202210493474.9A priority Critical patent/CN114896647B/zh
Publication of CN114896647A publication Critical patent/CN114896647A/zh
Application granted granted Critical
Publication of CN114896647B publication Critical patent/CN114896647B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/12Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Pure & Applied Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Architecture (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开一种注入式操作建模软件自动建模的方法和系统,当用于操作建模软件的代码注入到建模软件的进程中时,判断代码是否注入成功,如果注入成功,则代码开始自动执行;代码开始执行后,根据界面标题找到控件所在窗体应用程序的界面;遍历界面上的所有控件,根据控件属性找到控件对象;执行控件对象的相关动作,控件自动响应点击事件或输入信息到控件输入区域的操作,完成软件模型的创建。该方案能够使应用程序的控件自动响应点击事件或者输入信息到控件输入区域的操作,通过控件的表象信息精确找到我们需要操作的控件对象,通过动作信息,让控件执行某些操作;以上按照人的操作思维将一系列操作控件的动作串联起来从而达到自动3D建模的效果。

Description

一种注入式操作建模软件自动建模的方法和系统
技术领域
本发明涉及软件技术,具体涉及一种注入式操作建模软件自动建模的方法和系统。
背景技术
设计师通过点击建模软件上的按钮和输入相关信息,完成建模过程中的各个操作,最终完成软件模型的创建。而建模过程中,会重复的进行点击窗体上的控件、给控件输入信息两个动作。所以,要自动完成点击或输入信息的重复操作,而解放人的双手,我们需要先控制建模软件中的控件,然后根据控件的特性和类型等信息,实现控件的自动操作的相关动作;最后将这些动作组合成一套完整的建模操作流程,实现软件自动创建模型的方法。
发明内容
为了达到上述目的,本发明提供一种注入式操作建模软件自动建模的方法和系统,通过注入程序到建模软件以实现控制软件进行自动3D建模,从而解放了人的双手,在一定程度上节省了人力资源的支出。
本发明提供的技术方案是:
一种注入式操作建模软件自动建模的方法,所述方法包括:
当用于操作建模软件的代码注入到建模软件的进程中时,判断代码是否注入成功,如果注入成功,则注入的代码开始自动执行;
所述代码开始执行后,根据界面标题找到控件所在窗体应用程序的界面;
遍历界面上的所有控件,根据控件属性找到控件对象;
执行控件对象的相关动作,控件自动响应点击事件或者输入信息到控件输入区域的操作,完成软件模型的创建。
优选的,所述根据界面标题找到控件所在界面包括:
根据界面的标题,遍历操作系统所有显示的窗体,定位窗体的句柄;
得到窗体的句柄后,输入窗口句柄类型的参数,获得句柄对应的窗口类型匹配的界面对象;如果传递的句柄正确,则可以正确找到QWidget类型的界面对象;如果传递的句柄不正确,则返回错误信息;
通过界面标题找到界面的句柄,根据所述句柄找到对应的界面标题;当获取到的界面名称一致而句柄不一致时,通过句柄判断相同标题的界面是否为目标界面;基于判断结果确定界面对象。
优选的,所述遍历界面上的所有控件,根据控件属性找到控件对象包括:
将界面对象转换为开发语言识别的界面对象QWidget,得到界面对象QWidget后,根据界面对象QWidget的子集和控件属性获取在界面上或者以界面为主窗体的所有控件属性集合;
根据集合中控件的表象信息获取要操控的控件对象。
进一步地,每一个控件包含对应的操控属性集合,所述操控属性集合包含该控件的属性名称以及属性值;
其中,文本属性指向控件显示的文本信息;ObjectName指向对象的内部名称;ClassName属性指向控件的类名,用于判断其继承的元对象类名称。
进一步地,所述执行控件对象的相关动作包括:找到界面上的控件对象后,遍历控件的动作信息集合,根据输入的方法名称判断需要执行的方法,找到控件指定的操作方法;找到操作方法函数对象后,通过调用的方式触发运行控件的动作信息,以实现控件的自动运行。
进一步地,所述完成软件模型的创建包括:界面上一个控件的操作方法确定后,在建模软件的外部,创建新的程序,将这些动作通过配置文件的方式串联起来,在需要建模软件自动操作时,将操作建模软件的代码注入到建模软件中,当代码注入到建模软件进程的时候,如果注入成功,该部分代码开始自动执行,如此往复,自动完成模型的创建。
一种注入式操作建模软件自动建模的系统,所述系统包括:
注入式操作模块,用于当操作建模软件的代码注入到建模软件的进程中时,判断代码是否注入成功,如果注入成功,则注入的代码开始自动执行;
界面选取模块,用于所述代码开始执行后,窗体应用程序根据界面标题找到控件所在界面;
控件选取模块,用于遍历界面上的所有控件,根据控件属性找到控件对象;
执行模块,用于执行控件对象的相关动作,控件自动响应点击事件或者输入信息到控件输入区域的操作,完成软件模型的创建。
优选的,所述界面选取模块包括:
定位单元,用于根据界面的标题,遍历操作系统所有显示的窗体,定位窗体的句柄;
获取单元,用于得到窗体的句柄后,输入窗口句柄类型的参数,获得句柄对应的窗口类型匹配的界面对象;如果传递的句柄正确,则可以正确找到QWidget类型的界面对象;如果传递的句柄不正确,则返回错误信息;
判断单元,用于通过界面标题找到界面的句柄,根据所述句柄找到对应的界面标题;当获取到的界面名称一致而句柄不一致时,通过句柄判断相同标题的界面是否为目标界面;基于判断结果确定界面对象。
优选的,所述控件选取模块包括:
集合获取单元,用于将界面对象转换为开发语言识别的界面对象QWidget,得到界面对象QWidget后,根据界面对象QWidget的子集和控件属性获取在界面上或者以界面为主窗体的所有控件属性集合;其包括表象信息和动作信息;
控件获取单元,用于根据集合中控件的表象信息获取要操控的控件对象。
优选的,所述执行模块包括:方法选取单元,用于找到界面上的控件对象后,遍历控件的动作信息集合,根据输入的方法名称判断需要执行的方法,找到控件指定的操作方法;
运行单元,找到操作方法函数对象后,通过调用的方式触发运行控件的动作信息,以实现控件的自动运行;
建模单元,用于界面上一个控件的操作方法确定后,在建模软件的外部,创建新的程序,将这些动作通过配置文件的方式串联起来,在需要建模软件自动操作时,将操作建模软件的代码注入到建模软件中,当代码注入到建模软件进程的时候,如果注入成功,该部分代码开始自动执行,如此往复,自动完成模型的创建。
与最接近的现有技术相比,本发明具有如下显著进步:
本发明提出一种注入式操作建模软件自动建模的方法和系统,通过注入程序到建模软件以实现控制软件进行自动3D建模,无需人工进行专业数据分析、提取和模型参数调整,提高了模型建立的自动化程度和建模效率。从而解放了人的双手,在一定程度上节省了人力资源。
本发明提出一种注入式操作建模软件自动建模的方法和系统,包括当用于操作建模软件的代码注入到建模软件的进程中时,判断代码是否注入成功,如果注入成功,则注入的代码开始自动执行;所述代码开始执行后,根据界面标题找到控件所在窗体应用程序的界面;遍历界面上的所有控件,根据控件属性找到控件对象;执行控件对象的相关动作,控件自动响应点击事件或者输入信息到控件输入区域的操作,完成软件模型的创建。该方案能够使应用程序的控件自动响应点击事件或者输入信息到控件输入区域的操作,通过控件的表象信息,精确找到我们需要操作的控件对象,通过动作信息,让控件执行某些操作;以上按照人的操作思维将一系列操作控件的动作串联起来,从而达到自动3D建模的效果。克服现有建模技术中工作量大、准确性低和及时性差等缺陷,以实现自动化、工作量小、准确性高和及时性好的优点。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为本发明具体实施方式中提供的一种注入式操作建模软件自动建模的方法流程图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的详细说明。
为了具体了解本发明提供的技术方案,将在下面的实施例中对本发明的技术方案做出详细的描述和说明。显然,本发明提供的实施例并不限定于本领域的技术人员所熟习的特殊细节。本发明的较佳实施例详细描述如下,除这些描述外,本发明还可以具有其他实施方式。
本发明具体实施方式提供一种注入式操作建模软件自动建模的方法和系统,其中所提及的建模软件是一个窗体应用程序,他有一系列的窗体界面和界面上的控件组成。应用程序的窗体界面以及窗体界面上的所有控件都继承自QT框架的QObject对象,窗体界面主要是继承自QWidget类对象和QFrame,通过窗体界面可以查找到界面上的所有已经加载的控件集合。
手动操作某建模软件,主要操作的控件有按钮类控件如QPushButton、文本输入类控件如QLineEdit、选择类控件如QComboBox、数据表格类控件如QTableView,菜单类控件如QMenu。操作的类型主要有点击操作、输入信息操作两个类别。
想要注入程序到建模软件达到控制软件进行自动3D建模,就需要使应用程序的控件自动响应点击事件或者输入信息到控件输入区域的操作。
不论是界面还是控件,他都包含两部分的信息,一部分为表象信息即属性信息,一部分为动作信息即方法函数或事件信息。通过控件的表象信息,可以精确找到我们需要操作的控件对象,通过动作信息,我们可以让控件执行某些操作。
所以,要建模软件中的控件自动执行某些特定操作,需要先获取到控件所在的窗体,通过窗体,可以获取到窗体上的所有控件的集合,在集合中,通过表象信息,获取到我们要操控的控件,然后再运行控件的某个动作信息,达到控件自动运行的目的。按照人的操作思维将一系列操作控件的动作串联起来,即可达到自动3D建模的效果。
实现原理:
在Windows中,句柄是一个系统内部数据结构的引用。当我们需要操作一个对象的时候,系统就会为我们分配一个句柄,这个句柄指向我们正在操作的对象。对象可以映射到唯一的句柄,句柄也可以映射到唯一的对象。
要操作界面上的控件,就必须先获取到控件所在的界面对象。要获取界面对象,我们需要先从Windows的进程池里面获取界面的句柄。Windows API封装了一系列相关的函数,通过界面的名称,我们可以获取到界面的句柄。然后再通过句柄,我们可以将我们的界面对象转换为开发语言可以识别的QWidget对象。
获取到界面的QWidget对象以后,我们可以遍历窗体界面上的控件集合,然后根据控件集合的类别以及特定的属性信息,找到我们想要的控件。然后再找到该控件中需要执行的方法名称,通过调用的方式触发控件的方法,即可完成控件自动执行的操作。
比如我们要点击界面名称为【批量选择】的窗体上的一个名称为【确定】的按钮,此时我们根据界面的名称【批量选择】找到窗体的句柄HWND,找到句柄HWND表示界面在系统进程中存在,找不到句柄HWND则界面不存在。找到句柄HWND后,向QT程序传递句柄的值,然后根据句柄得到QWidget对象。找到QWidget对象后,遍历QWidget的子集合,即可找到基于该界面的所有已经加载的控件组合信息。我们需要点击名称为【确定】的按钮,即遍历children的时候,判断child的类型是继承自QPushButton,并且child的text属性为【确定】,此时我们就找到了界面上的指定按钮。要让他执行点击操作,只需要运行他的click()方法即可完成人手动点击确定按钮的操作。
QWidget*mainwidget=QWidget::find(reinterpret_cast<WId>(hwnd));
综上所述,想要让软件自动完成建模,如图1所示,只需要本发明具体实施方式实施例1中提供的一种注入式操作建模软件自动建模的方法所列出的以下S1~S4的步骤:
S1当用于操作建模软件的代码注入到建模软件的进程中时,判断代码是否注入成功,如果注入成功,则注入的代码开始自动执行;
S2所述代码开始执行后,根据界面标题找到控件所在窗体应用程序的界面;
S3遍历界面上的所有控件,根据控件属性找到控件对象;
S4执行控件对象的相关动作,控件自动响应点击事件或者输入信息到控件输入区域的操作;
通过对以上步骤S1~S4的组合,实现流程化自动操作,完成软件模型的创建。
步骤S2中,根据界面标题找到控件所在界面包括:
根据界面的标题,遍历操作系统所有显示的窗体,定位窗体的句柄;
得到窗体的句柄后,输入窗口句柄类型的参数,获得句柄对应的窗口类型匹配的界面对象;如果传递的句柄正确,则可以正确找到QWidget类型的界面对象;如果传递的句柄不正确,则返回错误信息;
通过界面标题找到界面的句柄,根据所述句柄找到对应的界面标题;当获取到的界面名称一致而句柄不一致时,通过句柄判断相同标题的界面是否为目标界面;基于判断结果确定界面对象。
步骤S3中,遍历界面上的所有控件,根据控件属性找到控件对象包括:
将界面对象转换为开发语言识别的界面对象QWidget,得到界面对象QWidget后,根据界面对象QWidget的子集和控件属性获取在界面上或者以界面为主窗体的所有控件属性集合;
根据集合中控件的表象信息获取要操控的控件对象。
每一个控件包含对应的操控属性集合,所述操控属性集合包含该控件的属性名称以及属性值;
其中,文本属性指向控件显示的文本信息;ObjectName指向对象的内部名称;ClassName属性指向控件的类名,用于判断其继承的元对象类名称。
步骤S4中,执行控件对象的相关动作包括:找到界面上的控件对象后,遍历控件的动作信息集合,根据输入的方法名称判断需要执行的方法,找到控件指定的操作方法;找到操作方法函数对象后,通过调用的方式触发运行控件的动作信息,以实现控件的自动运行。
完成软件模型的创建包括:界面上一个控件的操作方法确定后,在建模软件的外部,创建新的程序,将这些动作通过配置文件的方式串联起来,在需要建模软件自动操作时,将操作建模软件的代码注入到建模软件中,当代码注入到建模软件进程的时候,如果注入成功,该部分代码开始自动执行,如此往复,自动完成模型的创建。
具体操作流程:1、根据界面标题找到控件所在的界面。我们显示的界面,一般都有一个界面标题,每一个界面,Windows系统都会分配一个独有的句柄。我们根据界面的标题,遍历Windows系统所有显示的窗体,即可找到窗体的句柄。得到界面的句柄以后,QT封装有专门的方法,传入参数句柄HWND,即可获得QWidget类型的界面对象,如果传递的句柄正确,即可正确找到我们需要的窗体对象。如果传递的句柄不正确,则返回null。
我们可以通过界面的标题找到界面的句柄,同时也可以根据句柄找到对应的界面标题。有时候我们获取到的界面可能名称一样,但是其实句柄不同,此时我们就可以通过句柄去判断相同标题的界面是不是我们想要的界面。
2、遍历界面QWidget的子集,找到指定的控件。得到界面对象QWidget以后,我们就可以根据界面的子集和控件属性获取到在界面上或者以界面为主窗体的所有控件的集合,一般都是获取界面上的控件集合。每一个控件都有属性properties集合,该集合包含了控件中可见的不可见的所有属性名称以及属性值。其中我们要用的属性为Text指向控件显示的文本信息;ObjectName指向对象的内部名称,但是该属性多数情况下为空;ClassName属性指向控件的类名,用于判断其继承的元对象类名称。不同的控件其属性集合不同,需要特殊控件特殊对待。
3、执行控件对象的相关动作。找到界面上的控件对象后,我们可以遍历控件的方法函数集合,根据输入的方法名称判断需要执行的方法,找到控件指定的方法metaMethod。比如按钮型的控件一般执行的是单击操作,就找到名称为clicked的方法;有的方法需要执行双击操作,则找到doubleClicked的方法;有的输入框需要设置当前值,则可以找到控件的setCurrentText方法等等。方法的名称可以通过遍历控件方法集合,打印输出所有的方法信息,即可判断某种类型的控件都有哪些方法。找到metaMethod方法函数对象后,我们可以通过invoke的方法,执行该方法。执行方法不需要修改方法内部函数结构,只是触发了该方法,让其执行操作。
metaMethod.invoke(qobject,Qt::AutoConnection,Q_ARG(int,pageIndex))。
4、组合实现流程化自动操作。界面上一个控件的操作方法确定后,我们在建模软件的外部,创建新的程序,将这些动作通过配置文件的方式串联起来,然后在需要建模软件自动操作的时候,将我们的操作建模软件的代码注入到建模软件中,代码注入到建模软件进程的时候,如果注入成功,该部分代码会自动开始执行,如此往复即可完成一整个流程,即可自动完成模型的创建。
实施例2:
基于同一发明构思,本具体实施方式中还提供一种注入式操作建模软件自动建模的系统,包括:
注入式操作模块,用于当操作建模软件的代码注入到建模软件的进程中时,判断代码是否注入成功,如果注入成功,则注入的代码开始自动执行;
界面选取模块,用于所述代码开始执行后,窗体应用程序根据界面标题找到控件所在界面;
控件选取模块,用于遍历界面上的所有控件,根据控件属性找到控件对象;
执行模块,用于执行控件对象的相关动作,控件自动响应点击事件或者输入信息到控件输入区域的操作,完成软件模型的创建。
其中,界面选取模块包括:
定位单元,用于根据界面的标题,遍历操作系统所有显示的窗体,定位窗体的句柄;
获取单元,用于得到窗体的句柄后,输入窗口句柄类型的参数,获得句柄对应的窗口类型匹配的界面对象;如果传递的句柄正确,则可以正确找到QWidget类型的界面对象;如果传递的句柄不正确,则返回错误信息;
判断单元,用于通过界面标题找到界面的句柄,根据所述句柄找到对应的界面标题;当获取到的界面名称一致而句柄不一致时,通过句柄判断相同标题的界面是否为目标界面;基于判断结果确定界面对象。
其中,控件选取模块包括:
集合获取单元,用于将界面对象转换为开发语言识别的界面对象QWidget,得到界面对象QWidget后,根据界面对象QWidget的子集和控件属性获取在界面上或者以界面为主窗体的所有控件属性集合;其包括表象信息和动作信息;
控件获取单元,用于根据集合中控件的表象信息获取要操控的控件对象。
执行模块包括:方法选取单元,用于找到界面上的控件对象后,遍历控件的动作信息集合,根据输入的方法名称判断需要执行的方法,找到控件指定的操作方法;
运行单元,找到操作方法函数对象后,通过调用的方式触发运行控件的动作信息,以实现控件的自动运行;
建模单元,用于界面上一个控件的操作方法确定后,在建模软件的外部,创建新的程序,将这些动作通过配置文件的方式串联起来,在需要建模软件自动操作时,将操作建模软件的代码注入到建模软件中,当代码注入到建模软件进程的时候,如果注入成功,该部分代码开始自动执行,如此往复,自动完成模型的创建。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

Claims (10)

1.一种注入式操作建模软件自动建模的方法,其特征在于,所述方法包括:
当用于操作建模软件的代码注入到建模软件的进程中时,判断代码是否注入成功,如果注入成功,则注入的代码开始自动执行;
所述代码开始执行后,根据界面标题找到控件所在窗体应用程序的界面;
遍历界面上的所有控件,根据控件属性找到控件对象;
执行控件对象的相关动作,控件自动响应点击事件或者输入信息到控件输入区域的操作,完成软件模型的创建。
2.如权利要求1所述的方法,其特征在于,所述根据界面标题找到控件所在界面包括:
根据界面的标题,遍历操作系统所有显示的窗体,定位窗体的句柄;
得到窗体的句柄后,输入窗口句柄类型的参数,获得句柄对应的窗口类型匹配的界面对象;如果传递的句柄正确,则可以正确找到QWidget类型的界面对象;如果传递的句柄不正确,则返回错误信息;
通过界面标题找到界面的句柄,根据所述句柄找到对应的界面标题;当获取到的界面名称一致而句柄不一致时,通过句柄判断相同标题的界面是否为目标界面;基于判断结果确定界面对象。
3.根据权利要求1所述的方法,其特征在于,所述遍历界面上的所有控件,根据控件属性找到控件对象包括:
将界面对象转换为开发语言识别的界面对象QWidget,得到界面对象QWidget后,根据界面对象QWidget的子集和控件属性获取在界面上或者以界面为主窗体的所有控件属性集合;
根据集合中控件的表象信息获取要操控的控件对象。
4.根据权利要求3所述的方法,其特征在于,每一个控件包含对应的操控属性集合,所述操控属性集合包含该控件的属性名称以及属性值;
其中,文本属性指向控件显示的文本信息;ObjectName指向对象的内部名称;ClassName属性指向控件的类名,用于判断其继承的元对象类名称。
5.根据权利要求3所述的方法,其特征在于,所述执行控件对象的相关动作包括:找到界面上的控件对象后,遍历控件的动作信息集合,根据输入的方法名称判断需要执行的方法,找到控件指定的操作方法;找到操作方法函数对象后,通过调用的方式触发运行控件的动作信息,以实现控件的自动运行。
6.根据权利要求3所述的方法,其特征在于,所述完成软件模型的创建包括:界面上一个控件的操作方法确定后,在建模软件的外部,创建新的程序,将这些动作通过配置文件的方式串联起来,在需要建模软件自动操作时,将操作建模软件的代码注入到建模软件中,当代码注入到建模软件进程的时候,如果注入成功,该部分代码开始自动执行,如此往复,自动完成模型的创建。
7.一种注入式操作建模软件自动建模的系统,其特征在于,所述系统包括:
注入式操作模块,用于当操作建模软件的代码注入到建模软件的进程中时,判断代码是否注入成功,如果注入成功,则注入的代码开始自动执行;
界面选取模块,用于所述代码开始执行后,窗体应用程序根据界面标题找到控件所在界面;
控件选取模块,用于遍历界面上的所有控件,根据控件属性找到控件对象;
执行模块,用于执行控件对象的相关动作,控件自动响应点击事件或者输入信息到控件输入区域的操作,完成软件模型的创建。
8.如权利要求7所述的系统,其特征在于,所述界面选取模块包括:
定位单元,用于根据界面的标题,遍历操作系统所有显示的窗体,定位窗体的句柄;
获取单元,用于得到窗体的句柄后,输入窗口句柄类型的参数,获得句柄对应的窗口类型匹配的界面对象;如果传递的句柄正确,则可以正确找到QWidget类型的界面对象;如果传递的句柄不正确,则返回错误信息;
判断单元,用于通过界面标题找到界面的句柄,根据所述句柄找到对应的界面标题;当获取到的界面名称一致而句柄不一致时,通过句柄判断相同标题的界面是否为目标界面;基于判断结果确定界面对象。
9.如权利要求7所述的系统,其特征在于,所述控件选取模块包括:
集合获取单元,用于将界面对象转换为开发语言识别的界面对象QWidget,得到界面对象QWidget后,根据界面对象QWidget的子集和控件属性获取在界面上或者以界面为主窗体的所有控件属性集合;其包括表象信息和动作信息;
控件获取单元,用于根据集合中控件的表象信息获取要操控的控件对象。
10.如权利要求7所述的系统,其特征在于,所述执行模块包括:方法选取单元,用于找到界面上的控件对象后,遍历控件的动作信息集合,根据输入的方法名称判断需要执行的方法,找到控件指定的操作方法;
运行单元,找到操作方法函数对象后,通过调用的方式触发运行控件的动作信息,以实现控件的自动运行;
建模单元,用于界面上一个控件的操作方法确定后,在建模软件的外部,创建新的程序,将这些动作通过配置文件的方式串联起来,在需要建模软件自动操作时,将操作建模软件的代码注入到建模软件中,当代码注入到建模软件进程的时候,如果注入成功,该部分代码开始自动执行,如此往复,自动完成模型的创建。
CN202210493474.9A 2022-05-07 2022-05-07 一种注入式操作建模软件自动建模的方法和系统 Active CN114896647B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210493474.9A CN114896647B (zh) 2022-05-07 2022-05-07 一种注入式操作建模软件自动建模的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210493474.9A CN114896647B (zh) 2022-05-07 2022-05-07 一种注入式操作建模软件自动建模的方法和系统

Publications (2)

Publication Number Publication Date
CN114896647A true CN114896647A (zh) 2022-08-12
CN114896647B CN114896647B (zh) 2023-05-26

Family

ID=82722849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210493474.9A Active CN114896647B (zh) 2022-05-07 2022-05-07 一种注入式操作建模软件自动建模的方法和系统

Country Status (1)

Country Link
CN (1) CN114896647B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751329A (zh) * 2008-12-18 2010-06-23 大唐移动通信设备有限公司 一种实现自动测试的方法和系统
CN104636248A (zh) * 2013-11-13 2015-05-20 航天信息股份有限公司 一种基于代码注入的自动化测试辅助识别方法
US20180189035A1 (en) * 2016-12-29 2018-07-05 TechRev, LLC Application development tool using graphic objects to bind object sets of different distinct divisions of a design pattern
CN114238947A (zh) * 2021-11-30 2022-03-25 浙江中控技术股份有限公司 Windows系统的软件保护方法、系统、设备及介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751329A (zh) * 2008-12-18 2010-06-23 大唐移动通信设备有限公司 一种实现自动测试的方法和系统
CN104636248A (zh) * 2013-11-13 2015-05-20 航天信息股份有限公司 一种基于代码注入的自动化测试辅助识别方法
US20180189035A1 (en) * 2016-12-29 2018-07-05 TechRev, LLC Application development tool using graphic objects to bind object sets of different distinct divisions of a design pattern
CN114238947A (zh) * 2021-11-30 2022-03-25 浙江中控技术股份有限公司 Windows系统的软件保护方法、系统、设备及介质

Also Published As

Publication number Publication date
CN114896647B (zh) 2023-05-26

Similar Documents

Publication Publication Date Title
US10705892B2 (en) Automatically generating conversational services from a computing application
Cox et al. Prograph: a step towards liberating programming from textual conditioning
CN108319456B (zh) 一种免编程深度学习应用的开发方法
CN104424338B (zh) web系统的自动生成装置和自动生成方法
US7207031B2 (en) System and method for utilization of a command structure representation
US20160041815A1 (en) Computer Source Code Generator for Building Software Applications
Luyten Dynamic user interface generation for mobile and embedded systems with model-based user interface development
TWI448860B (zh) 擷取機台之圖形介面視窗之元件的程式參數的方法和機台之操作方法
IL255563A (en) A computer-implemented method that presents software-type applications based on designed specifications
CN113886362A (zh) 基于工作流引擎及低代码平台的数据存储系统及存储方法
Williams et al. A visual language for image processing
Van Mierlo et al. SCCD: SCCDXML extended with class diagrams
Bouillon et al. Reverse engineering of web pages based on derivations and transformations
CN114896647B (zh) 一种注入式操作建模软件自动建模的方法和系统
CN112100069A (zh) 一种面向simscript语言的离散事件仿真事件队列可视化方法
CN111949915A (zh) 一种遥感产品生产流程的可视化定制方法及系统
US20230041718A1 (en) Automated code generation based on pseudo-code
Meixner et al. Udit–a graphical editor for task models
CN107608890A (zh) 一种基于带权重的事件处理函数模型生成gui软件测试用例的方法
JPH06149598A (ja) コンピュータ・ユーザ・インタフェース・システム
KR20010011272A (ko) 객체 기반 로봇 프로그래밍 시스템 및 방법
Memon Using reverse engineering for automated usability evaluation of gui-based applications
WO2015172401A1 (zh) 一种程序间通信再编程软件设计实现及人机交互方法
Grundy et al. A visual programming environment for object-oriented languages
CN117455416B (zh) 应用于建筑项目管理的数据分析方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant