CN107957841A - 滚动截屏方法及装置 - Google Patents

滚动截屏方法及装置 Download PDF

Info

Publication number
CN107957841A
CN107957841A CN201610903398.9A CN201610903398A CN107957841A CN 107957841 A CN107957841 A CN 107957841A CN 201610903398 A CN201610903398 A CN 201610903398A CN 107957841 A CN107957841 A CN 107957841A
Authority
CN
China
Prior art keywords
scroll bar
value
target window
interface
calling interface
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
CN201610903398.9A
Other languages
English (en)
Other versions
CN107957841B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610903398.9A priority Critical patent/CN107957841B/zh
Publication of CN107957841A publication Critical patent/CN107957841A/zh
Application granted granted Critical
Publication of CN107957841B publication Critical patent/CN107957841B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06T3/14
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4038Scaling the whole image or part thereof for image mosaicing, i.e. plane images composed of plane sub-images

Abstract

本发明是关于一种滚动截屏方法及装置。该方法包括:在接收到对目标窗口的截屏操作时,若检测出允许通过终端的操作系统提供的系统层调用接口对滚动条的值进行修改,则通过该调用接口,从初始值开始,按照预设的更新方式对该滚动条的值进行多次更新,每次更新后截取目标窗口中的可见区域的截屏图像,将每次更新后截取的截屏图像进行拼接,获得目标窗口的完整界面的滚动截屏图像,在此过程中,不需要目标窗口对应的应用程序对外提供用户控制滚动条的接口,只需要通过系统层接口即可以对目标窗口中的滚动条进行控制,从而实现对不提供用于控制滚动条的接口的第三方应用程序的窗口进行滚动截屏,扩展了滚动截屏的应用场景。

Description

