CN113742026B - 通过网格矩阵绘图机制实现云应用专属窗口水印的方法 - Google Patents
通过网格矩阵绘图机制实现云应用专属窗口水印的方法 Download PDFInfo
- Publication number
- CN113742026B CN113742026B CN202111296790.9A CN202111296790A CN113742026B CN 113742026 B CN113742026 B CN 113742026B CN 202111296790 A CN202111296790 A CN 202111296790A CN 113742026 B CN113742026 B CN 113742026B
- Authority
- CN
- China
- Prior art keywords
- window
- watermark
- screen
- grid
- cloud application
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
本发明公开了通过网格矩阵绘图机制实现云应用专属窗口水印的方法,包括以下步骤:S1、通过全屏置顶窗口的网格矩阵绘图方式对屏幕区域进行网格化,并在内存中构建一个矩阵数据结构;S2、检测每个单元网格中心坐标位置所属的窗口性质,并判断其是否有施加或更新水印效果的需求;S3、按照预设需求对指定屏幕区域进行水印绘制,实现云应用专属窗口的水印绘制。有益效果可以解决远程应用窗口与本地窗口出现在同一屏幕上时,由于无法区别对待两种不同性质的数据界面,而导致无法满足对指定窗口数据施加水印进行保护的需求,从而可以有效地提高云应用产品软件前端用户的交互体验,保护特定窗口数据信息的安全。
Description
技术领域
本发明涉及云应用前端技术领域,具体来说,涉及通过网格矩阵绘图机制实现云应用专属窗口水印的方法。
背景技术
在基于云虚拟化技术开发的云应用产品软件中,通常需要通过remoteapp机制将远程办公桌面上的应用窗口显示在本地,并提供键盘鼠标等交互手段,实现与本地窗口的完全融合,既满足远程办公的性能体验,又能达到公司业务数据安全的效果。
但是由于远程应用窗口与本地窗口完全融为一体,出现在了同一屏幕上;当远程应用窗口需要施加水印进行保护时,如果对整个屏幕施加水印会影响本地窗口,无法区别对待两种不同性质的数据界面。因此如何精确地区分安全保密数据和普通数据,从而仅针对远程应用窗口进行水印绘制,就需要屏幕水印机制具有进一步甄别屏幕上的窗口属性的能力。由于远程应用窗口在使用过程中会被拖动、前置或者后置,与本地窗口产生重叠、覆盖的现象,这就给施加水印的目标窗口的性质甄别带来困难,因此需要更为动态、高效、带有窗口性质识别能力的水印机制,它不同于整屏的常见水印机制,仅针对动态变化的特殊性质窗口。
发明内容
针对相关技术中的问题,本发明提出通过网格矩阵绘图机制实现云应用专属窗口水印的方法,以克服现有相关技术所存在的上述技术问题。
为此,本发明采用的具体技术方案如下:
通过网格矩阵绘图机制实现云应用专属窗口水印的方法,该方法包括以下步骤:
S1、通过全屏置顶窗口的网格矩阵绘图方式对屏幕区域进行网格化,并在内存中构建一个矩阵数据结构;
S2、检测每个单元网格中心坐标位置所属的窗口性质,并判断其是否有施加或更新水印效果的需求;
S3、按照预设需求对指定屏幕区域进行水印绘制,实现云应用专属窗口的水印绘制。
进一步的,所述S1中对屏幕区域进行网格化时按照合理的颗粒尺寸执行。
进一步的,所述S2中检测每个单元网格中心坐标位置所属的窗口性质还包括以下步骤:
检测发现窗口的位置及层次变化,并将保存的网格化处理结果进行实时重新计算,保持高效的动态更新。
进一步的,所述S2中更新水印效果的触发时机包括以下三种中的任意一种:
第一种,首次启动屏幕水印进程模块,初始化全屏水印窗口;
第二种,主动监视屏幕窗口的变化,当发生窗口前置、最大/小化、位置发生变化时,通过发送窗口事件触发水印更新;
第三种,设置定时器,周期性更新当前窗口水印进程。
进一步的,所述S3中按照预设需求对指定屏幕区域进行水印绘制采用的函数为:Watermark/FormWatermark.cs:UpdateWatermark。
进一步的,所述S3中按照预设需求对指定屏幕区域进行水印绘制包括以下步骤:
更新屏幕网格数据,并依次遍历每个单元网格的中心点,获取位于该中心点上的窗口句柄;
判断窗口是否属于远程应用窗口,并记录该中心点的窗口性质与上次相比是否发生过变化;
当发生网格矩阵变化则将预先制备的完整水印图案克隆一份,并在克隆后的水印图案上按照网格标识的变化将不需要水印的单元网格中的水印擦除,保留需要水印的单元网格;
让水印窗口失效,并触发操作系统重新绘制窗口。
进一步的,所述窗口句柄的获取方法包括:使用FindWindow函数获取窗口句柄、获取所有顶层窗口以及它们的子窗口及使用GetDesktopWindow和GetNextWindow函数获取所有的子窗口。
进一步的,所述预先制备的完整水印图案的生成方法包括以下步骤:
水印窗口获取终端上传的水印生成请求和应用程序窗口的相关参数;
水印窗口将水印生成请求上传至服务端,并获取服务端下发的基于水印生成请求生成屏幕水印。
进一步的,所述相关参数包括位置信息和尺寸信息;所述水印生成请求包括时间信息和溯源对象ID。
进一步的,该方法还包括:对于多个显示器屏幕的场景,则创建多份屏幕水印窗口并对应每个显示器,且每个屏幕水印窗口的处理机制相同。
本发明的有益效果为:通过对全屏置顶窗口的网格矩阵绘图方式,对屏幕区域进行网格化,再通过检测每个单元网格中心坐标位置所属的窗口数据性质,判断其是否有施加或更新水印效果的要求,从而按需对指定屏幕区域进行水印的绘制;通过本发明可以解决远程应用窗口与本地窗口出现在同一屏幕上时,由于无法区别对待两种不同性质的数据界面,而导致无法满足对指定窗口数据施加水印进行保护的需求,从而可以有效地提高云应用产品软件前端用户的交互体验,保护特定窗口数据信息的安全。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的通过网格矩阵绘图机制实现云应用专属窗口水印的方法的结构流程图;
图2是根据本发明实施例的通过网格矩阵绘图机制实现云应用专属窗口水印的方法的实现原理示意图。
具体实施方式
为进一步说明各实施例,本发明提供有附图,这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理,配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点,图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
根据本发明的实施例,提供了通过网格矩阵绘图机制实现云应用专属窗口水印的方法,且本发明技术方案的核心代码路径为:Watermark/FormWatermark.cs(Watermark工程位于gitlab的Production-RDP下)。代码将会被编译成Watermark.exe,交给客户端UI去负责启动。
现结合附图和具体实施方式对本发明进一步说明,如图1-2所示,根据本发明实施例的通过网格矩阵绘图机制实现云应用专属窗口水印的方法,该方法包括以下步骤:
S1、通过全屏置顶窗口的网格矩阵绘图方式对屏幕区域进行网格化,并在内存中构建一个矩阵数据结构;
其中,所述S1中对屏幕区域进行网格化时按照合理的颗粒尺寸执行。
S2、检测每个单元网格中心坐标位置所属的窗口性质,并判断其是否有施加或更新水印效果的需求;
其中,所述S2中更新水印效果的触发时机包括以下三种中的任意一种:
第一种,首次启动屏幕水印进程模块,初始化全屏水印窗口;
其中,首次启动水印功能进程模块时的模块地址如下:Watermark/Program.cs;
第二种,主动监视屏幕窗口的变化,当发生窗口前置、最大/小化、位置发生变化时,通过发送窗口事件触发水印更新;
其中,对窗口变化进行监视功能的进程模块的模块地址如下:Watermark/HookManager.cs:EventCallback;
第三种,设置定时器,周期性更新当前窗口水印进程;
其中,水印刷新机制定时器功能的进程模块的模块地址如下:Watermark/FormWatermark.cs:watermarkTimer_Tick。
此外,所述S2中检测每个单元网格中心坐标位置所属的窗口性质还包括以下步骤:
检测发现窗口的位置及层次变化,并将保存的网格化处理结果进行实时重新计算,保持高效的动态更新。
S3、按照预设需求对指定屏幕区域进行水印绘制,实现云应用专属窗口的水印绘制。
其中,所述S3中按照预设需求对指定屏幕区域进行水印绘制采用的函数为:Watermark/FormWatermark.cs:UpdateWatermark。
具体的,所述S3中按照预设需求对指定屏幕区域进行水印绘制包括以下步骤:
更新屏幕网格数据,并依次遍历每个单元网格的中心点,获取位于该中心点上的窗口句柄;
所述窗口句柄的获取方法包括:使用FindWindow函数获取窗口句柄、获取所有顶层窗口以及它们的子窗口及使用GetDesktopWindow和GetNextWindow函数获取所有的子窗口。
判断窗口是否属于远程应用窗口,并记录该中心点的窗口性质与上次相比是否发生过变化;
当发生网格矩阵变化则将预先制备的完整水印图案克隆一份,并在克隆后的水印图案上按照网格标识的变化将不需要水印的单元网格中的水印擦除,保留需要水印的单元网格;
所述预先制备的完整水印图案的生成方法包括以下步骤:水印窗口获取终端上传的水印生成请求和应用程序窗口的相关参数,所述水印生成请求包括时间信息和溯源对象ID,所述相关参数包括位置信息和尺寸信息;水印窗口将水印生成请求上传至服务端,并获取服务端下发的基于水印生成请求生成屏幕水印。
其中,应用程序预先封装有水印生成模块,水印生成模块用于执行服务端发送的水印生成指令;封装即在应用程序的原始程序文件的基础之上添加水印生成模块的封装配置文件。
让水印窗口失效,并触发操作系统重新绘制窗口。
本实施例中,对于多个显示器屏幕的场景,则创建多份屏幕水印窗口并对应每个显示器,且每个屏幕水印窗口的处理机制相同。
综上所述,借助于本发明的上述技术方案,通过对全屏置顶窗口的网格矩阵绘图方式,对屏幕区域进行网格化,再通过检测每个单元网格中心坐标位置所属的窗口数据性质,判断其是否有施加或更新水印效果的要求,从而按需对指定屏幕区域进行水印的绘制;通过本发明可以解决远程应用窗口与本地窗口出现在同一屏幕上时,由于无法区别对待两种不同性质的数据界面,而导致无法满足对指定窗口数据施加水印进行保护的需求,从而可以有效地提高云应用产品软件前端用户的交互体验,保护特定窗口数据信息的安全。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.通过网格矩阵绘图机制实现云应用专属窗口水印的方法,其特征在于,该方法包括以下步骤:
S1、通过全屏置顶窗口的网格矩阵绘图方式对屏幕区域进行网格化,并在内存中构建一个矩阵数据结构;
S2、检测每个单元网格中心坐标位置所属的窗口性质,并判断其是否有施加或更新水印效果的需求;
S3、按照预设需求对指定屏幕区域进行水印绘制,实现云应用专属窗口的水印绘制;
其中,所述S3中按照预设需求对指定屏幕区域进行水印绘制包括以下步骤:
更新屏幕网格数据,并依次遍历每个单元网格的中心点,获取位于该中心点上的窗口句柄;
判断窗口是否属于远程应用窗口,并记录该中心点的窗口性质与上次相比是否发生过变化;
当发生网格矩阵变化则将预先制备的完整水印图案克隆一份,并在克隆后的水印图案上按照网格标识的变化将不需要水印的单元网格中的水印擦除,保留需要水印的单元网格;
让水印窗口失效,并触发操作系统重新绘制窗口。
2.根据权利要求1所述的通过网格矩阵绘图机制实现云应用专属窗口水印的方法,其特征在于,所述S1中对屏幕区域进行网格化时按照合理的颗粒尺寸执行。
3.根据权利要求1所述的通过网格矩阵绘图机制实现云应用专属窗口水印的方法,其特征在于,所述S2中检测每个单元网格中心坐标位置所属的窗口性质还包括以下步骤:
检测发现窗口的位置及层次变化,并将保存的网格化处理结果进行实时重新计算,保持高效的动态更新。
4.根据权利要求1所述的通过网格矩阵绘图机制实现云应用专属窗口水印的方法,其特征在于,所述S2中更新水印效果的触发时机包括以下三种中的任意一种:
第一种,首次启动屏幕水印进程模块,初始化全屏水印窗口;
第二种,主动监视屏幕窗口的变化,当发生窗口前置、最大/小化、位置发生变化时,通过发送窗口事件触发水印更新;
第三种,设置定时器,周期性更新当前窗口水印进程。
5.根据权利要求1所述的通过网格矩阵绘图机制实现云应用专属窗口水印的方法,其特征在于,所述S3中按照预设需求对指定屏幕区域进行水印绘制采用的函数为:Watermark/FormWatermark.cs:UpdateWatermark。
6.根据权利要求1所述的通过网格矩阵绘图机制实现云应用专属窗口水印的方法,其特征在于,所述窗口句柄的获取方法包括:使用FindWindow函数获取窗口句柄、获取所有顶层窗口以及它们的子窗口及使用GetDesktopWindow和GetNextWindow函数获取所有的子窗口。
7.根据权利要求1所述的通过网格矩阵绘图机制实现云应用专属窗口水印的方法,其特征在于,所述预先制备的完整水印图案的生成方法包括以下步骤:
水印窗口获取终端上传的水印生成请求和应用程序窗口的相关参数;
水印窗口将水印生成请求上传至服务端,并获取服务端下发的基于水印生成请求生成屏幕水印。
8.根据权利要求7所述的通过网格矩阵绘图机制实现云应用专属窗口水印的方法,其特征在于,所述相关参数包括位置信息和尺寸信息;所述水印生成请求包括时间信息和溯源对象ID。
9.根据权利要求1所述的通过网格矩阵绘图机制实现云应用专属窗口水印的方法,其特征在于,该方法还包括:对于多个显示器屏幕的场景,则创建多份屏幕水印窗口并对应每个显示器,且每个屏幕水印窗口的处理机制相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111296790.9A CN113742026B (zh) | 2021-11-04 | 2021-11-04 | 通过网格矩阵绘图机制实现云应用专属窗口水印的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111296790.9A CN113742026B (zh) | 2021-11-04 | 2021-11-04 | 通过网格矩阵绘图机制实现云应用专属窗口水印的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113742026A CN113742026A (zh) | 2021-12-03 |
CN113742026B true CN113742026B (zh) | 2022-02-11 |
Family
ID=78727233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111296790.9A Active CN113742026B (zh) | 2021-11-04 | 2021-11-04 | 通过网格矩阵绘图机制实现云应用专属窗口水印的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113742026B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452570A (zh) * | 2008-12-22 | 2009-06-10 | 武汉大学 | 基于网格的矢量空间数据数字水印方法 |
CN109166073A (zh) * | 2018-08-01 | 2019-01-08 | 清华大学 | 在三维网格模型中嵌入与提取水印方法及装置 |
CN112685109A (zh) * | 2020-12-03 | 2021-04-20 | 南京机敏软件科技有限公司 | 一种动态标识与识别远程应用窗口的方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110084006A (zh) * | 2019-03-29 | 2019-08-02 | 合肥高维数据技术有限公司 | 一种应用程序窗口水印生成方法及系统 |
-
2021
- 2021-11-04 CN CN202111296790.9A patent/CN113742026B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452570A (zh) * | 2008-12-22 | 2009-06-10 | 武汉大学 | 基于网格的矢量空间数据数字水印方法 |
CN109166073A (zh) * | 2018-08-01 | 2019-01-08 | 清华大学 | 在三维网格模型中嵌入与提取水印方法及装置 |
CN112685109A (zh) * | 2020-12-03 | 2021-04-20 | 南京机敏软件科技有限公司 | 一种动态标识与识别远程应用窗口的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113742026A (zh) | 2021-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11412292B2 (en) | Video processing method, video processing device, and storage medium | |
US11314568B2 (en) | Message processing method and apparatus, storage medium, and computer device | |
US11644939B1 (en) | Managing application windows of applications from different servers within a same browser window on a user device | |
TW201635128A (zh) | 界面顯示方法、裝置及電子設備 | |
EP3161598A1 (en) | Light dismiss manager | |
CN113032080A (zh) | 页面实现方法、应用程序、电子设备及存储介质 | |
WO2022134361A1 (zh) | 屏幕水印显示方法、装置、电子设备及存储介质 | |
CN102449604B (zh) | 虚拟桌面中分布处理的方法和系统 | |
CN114748873B (zh) | 界面渲染方法、装置、设备和存储介质 | |
CN111367518A (zh) | 页面布局方法、装置、计算设备及计算机存储介质 | |
CN107391914B (zh) | 一种参数显示方法、装置及设备 | |
CN111553172A (zh) | 翻译文案展示方法、装置、系统及存储介质 | |
CN114238877A (zh) | 云桌面的水印生成方法、装置及电子设备 | |
CN113742026B (zh) | 通过网格矩阵绘图机制实现云应用专属窗口水印的方法 | |
CN110838083A (zh) | 一种水印添加方法、装置、设备及存储介质 | |
CN107066180B (zh) | 一种基于vr操作的任务生成方法及其系统 | |
CN114911402A (zh) | 远程应用和本地系统间的拖拽交互方法及系统 | |
CN109976849B (zh) | 基于编程语言将web组件悬浮于桌面的方法和电子设备 | |
CN105681903A (zh) | 一种用户界面呈现的方法及装置 | |
CN107272920B (zh) | 变更按键与字符的对应关系的方法及装置 | |
CN111158566A (zh) | 一种事件处理方法、装置、设备和存储介质 | |
CN111625379A (zh) | 一种信息处理的方法、装置、电子设备和可读存储介质 | |
CN113885861B (zh) | 跨系统的组件复用的方法及装置 | |
CN112799578B (zh) | 键盘绘制方法、装置、电子设备和存储介质 | |
CN114518924B (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 |