滚动截屏方法及装置
技术领域
本发明涉及软件技术领域,特别涉及一种滚动截屏方法及装置。
背景技术
随着软件技术的不断发展,滚动截屏功能已经成为具有显示屏幕的终端中不可或缺的功能之一。
在现有技术中,用户在使用滚动截屏工具对第三方应用程序的窗口进行滚动截屏时,若该窗口中包含滚动条,则滚动截屏工具调用该第三方应用程序提供的接口来控制滚动条滚动,以在窗口中显示完整界面中各个不同部分的内容,并在每次控制滚动条滚动之后对窗口中显示的部分内容进行截屏,最后将多次截屏获得的截屏图像进行拼接,即可以获得该窗口的完整界面的滚动截屏图像。比如,以对浏览器进行滚动截屏为例,浏览器通常对外提供用于控制滚动条的接口,比如scrollTo()或者scrollBy()接口,浏览器之外的滚动截屏工具在对浏览器进行滚动截屏时,可以调用浏览器提供的scrollTo()或者scrollBy()接口来控制浏览器窗口中的滚动条。
滚动截屏工具需要调用该第三方应用程序提供的用于控制滚动条的接口,而在实际应用中,除了浏览器之外,很多第三方应用程序并不提供用于控制滚动条的接口,导致无法对此类第三方应用程序的窗口进行滚动截屏。
发明内容
为了解决现有技术中截屏工具无法实现对不提供用于控制滚动条的接口的第三方应用程序的窗口进行滚动截屏的问题,本发明实施例提供了一种滚动截屏方法及装置,技术方案如下:
第一方面,提供了一种滚动截屏方法,所述方法包括:
接收对终端的屏幕中显示的目标窗口的截屏指令;
当所述目标窗口中包含滚动条时,检测是否允许通过预设的调用接口对所述滚动条的值进行修改,所述调用接口是所述终端的操作系统提供的系统层接口;
若检测结果为允许通过所述调用接口对所述滚动条的值进行修改,则通过所述调用接口,从初始值开始,按照预设的更新方式对所述滚动条的值进行多次更新,每次更新后截取所述目标窗口中的可见区域的截屏图像;
将每次更新后截取的所述截屏图像进行拼接,获得所述目标窗口的完整界面的滚动截屏图像。
第二方面,提供了一种滚动截屏装置,其特征在于,所述装置包括:
指令接收模块,用于接收到对终端的屏幕中显示的目标窗口的截屏指令;
修改检测模块,用于当所述目标窗口中包含滚动条时,检测是否允许通过预设的调用接口对所述滚动条的值进行修改,所述调用接口是所述终端的操作系统提供的系统层接口;
更新模块,用于当所述修改检测模块的检测结果为允许通过所述调用接口对所述滚动条的值进行修改,则通过所述调用接口,从初始值开始,按照预设的更新方式对所述滚动条的值进行多次更新;
截屏模块,用于在所述更新模块每次更新后截取所述目标窗口中的可见区域的截屏图像;
拼接模块,用于将所述截屏模块在所述更新模块每次更新后截取的所述截屏图像进行拼接,获得所述目标窗口的完整界面的滚动截屏图像。
本发明实施例提供的技术方案可以包括以下有益效果:
不需要目标窗口对应的应用程序对外提供用户控制滚动条的接口,只需要通过系统层接口即可以对目标窗口中的滚动条进行控制,从而实现对不提供用于控制滚动条的接口的第三方应用程序的窗口进行滚动截屏,扩展了滚动截屏的应用场景。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种滚动截屏方法的流程图;
图2是图1所示实施例涉及的一种截屏提示示意图;
图3是根据另一示例性实施例示出的一种滚动截屏方法的流程图;
图4是根据一示例性实施例示出的一种滚动截屏装置的结构方框图;
图5是根据一示例性实施例示出的一种终端的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
本发明所示的方案应用于具有显示屏幕,且运行有第三方应用程序的终端中,比如,该终端可以是个人电脑或笔记本电脑等个人计算机,或者,该终端也可以是智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio LayerIV,动态影像专家压缩标准音频层面4)播放器等移动终端,或者,该终端也可以是智能手表或智能眼镜等可穿戴智能设备。上述滚动截屏工具可以独立实现为一个第三方应用程序,或者,该滚动截屏工具也可以实现为第三方应用程序中的插件或组件,或者,该滚动截屏工具也可以是终端中的操作系统自带的系统工具。
本发明所示的方案中,终端的操作系统提供系统层接口,该系统层接口可以用于获取UI(英文:User Interface,中文:用户界面)对象的属性(比如窗口中的滚动条的值),并可以用于对获取到的UI对象的属性进行赋值。用户通过滚动截屏工具对终端屏幕中的目标窗口进行截屏操作时,若该目标窗口中包含滚动条,即窗口中可见内容只包含该窗口对应的完整界面中的一部分时,此时滚动截屏工具可以检测是否允许通过上述系统层接口来修改窗口中的滚动条的值,若检测出允许通过上述系统层接口来修改窗口中的滚动条的值,则通过调用上述系统层接口对该窗口中的滚动条进行至少一次调节操作,使得每次操作后窗口中展示完整界面中的一部分,并在每次调解后对窗口中展示的内容进行截屏,最后将每次截屏获得的截屏图像进行拼接,获得完整界面对应的截屏图像。
其中,本发明所示的方案,可以对不提供用于控制滚动条的接口的第三方应用程序的窗口进行滚动截屏,也可以对提供用于控制滚动条的接口的第三方应用程序(比如浏览器)的窗口进行滚动截屏。
图1是根据一示例性实施例示出的一种滚动截屏方法的流程图,以应用于具有显示屏幕,且运行有第三方应用程序的终端中为例,该滚动截屏方法可以包括如下几个步骤:
步骤101,接收到针对目标窗口的截屏指令。
用户使用终端时,若想要对终端屏幕中展示的某个窗口进行截屏,则可以通过快捷键操作、触控操作、鼠标操作或者菜单操作等方式触发终端中的滚动截屏工具生成截屏指令。
比如,用户想要截屏时,可以按下用于截屏的快捷键组合,之后,滚动截屏工具将当前屏幕顶层显示的窗口确定为目标窗口,并生成该目标窗口的截屏指令。
或者,终端中的屏幕中当前显示多个窗口时,用户按下用于截屏的快捷键组合之后,将鼠标移动至想要截屏的窗口上,滚动截屏工具将鼠标所在的窗口确定为目标窗口,并生成该目标窗口的截屏指令。
步骤102,当该目标窗口中包含滚动条时,检测是否允许通过预设的调用接口对该滚动条的值进行修改。
其中,该调用接口是终端的操作系统提供的系统层接口。该系统层接口可以用于获取UI对象的属性,并可以用于对获取到的UI对象的属性进行赋值。比如,当终端中的操作系统为OS X系统时,上述调用接口可以是OS X系统中的用户界面对象属性获取接口AXUIElementCopyAttributeValue。
其中,滚动条的值是指滚动条从起始位置滚动的距离,比如,当滚动条的值为0时,可以表示该滚动条处于起始位置未滚动,当滚动条的值为1时,可以表示该滚动条滚动到最大位置处,即滚动条的值的取值范围在[0,1]区间内。
可选的,在本发明实施例中,滚动截屏工具可以获取目标窗口的滚动条的类名、上述调用接口的启用信息以及上述滚动条的设置信息,其中,该调用接口的启用信息用于指示该调用接口是否启用,该滚动条的设置信息用于指示该滚动条的值是否允许被修改;当该滚动条的类名为指定类名,该调用接口的启用信息指示所述调用接口已启用,且该滚动条的设置信息指示该滚动条的值允许被修改时,确定允许通过该调用接口对该滚动条的值进行修改。
在本发明实施例中,滚动截屏工具若要对目标窗口的滚动条的值进行修改,至少需要满足以下条件:
1)上述调用接口具有获取目标窗口中的滚动条的属性的能力。
在实际应用中,目标窗口对应的第三方应用的开发者在开发该第三方应用时,可以设置开发工具默认的滚动条的类作为该目标窗口中的滚动条的类,这样的滚动条可以称为原生滚动条;或者,开发者也可以对目标窗口的滚动条的外观等参数进行定制,此时可能自行定义滚动条的类,这样的滚动条可以称为非原生滚动条。
由于非原生滚动条的类由第三方应用的开发者自行定义,操作系统提供的调用接口并不一定具有获取该非原生滚动条的属性的能力,则滚动截屏工具无法修改该目标窗口的滚动条的值。因此,在本发明实施例中,在检测是否允许通过预设的调用接口对该滚动条的值进行修改时,滚动截屏工具首先确定该目标窗口的滚动条的类是否为指定的滚动条的类,若是,则认为该滚动条是原生滚动条,通过上述调用接口可以获取该目标窗口的滚动条的属性。
比如,以终端的操作系统为OS X系统为例,OS X系统中的第三方应用程序基于Cocoa Framework开发,而在Cocoa Framework中,原生滚动条的类为NSScroller,假设上述调用接口仅支持对原生滚动条的值的修改,则在判断目标窗口的滚动条的值是否可修改时,滚动截屏工具首先获取目标窗口的滚动条的类,并判断该目标窗口的滚动条的类是否为NSScroller,若是,则认为通过上述调用接口可以获取该目标窗口的滚动条的属性。
2)终端的系统层已经启动该调用接口。
若要通过调用接口对目标窗口的滚动条的值进行修改,除了需要上述调用接口具有获取目标窗口中的滚动条的属性的能力之外,还需要上述调用接口处于启动状态。比如,以终端的操作系统为OS X系统为例,通过OS X系统中的用户界面对象属性获取接口AXUIElementCopyAttributeValue是OS X系统中的Accessibility辅助功能提供的接口,滚动截屏工具在检测是否允许通过预设的调用接口对该滚动条的值进行修改时,可以获取Accessibility辅助功能的设置参数,即AXAPIEnabled()以及AXIsProcessTrusted(),通过这两项设置参数来判断终端是否已经开启了Accessibility辅助功能。若终端已经开启了Accessibility辅助功能,则认为终端的系统层已经启动上述调用接口,其中,Accessibility辅助功能的设置参数即为调用接口的启用信息。
可选的,若终端的系统层未启动上述调用接口,则滚动截屏工具还可以展示启用提示,该启用提示用于提示用户开启终端系统中的上述上述调用接口,具体的,以OS X系统为例,该启用提示可以提示用户开启上述Accessibility辅助功能。
3)目标窗口的滚动条的值允许被修改。
若目标窗口对应的第三方应用不允许终端或其它应用程序对其进行修改或设置,则滚动截屏工具也无法修改其中的滚动条的值,因此,滚动截屏工具在检测是否允许通过预设的调用接口对该滚动条的值进行修改时,还可以通过相关的接口获取目标窗口的滚动条的设置信息,通过该设置信息判断目标窗口的滚动条的值是否可以被修改。其中,获取目标窗口的滚动条的设置信息的相关接口也可以是终端的操作系统提供的系统层接口。比如,以OS X系统为例,该相关接口可以是上述Accessibility辅助功能提供的接口,此时,滚动截屏工具可以先判断Accessibility辅助功能是否开启,若Accessibility辅助功能开启,再通过相关接口获取目标窗口的滚动条的设置信息。
其中,目标窗口的滚动条通常可以分为横向滚动条和纵向滚动条,在判断目标窗口的滚动条是否可以被修改时,需要分别判断横向滚动条和纵向滚动条是否可以被修改。
比如,以终端的操作系统为OS X系统为例,判断横向滚动条的值是否被修改的代码可以如下:
相应的,判断纵向滚动条的值是否被修改的代码可以如下:
可选的,若目标窗口的滚动条的值不允许被修改,则滚动截屏工具还可以展示设置修改提示,该设置修改提示用于提示用户对目标窗口对应的应用程序进行设置,使得该应用程序中的目标窗口的滚动条的值允许被修改。
当滚动截屏工具确定上述三个条件都满足时,可以确定允许通过上述调用接口对该滚动条的值进行修改。
可选的,在判断出目标窗口具有滚动区域之后,滚动截屏工具还可以展示提示信息,该提示信息用于提示用户是否截取该窗口对应的完整界面的截屏图像,若用户针对该提示信息执行确定截取该窗口对应的完整界面的截屏图像的操作,则进入步骤103。
比如,请参考图2,其示出了本发明实施例涉及的一种截屏提示示意图,其中,终端的屏幕20中显示一个窗口21,窗口21中包含滚动条21a,用户通过组合快捷键加鼠标点选的方式执行对窗口21进行截屏的操作时,终端判断窗口21中包含滚动条,且窗口21中的滚动条的值可修改时,终端的屏幕中显示一个提示框22,该提示框22中包含完整界面截屏选项22a和可见区域截屏选项22b,若用户点击完整界面截屏选项22a,则进入步骤103,若用户点击可见区域截屏选项22b,则截取窗口中当前可见的区域的截屏图像。
步骤103,将目标窗口的滚动条的当前值保存为该目标窗口的滚动条的恢复目标值。
滚动截屏工具在对目标窗口的滚动条的值进行修改之前,首先需要将目标窗口的滚动条的当前值保存下来,以便截图之后将目标窗口回复为截图前的状态。其中,滚动截屏工具可以通过相关的接口获取目标窗口的滚动条的当前值,以终端的操作系统为OS X系统为例,获取滚动条的当前值的代码可以如下:
步骤104,通过该调用接口,从初始值开始,按照预设的更新方式对该滚动条的值进行多次更新,每次更新后截取该目标窗口中的可见区域的截屏图像。
其中,该初始值可以是预先设置的值,比如,以横向滚动条和纵向滚动条的初始值为0为例,滚动截屏工具首先将横向滚动条和纵向滚动条的值分别设置为0,此时窗口中的可见区域位于目标窗口对应的完整界面的左上角,滚动截屏工具对可见区域截屏并保存截屏图像后,判断纵向滚动条的值是否小于1,若是,则更新纵向滚动条的值,增加纵向滚动条的值,以使得当前窗口的可见区域在完整界面中向下移动,并再次对可见区域截屏并保存截屏图像,之后,继续判断纵向滚动条的值是否小于1,若是,再次增加纵向滚动条的值(若增加后纵向滚动条的值大于1,则将纵向滚动条的值设置为1),并对可见区域截屏并保存截屏图像,若纵向滚动条的值等于1,则判断横向滚动条的值是否小于1,若是,则增加横向滚动条的值(若增加后横向滚动条的值大于1,则将横向滚动条的值设置为1),同时将纵向滚动条的值设置为0,并对可见区域截屏并保存截屏图像,之后继续判断纵向滚动条的值是否小于1,若是,再次增加纵向滚动条的值,并对可见区域截屏并保存截屏图像,否则判断横向滚动条的值是否小于1,循环执行上述步骤,直至判断出纵向滚动条的值等于1,且纵向滚动条的值等于1。
可选的,上述增加纵向滚动条或横向滚动条的值时,每次可以增加固定的值,且增加的值与目标窗口的可见区域的尺寸与窗口中的完整界面的尺寸有关,比如,纵向滚动条每次增加的值可以为上述可见区域的高度与完整界面的高度之间的比值,横向滚动条每次增加的值可以为可见区域的宽度与完整界面的宽度之间的比值。
其中,当终端中的操作系统为OS X系统时,滚动截屏工具可以通过用户界面对象属性获取接口AXUIElementCopyAttributeValue,从初始值开始按照预设的更新方式对所述滚动条的值进行多次更新。具体的,以在OS X系统中,将目标窗口的横向滚动条的值设置为1为例,其代码可以如下:
[UIElementUtilities setStringValue:@"1"forAttribute:[NSStringstringWithCFString:kAXValueAttribute]ofUIElement:self.horizontalScrollBar]。
本发明实施例以横向滚动条和纵向滚动条的初始值为0,且对目标窗口中的完整界面按照多列分别从上到下进行截屏为例进行说明,在实际应用中,滚动截屏工具还可以通过其它的截屏顺序对完整界面中不同的位置进行截屏。比如,以横向滚动条和纵向滚动条的初始值为1,按照多列分别从下到上的顺序进行截屏,或者,以横向滚动条和纵向滚动条的初始值为0,按照多行分别从左到右的顺序进行截屏等等,对于滚动截屏工具对目标窗口中的不同位置的截屏顺序,本发明实施例不做限定。
步骤105,将每次更新滚动条的值之后截取的截屏图像进行拼接,获得该目标窗口的完整界面的滚动截屏图像。
可选的,终端可以获取目标窗口对应的完整界面的尺寸,并创建与该完整界面的尺寸相同的画布,在步骤104中每次对目标窗口的可见区域截图之后,将截取到的截屏图像绘制在画布中对应的位置,最后获得完整界面的滚动截屏图像。
步骤106,将目标窗口的滚动条的值设置为恢复目标值。
在获得目标窗口的完整界面的截屏图像后,滚动截屏工具可以将窗口的滚动条设置为截屏之前的值,即将目标窗口的可见区域中显示的内容恢复为截屏之前的状态。
综上所述,本发明实施例提供的滚动截屏方法,在接收到对目标窗口的截屏操作时,若检测出允许通过终端的操作系统提供的系统层调用接口对滚动条的值进行修改,则通过该调用接口,从初始值开始,按照预设的更新方式对该滚动条的值进行多次更新,每次更新后截取目标窗口中的可见区域的截屏图像,将每次更新后截取的截屏图像进行拼接,获得目标窗口的完整界面的滚动截屏图像,在此过程中,不需要目标窗口对应的应用程序对外提供用户控制滚动条的接口,只需要通过系统层接口即可以对目标窗口中的滚动条进行控制,从而实现对不提供用于控制滚动条的接口的第三方应用程序的窗口进行滚动截屏,扩展了滚动截屏的应用场景。
图3是根据一示例性实施例示出的一种滚动截屏方法的流程图,以应用于具有显示屏幕,且运行有第三方应用程序的终端中为例,该滚动截屏方法可以包括如下几个步骤:
步骤301,接收到针对目标窗口的截屏指令。
步骤302,判断该目标窗口是否具有滚动条,若是,进入步骤303,否则,进入步骤308。
在本发明实施例中,滚动截屏工具可以通过目标窗口中显示的对象的类型来判断该目标窗口是否具有滚动条。具体的,可以通过检测该目标窗口中显示的对象的类型是否为指定对象类,若检测结果为该目标窗口中显示的对象的类型为指定对象类,则确定该目标窗口中包含滚动条。
比如,以终端的操作系统为OS X系统为例,滚动截屏工具首先获取目标窗口中顶层对象的类,检测该顶层对象的类是否为NSScrollView,若该顶层对象的类为NSScrollView,则确定该目标窗口中有滚动区域,否则,针对该顶层对象向其父对象溯源,检测该顶层对象的父对象的类是否为NSScrollView,若是,则确定该目标窗口中有滚动区域,否则,继续对该顶层对象的父对象进行溯源,以此类推,直至溯源到的对象为该目标窗口,若各级对象的类都不是NSScrollView,则确定该目标窗口中没有滚动区域。上述流程的代码实现可以如下:
步骤303,判断是否允许通过预设的调用接口对该滚动条的值进行修改,若是,进入步骤304,否则,进入步骤308。
其中,该步骤303的判断过程与上述图1所述实施例中的步骤102类似,此处不再赘述。
步骤304,将目标窗口的滚动条的当前值保存为该目标窗口的滚动条的恢复目标值。
步骤305,通过该调用接口,从初始值开始,按照预设的更新方式对该滚动条的值进行多次更新,每次更新后截取该目标窗口中的可见区域的截屏图像。
步骤306,将每次更新滚动条的值之后截取的截屏图像进行拼接,获得该目标窗口的完整界面的滚动截屏图像。
步骤307,将目标窗口的滚动条的值设置为恢复目标值。
上述步骤304至步骤307的实现过程可以参考上述图1所示实施例中的步骤103至步骤106下的描述,此处不再赘述。
步骤308,截取目标窗口中的可见区域的截屏图像。
若上述步骤302中判断该目标窗口不具有滚动区域,或者,上述步骤303中判断该目标窗口的滚动条的值不可修改,或者,上述目标窗口具有滚动区域,但是用户针对展示的提示信息执行确定只截取可见区域的截屏图像的操作,则滚动截屏工具只对目标窗口中当前可见区域进行截屏,并将当前可见区域的截屏图像作为最终的截屏图像。
综上所述,本发明实施例提供的截屏方法,在接收到对目标窗口的滚动截屏操作时,若检测出允许通过终端的操作系统提供的系统层调用接口对滚动条的值进行修改,则通过该调用接口,从初始值开始,按照预设的更新方式对该滚动条的值进行多次更新,每次更新后截取目标窗口中的可见区域的截屏图像,将每次更新后截取的截屏图像进行拼接,获得目标窗口的完整界面的滚动截屏图像,在此过程中,不需要目标窗口对应的应用程序对外提供用户控制滚动条的接口,只需要通过系统层接口即可以对目标窗口中的滚动条进行控制,从而实现对不提供用于控制滚动条的接口的第三方应用程序的窗口进行滚动截屏,扩展了滚动截屏的应用场景。
在本发明上述实施例中,图1或图3所示的方法可以由目标窗口对应的应用程序之外的其它应用程序执行。即上述实施例中的滚动截屏工具可以实现为目标窗口对应的应用程序之外的其它应用程序,或者,实现为该其他应用程序中的一个插件或者功能组件。比如,上述目标窗口对应的应用程序之外的其它应用程序可以是社交类应用程序,具体的,该其它应用程序可以是腾讯公司的微信应用程序或者QQ应用程序等。
图4是根据一示例性实施例示出的一种滚动截屏装置的结构方框图。该滚动截屏装置可以用于运行有第三方应用程序的终端中,以执行图1或图3任一所示实施例中的全部或者部分步骤。该滚动截屏装置可以包括:
指令接收模块401,用于接收到对终端的屏幕中显示的目标窗口的截屏指令;
其中,指令接收模块401所执行的步骤可以参考上述图1所示实施例中的步骤101或图3所示实施例中的步骤301下的描述,此处不再赘述。
修改检测模块402,用于当所述目标窗口中包含滚动条时,检测是否允许通过预设的调用接口对所述滚动条的值进行修改,所述调用接口是所述终端的操作系统提供的系统层接口;
更新模块403,用于当所述修改检测模块的检测结果为允许通过所述调用接口对所述滚动条的值进行修改时,从初始值开始,按照预设的更新方式对所述滚动条的值进行多次更新;
截屏模块404,用于在所述更新模块每次更新后截取所述目标窗口中的可见区域的截屏图像;
其中,截屏模块404所执行的步骤可以参考上述图1所示实施例中的步骤104或图3所示实施例中的步骤305下的相关描述,此处不再赘述。
拼接模块405,用于将所述截屏模块在所述更新模块每次更新后截取的截屏图像进行拼接,获得所述目标窗口的完整界面的滚动截屏图像。
其中,拼接模块405所执行的步骤可以参考上述图1所示实施例中的步骤105或图3所示实施例中的步骤306下的相关描述,此处不再赘述。
可选的,所述操作系统为OS X系统,所述更新模块403,用于通过用户界面对象属性获取接口AXUIElementCopyAttributeValue,从初始值开始按照预设的更新方式对所述滚动条的值进行多次更新。
其中,更新模块403所执行的步骤可以参考上述图1所示实施例中的步骤104或图3所示实施例中的步骤305下的相关描述,此处不再赘述。
可选的,所述修改检测模块402,包括:
获取单元,用于获取所述滚动条的类名、所述调用接口的启用信息以及所述滚动条的设置信息,所述调用接口的启用信息用于指示所述调用接口是否启用,所述滚动条的设置信息用于指示所述滚动条的值是否允许被修改;
确定单元,用于当所述滚动条的类名为指定类名,所述调用接口的启用信息指示所述调用接口已启用,且所述滚动条的设置信息指示所述滚动条的值允许被修改时,确定允许通过所述调用接口对所述滚动条的值进行修改。
其中,修改检测模块402中各单元所执行的步骤可以参考图1所示实施例中的步骤102下的描述,此处不再赘述。
可选的,所述装置还包括:
对象类检测模块,用于在所述修改检测模块402检测是否允许通过预设的调用接口对所述滚动条的值进行修改之前,检测所述目标窗口中显示的对象的类型是否为指定对象类;
滚动条确定模块,用于当所述对象类检测模块的检测结果为所述目标窗口中显示的对象的类型为指定对象类时,确定所述目标窗口中包含滚动条。
其中,对象类检测模块和滚动条确定模块所执行的步骤可以参考图3所示实施例中的步骤302下的描述,此处不再赘述。
可选的,当终端的操作系统为OS X系统时,指定对象类为NSScrollView。
可选的,所述装置设置于所述目标窗口对应的应用程序之外的其它应用程序中。
综上所述,本发明实施例提供的滚动截屏装置,在接收到对目标窗口的滚动截屏操作时,若检测出允许通过终端的操作系统提供的系统层调用接口对滚动条的值进行修改,则通过该调用接口,从初始值开始,按照预设的更新方式对该滚动条的值进行多次更新,每次更新后截取目标窗口中的可见区域的截屏图像,将每次更新后截取的截屏图像进行拼接,获得目标窗口的完整界面的滚动截屏图像,在此过程中,不需要目标窗口对应的应用程序对外提供用户控制滚动条的接口,只需要通过系统层接口即可以对目标窗口中的滚动条进行控制,从而实现对不提供用于控制滚动条的接口的第三方应用程序的窗口进行滚动截屏,扩展了滚动截屏的应用场景。
图5是根据一示例性实施例示出的一种终端500的结构示意图。本发明实施例中的终端500可以包括一个或多个如下组成部分:用于执行计算机程序指令以完成各种流程和方法的处理器,用于信息和存储程序指令随机接入存储器(RAM)和只读存储器(ROM),用于存储数据和信息的存储器,I/O设备,界面,天线等。具体来讲:
终端500可以包括RF(Radio Frequency,射频)电路510、存储器520、输入单元530、显示单元540、传感器550、音频电路560、WiFi(wireless fidelity,无线保真)模块570、处理器580、电源582、摄像头590等部件。本领域技术人员可以理解,图5中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图5对终端500的各个构成部件进行具体的介绍:
RF电路510可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器580处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路510还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobilecommunication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband CodeDivision Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
存储器520可用于存储软件程序以及模块,处理器580通过运行存储在存储器520的软件程序以及模块,从而执行终端500的各种功能应用以及数据处理。存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端500的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元530可用于接收输入的数字或字符信息,以及产生与终端500的用户设置以及功能控制有关的键信号输入。具体地,输入单元530可包括触控面板531以及其他输入设备532。触控面板531,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板531上或在触控面板531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器580,并能接收处理器580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板531。除了触控面板531,输入单元530还可以包括其他输入设备532。具体地,其他输入设备532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元540可用于显示由用户输入的信息或提供给用户的信息以及终端500的各种菜单。显示单元540可包括显示面板541,可选的,可以采用LCD(Liquid CrystalDisplay,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板541。进一步的,触控面板531可覆盖显示面板541,当触控面板531检测到在其上或附近的触摸操作后,传送给处理器580以确定触摸事件的类型,随后处理器580根据触摸事件的类型在显示面板541上提供相应的视觉输出。虽然在图5中,触控面板531与显示面板541是作为两个独立的部件来实现终端500的输入和输入功能,但是在某些实施例中,可以将触控面板531与显示面板541集成而实现终端500的输入和输出功能。
终端500还可包括至少一种传感器550,比如陀螺仪传感器、磁感应传感器、光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板541的亮度,接近传感器可在终端500移动到耳边时,关闭显示面板541和/或背光。作为运动传感器的一种,加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端500还可配置的气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路560、扬声器581,传声器562可提供用户与终端500之间的音频接口。音频电路560可将接收到的音频数据转换后的电信号,传输到扬声器561,由扬声器561转换为声音信号输出;另一方面,传声器562将收集的声音信号转换为电信号,由音频电路560接收后转换为音频数据,再将音频数据输出处理器580处理后,经RF电路510以发送给比如另一终端,或者将音频数据输出至存储器520以便进一步处理。
WiFi属于短距离无线传输技术,终端500通过WiFi模块570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图5示出了WiFi模块570,但是可以理解的是,其并不属于终端500的必须构成,完全可以根据需要在不改变公开的本质的范围内而省略。
处理器580是终端500的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器520内的数据,执行终端500的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器580可包括一个或多个处理单元;优选的,处理器580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器580中。
终端500还包括给各个部件供电的电源582(比如电池),优选的,电源可以通过电源管理系统与处理器580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
摄像头590一般由镜头、图像传感器、接口、数字信号处理器、CPU、显示屏幕等组成。其中,镜头固定在图像传感器的上方,可以通过手动调节镜头来改变聚焦;图像传感器相当于传统相机的“胶卷”,是摄像头采集图像的心脏;接口用于把摄像头利用排线、板对板连接器、弹簧式连接方式与终端主板连接,将采集的图像发送给所述存储器520;数字信号处理器通过数学运算对采集的图像进行处理,将采集的模拟图像转换为数字图像并通过接口发送给存储器520。
尽管未示出,终端500还可以包括蓝牙模块等,在此不再赘述。
终端500除了包括一个或者多个处理器580,还包括有存储器,以及一个或者多个模块,其中一个或者多个模块存储于存储器中,并被配置成由一个或者多个处理器执行,以实现上述图1或图3所示方法的全部或者部分步骤。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由服务器的处理器执行以完成本发明各个实施例所示的滚动截屏方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (12)

1.一种滚动截屏方法,其特征在于,所述方法包括:
接收对终端的屏幕中显示的目标窗口的截屏指令;
当所述目标窗口中包含滚动条时,检测是否允许通过预设的调用接口对所述滚动条的值进行修改,所述调用接口是所述终端的操作系统提供的系统层接口;
若检测结果为允许通过所述调用接口对所述滚动条的值进行修改,则通过所述调用接口,从初始值开始,按照预设的更新方式对所述滚动条的值进行多次更新,每次更新后截取所述目标窗口中的可见区域的截屏图像;
将每次更新后截取的所述截屏图像进行拼接,获得所述目标窗口的完整界面的滚动截屏图像。
2.根据权利要求1所述的方法,其特征在于,所述操作系统为OS X系统,所述通过所述调用接口,从初始值开始,按照预设的更新方式对所述滚动条的值进行多次更新,包括:
通过用户界面对象属性获取接口AXUIElementCopyAttributeValue,从初始值开始按照预设的更新方式对所述滚动条的值进行多次更新。
3.根据权利要求1或2所述的方法,其特征在于,所述当所述目标窗口中包含滚动条时,检测是否允许通过预设的调用接口对所述滚动条的值进行修改,包括:
获取所述滚动条的类名、所述调用接口的启用信息以及所述滚动条的设置信息,所述调用接口的启用信息用于指示所述调用接口是否启用,所述滚动条的设置信息用于指示所述滚动条的值是否允许被修改;
当所述滚动条的类名为指定类名,所述调用接口的启用信息指示所述调用接口已启用,且所述滚动条的设置信息指示所述滚动条的值允许被修改时,确定允许通过所述调用接口对所述滚动条的值进行修改。
4.根据权利要求1或2所述的方法,其特征在于,所述检测是否允许通过预设的调用接口对所述滚动条的值进行修改之前,所述方法还包括:
检测所述目标窗口中显示的对象的类型是否为指定对象类;
若检测结果为所述目标窗口中显示的对象的类型为所述指定对象类,则确定所述目标窗口中包含所述滚动条。
5.根据权利要求4所述的方法,其特征在于,当所述操作系统为OS X系统时,所述指定对象类为NSScrollView。
6.根据权利要求1至5任一所述的方法,其特征在于,所述方法由所述目标窗口对应的应用程序之外的其它应用程序执行。
7.一种滚动截屏装置,其特征在于,所述装置包括:
指令接收模块,用于接收到对终端的屏幕中显示的目标窗口的截屏指令;
修改检测模块,用于当所述目标窗口中包含滚动条时,检测是否允许通过预设的调用接口对所述滚动条的值进行修改,所述调用接口是所述终端的操作系统提供的系统层接口;
更新模块,用于当所述修改检测模块的检测结果为允许通过所述调用接口对所述滚动条的值进行修改时,通过所述调用接口,从初始值开始,按照预设的更新方式对所述滚动条的值进行多次更新;
截屏模块,用于在所述更新模块每次更新后截取所述目标窗口中的可见区域的截屏图像;
拼接模块,用于将所述截屏模块在所述更新模块每次更新后截取的所述截屏图像进行拼接,获得所述目标窗口的完整界面的滚动截屏图像。
8.根据权利要求7所述的装置,其特征在于,所述操作系统为OS X系统,所述更新模块,用于
通过用户界面对象属性获取接口AXUIElementCopyAttributeValue,从初始值开始按照预设的更新方式对所述滚动条的值进行多次更新。
9.根据权利要求7或8所述的装置,其特征在于,所述修改检测模块,包括:
获取单元,用于获取所述滚动条的类名、所述调用接口的启用信息以及所述滚动条的设置信息,所述调用接口的启用信息用于指示所述调用接口是否启用,所述滚动条的设置信息用于指示所述滚动条的值是否允许被修改;
确定单元,用于当所述滚动条的类名为指定类名,所述调用接口的启用信息指示所述调用接口已启用,且所述滚动条的设置信息指示所述滚动条的值允许被修改时,确定允许通过所述调用接口对所述滚动条的值进行修改。
10.根据权利要求7或8所述的装置,其特征在于,所述装置还包括:
对象类检测模块,用于在所述修改检测模块检测是否允许通过预设的调用接口对所述滚动条的值进行修改之前,检测所述目标窗口中显示的对象的类型是否为指定对象类;
滚动条确定模块,用于当所述对象类检测模块的检测结果为所述目标窗口中显示的对象的类型为所述指定对象类时,确定所述目标窗口中包含滚动条。
11.根据权利要求10所述的装置,其特征在于,当所述终端的操作系统为OS X系统时,所述指定对象类为NSScrollView。
12.根据权利要求7至11任一所述的装置,其特征在于,所述装置设置于所述目标窗口对应的应用程序之外的其它应用程序中。
CN201610903398.9A 2016-10-17 2016-10-17 滚动截屏方法及装置 Active CN107957841B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610903398.9A CN107957841B (zh) 2016-10-17 2016-10-17 滚动截屏方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610903398.9A CN107957841B (zh) 2016-10-17 2016-10-17 滚动截屏方法及装置

Publications (2)

Publication Number Publication Date
CN107957841A true CN107957841A (zh) 2018-04-24
CN107957841B CN107957841B (zh) 2021-03-16

Family

ID=61953273

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610903398.9A Active CN107957841B (zh) 2016-10-17 2016-10-17 滚动截屏方法及装置

Country Status (1)

Country Link
CN (1) CN107957841B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829315A (zh) * 2018-05-24 2018-11-16 上海爱优威软件开发有限公司 一种基于终端控制的图像合成方法及系统
CN110633038A (zh) * 2019-08-29 2019-12-31 维沃移动通信有限公司 一种截屏方法及电子设备
CN111263231A (zh) * 2018-11-30 2020-06-09 西安诺瓦星云科技股份有限公司 窗口设置方法、装置、系统和计算机可读介质
CN114373186A (zh) * 2022-01-11 2022-04-19 北京新学堂网络科技有限公司 一种社交软件信息交互方法、装置和介质
CN114489429A (zh) * 2022-01-29 2022-05-13 青岛海信移动通信技术股份有限公司 一种终端设备、长截屏方法和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927178A (zh) * 2014-04-18 2014-07-16 长沙裕邦软件开发有限公司 一种截图方法及截图装置
CN104133683A (zh) * 2014-07-31 2014-11-05 上海二三四五网络科技股份有限公司 一种截取屏幕图片的方法及装置
CN105045485A (zh) * 2015-07-06 2015-11-11 魅族科技(中国)有限公司 一种屏幕截图方法及移动终端
CN105094617A (zh) * 2015-08-24 2015-11-25 北京锤子数码科技有限公司 一种截屏方法及装置
EP3051398A1 (en) * 2013-11-04 2016-08-03 ZTE Corporation Terminal screenshot method and device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3051398A1 (en) * 2013-11-04 2016-08-03 ZTE Corporation Terminal screenshot method and device
CN103927178A (zh) * 2014-04-18 2014-07-16 长沙裕邦软件开发有限公司 一种截图方法及截图装置
CN104133683A (zh) * 2014-07-31 2014-11-05 上海二三四五网络科技股份有限公司 一种截取屏幕图片的方法及装置
CN105045485A (zh) * 2015-07-06 2015-11-11 魅族科技(中国)有限公司 一种屏幕截图方法及移动终端
CN105094617A (zh) * 2015-08-24 2015-11-25 北京锤子数码科技有限公司 一种截屏方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829315A (zh) * 2018-05-24 2018-11-16 上海爱优威软件开发有限公司 一种基于终端控制的图像合成方法及系统
CN111263231A (zh) * 2018-11-30 2020-06-09 西安诺瓦星云科技股份有限公司 窗口设置方法、装置、系统和计算机可读介质
CN110633038A (zh) * 2019-08-29 2019-12-31 维沃移动通信有限公司 一种截屏方法及电子设备
CN114373186A (zh) * 2022-01-11 2022-04-19 北京新学堂网络科技有限公司 一种社交软件信息交互方法、装置和介质
CN114489429A (zh) * 2022-01-29 2022-05-13 青岛海信移动通信技术股份有限公司 一种终端设备、长截屏方法和存储介质
CN114489429B (zh) * 2022-01-29 2024-04-19 青岛海信移动通信技术有限公司 一种终端设备、长截屏方法和存储介质

Also Published As

Publication number Publication date
CN107957841B (zh) 2021-03-16

Similar Documents

Publication Publication Date Title
CN108845853B (zh) 一种应用程序启动方法及移动终端
CN105824641B (zh) 图形码显示方法及装置
CN110096326B (zh) 一种截屏方法、终端设备及计算机可读存储介质
CN109525874B (zh) 一种截屏方法及终端设备
CN111142991A (zh) 一种应用功能页面显示方法及电子设备
US20170147187A1 (en) To-be-shared interface processing method, and terminal
CN107731146A (zh) 亮度调节方法及相关产品
CN107957841A (zh) 滚动截屏方法及装置
CN108763317B (zh) 一种辅助选取图片的方法和终端设备
CN111142723B (zh) 图标移动方法及电子设备
CN109388304A (zh) 一种截屏方法及终端设备
CN107707762A (zh) 一种应用程序操作方法及移动终端
CN104820546B (zh) 功能信息展示方法和装置
CN107632768A (zh) 按键使用方法、终端及计算机可读存储介质
CN107592416A (zh) 语音信息发送方法、终端及计算机可读存储介质
CN108228034A (zh) 移动终端的控制方法、移动终端及计算机可读存储介质
CN109101327B (zh) 一种轻应用的切换及移动终端
CN108009033A (zh) 模拟触控方法、装置和移动终端
CN108174109B (zh) 一种拍照方法及移动终端
CN108196781B (zh) 界面的显示方法和移动终端
CN108920054A (zh) 一种应用推荐方法及终端
CN108108113A (zh) 网页切换方法及装置
CN104239005B (zh) 图形对齐方法及装置
CN109491741B (zh) 一种切换背景皮肤的方法及终端
CN108628534B (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