CN109324844A - 一种检测窗口界面的方法、装置及计算机设备 - Google Patents
一种检测窗口界面的方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN109324844A CN109324844A CN201811155216.XA CN201811155216A CN109324844A CN 109324844 A CN109324844 A CN 109324844A CN 201811155216 A CN201811155216 A CN 201811155216A CN 109324844 A CN109324844 A CN 109324844A
- Authority
- CN
- China
- Prior art keywords
- window interface
- thread
- window
- interception
- screenshot
- 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.)
- Pending
Links
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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请实施例提供一种检测窗口界面的方法、装置及计算机设备,方法包括:当接收到服务器发送的截图请求时,创建用于截图的线程;利用所述线程对窗口界面进行截取;将截取后的窗口界面发送至服务器,使得所述服务器能基于标准窗口界面对所述截取后的窗口界面进行检测;如此,客户端侧可以基于预先创建的用于截图的线程自动对待需要检测的窗口界面进行截取,并可以由服务器侧自动对截取后的窗口界面进行检测,来判断窗口界面是否存在问题;相对于现有技术中人工反馈问题的方式,可以提高反馈的效率,进而提高对客户端程序进行优化的效率。
Description
技术领域
本发明属于通信技术领域,尤其涉及一种检测窗口界面的方法、装置及计算机设备。
背景技术
对于客户端程序来说,由于功能的增多,版本迭代的频繁,在开发过程中很难保障每个程序都没有问题。
比如对于用户界面(UI,User Interface)来说,用户在使用时容易出现卡住,或者界面上的某些按钮产生错位的问题。而这些问题只能通过用户反馈,并将出现问题的窗口界面截图发送给开发人员,开发人员才会定位到这些问题,再寻找相应的解决对策。这种通过人工反馈、定位问题的方式,费时费力,降低了对客户端程序的优化效率。
发明内容
针对现有技术存在的问题,本发明实施例提供了一种检测窗口界面的方法、装置及计算机设备,用于解决现有技术中需借助人工辅助的方式定位UI界面出现的问题,导致整个过程费时费力,降低对客户端程序的优化效率的技术问题。
本发明实施例提供一种检测窗口界面的方法,所述方法包括:
当接收到服务器发送的截图请求时,创建用于截图的线程;
利用所述线程对窗口界面进行截取;
将截取后的窗口界面发送至服务器,使得所述服务器能基于标准窗口界面对所述截取后的窗口界面进行检测。
可选地,所述创建用于截图的线程,包括:
调用用于创建线程的函数创建所述线程;
向所述线程中传入预先设置的具有截图功能的截图函数。
可选地,所述利用所述线程对窗口界面进行截取之前,包括:
获取所述窗口界面的名称;
基于所述窗口界面的名称查找到所述窗口界面。
可选地,所述利用所述线程对所述窗口界面进行截取,包括:
利用所述线程中的截图函数创建一位图数据结构;
获取所述窗口界面的窗口句柄;
利用所述窗口句柄将所述截取后的窗口界面的位图数据写入所述位图数据结构中;
将所述位图数据结构中的所述位图数据存储至预先设置的内存变量中。
本发明实施例还提供一种检测窗口界面的装置,所述装置包括:
创建单元,用于当接收到服务器发送的截图请求时,创建用于截图的线程;
截取单元,用于利用所述线程对窗口界面进行截取;
发送单元,用于将截取后的窗口界面发送至服务器,使得所述服务器能基于标准窗口界面对所述截取后的窗口界面进行检测。
可选地,所述创建单元具体用于:
调用用于创建线程的函数创建所述线程;
向所述线程中传入预先设置的具有截图功能的截图函数。
可选地,所述截取单元具体用于:
利用所述线程对窗口界面进行截取之前,获取所述窗口界面的名称;
基于所述窗口界面的名称查找到所述窗口界面。
可选地,所述截取单元具体用于:
利用所述线程中的截图函数创建一位图数据结构;
获取所述窗口的窗口句柄;
利用所述窗口句柄将所述截取后的窗口界面的位图数据写入所述位图数据结构中;
将所述位图数据结构中的所述位图数据存储至预先设置的内存变量中。
本发明实施还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述4任一项所述的方法。
本发明实施还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述的方法。
本发明提供了一种检测窗口界面的方法、装置及计算机设备,方法包括:当接收到服务器发送的截图请求时,创建用于截图的线程;利用所述线程对窗口界面进行截取;将截取后的窗口界面发送至服务器,使得所述服务器能基于标准窗口界面对所述截取后的窗口界面进行检测;如此,客户端侧可以基于预先创建的用于截图的线程自动对待需要检测的窗口界面进行截取,并可以由服务器侧自动对截取后的窗口界面进行检测,来判断窗口界面是否存在问题;相对于现有技术中人工反馈问题的方式,可以提高反馈的效率,进而提高对客户端程序进行优化的效率。
附图说明
图1为本发明实施例一提供的检测窗口界面的方法流程示意图;
图2为本发明实施例二提供的检测窗口界面的装置结构示意图。
具体实施方式
为了解决现有技术中需借助人工辅助的方式定位窗口界面出现的问题,导致整个过程费时费力,降低对客户端程序的优化效率的技术问题,本发明提供了一种检测窗口界面的方法、装置及计算机设备,方法包括:当接收到服务器发送的截图请求时,创建用于截图的线程;利用所述线程对窗口界面进行截取;将截取后的窗口界面发送至服务器,使得所述服务器能基于标准窗口界面对所述截取后的窗口界面进行检测。
下面通过附图及具体实施例对本发明的技术方案做进一步的详细说明。
实施例一
本实施例提供一种检测窗口界面的方法,如图1所示,方法包括:
S110,当接收到服务器发送的截图请求时,创建用于截图的线程;
本步骤中,当客户端中启动后,会自动与服务器连接,登陆至服务器,当服务器需要对某个窗口界面进行检测时,则按照预先约定的协议向客户端发送截图请求。这里,预先约定的协议可以是任何格式的协议,一般包括请求协议及回应协议。比如:本实施例中请求协议的命令字(也为协议的type)为screenreq,表示的是截图请求,具体表述可以如下:
type@=screenreq/;
当客户端接收到该请求协议时,则会回应服务器已经接收到该条请求,那么会向服务器回应该条请求已经收到,回应协议的表述可以如下:
type@=screenres/;
回应协议的命令字为screenres,表示回应截图。
当客户端接收到服务器发送的截图请求时,为了确保整个截图可以流畅进行,同时不影响客户端的其他功能,会单独创建一个用于截图的线程。
作为一种可选的实施例,创建用于截图的线程,包括:
调用用于创建线程的函数创建所述线程;
向线程中传入预先设置的具有截图功能的截图函数。
具体地,调用系统中用于创建线程的API函数CreateThread创建线程,该函数的程序实现如下:
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
DWORD dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadId);
}
其中,参数lpThreadAttributes为线程属性,若该参数为NULL时则表示使用默认的设置。
参数dwStackSize为线程堆栈大小,若该参数为0时表示采用默认设置,系统会根据需要动态增加堆栈大小。
参数lpStartAddress为指向线程函数的指针。
参数lpParameter为向线程函数传递的参数。
参数dwCreationFlags为线程标志。
参数lpThreadId为线程的ID(输出参数)。
其中,本实施例中在向线程中传入预先设置的具有截图功能的截图函数时,是将截图函数赋值至给lpStartAddress这个参数的,截图函数的具体实现如下:
DWORD WINAPI ThreadProc(LPVOID lpParam){
return 0;
}
S111,利用所述线程对窗口界面进行截取;
当线程创建好之后,可以利用线程对窗口界面进行截取。
作为一种可选的实施例,利用所述线程对窗口界面进行截取之前,包括:
获取所述窗口界面的名称;
基于所述窗口界面的名称查找到所述窗口界面。
这里,若是需要对某个窗口界面进行截取,需要先获取到窗口界面的名称,才可以根据窗口界面的名称,利用窗口查找函数查找到需要进行截取的窗口界面。一般来说,窗口界面可以包括:浏览器界面,即时通信软件的聊天界面等等。窗口界面的名称可以为标题栏(比如浏览网页的标题名称)。其中,窗口查找函数的函数原型如下:
HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName);
其中,在窗口查找函数的原型中,IpClassName为指向一个指定了类名的空结束字符串。
参数IpWindowName为指向一个指定了窗口名称的空结束字符串。
本实施例中窗口查找函数为:
HWND hWnd=FindWindow(cWindowName,cWindowName);
其中,hWnd为待截取的窗口界面。
查找到该窗口界面后,就可以利用步骤S110创建的线程对窗口界面进行截取了。
作为一种可选的实施例,利用所述线程对所述窗口界面进行截取,包括:
利用所述线程中的截图函数创建一位图数据结构;
获取所述窗口界面的窗口句柄;
利用所述窗口句柄将所述截取后的窗口界面的位图数据写入所述位图数据结构中;
将所述位图数据结构中的所述位图数据存储至预先设置的内存变量中。
具体地,创建一位图数据结构BitmapInfo的程序实现如下:
BITMAPINFO stBitmapInfo={0};
位图数据结构创建好之后,利用窗口句柄获取函数获取窗口界面的窗口句柄DC,实现如下:
HDC hWndDC=GetDC(hWnd);
获取到窗口句柄后,需要将该句柄转换为与设备上下文环境兼容的窗口句柄,实现如下:
HDC hScreenDC=CreateCompatibleDC(hWndDC)
然后利用与设备上下文环境兼容的窗口句柄HDC将所述截取后的窗口界面的位图数据写入所述位图数据结构中,位图数据结构如下:
其中,nHeight是截取后的窗口界面的高度,nWidth则是截取后的窗口界面的宽度。
将截取后的窗口界面的位图数据写入所述位图数据结构中后,为了可以显示截取后的窗口界面,本实施例还需要利用位图函数CreateDIBSection将位图数据结构中的所述位图数据存储至预先设置的内存变量中。其中,CreateDIBSection原型如下:
其中hdc为设备环境句柄。
pbmi为指向BITMAPINFO位图结构的指针。
iUsage为指定由pbmi参数指定的BITMAPINFO结构中的成员bmiColors数组包含的数据类型。
ppvBits为接收一个指向位图位数据值的指针。
hSection为文件映射对象的句柄。函数将使用该对象来创建位图(与设备无关位图)。该参数可以是NULL。
dwOffset为指定从hSection引用的文件映射对象开始处算起的偏移量,超过这个偏移量的地方就是位图的位数据值开始存放的地方。当hSection为NULL时忽略该值。
本实施例中,位图函数具体如下:
HBITMAP hScreenBitmap=CreateDIBSection(hScreenDC,&stBitmapInfo,DIB_RGB_COLORS,(VOID**)&pbyScreenData,NULL,NULL);
这样就可以将位图数据存储在内存变量pbyScreenData中,然后可以对位图数据进行显示。
进一步地,为了防止位图数据显示后被释放,调用拷贝函数BitBlt将存储在内存变量pbyScreenData中的位图数据拷贝至目标设备hScreenDC中,实现如下:
BitBlt(hScreenDC,0,0,dwXWidth,dwYWidth,hWndDC,dwDrawPosX,dwDrawPosY,SRCCOPY|CAPTUREBLT)
这样就截取到了窗口界面。
S112,将截取后的窗口界面发送至服务器,使得所述服务器能基于标准窗口界面对所述截取后的窗口界面进行检测。
截取到窗口界面后,将将截取后的窗口界面发送至服务器。本实施例中的客户端具体是将存储在pbyScreenData中的位图数据发送至服务器,该数据其实就是一个图片数据。那么服务器接收到截取后的窗口界面后,会基于标准窗口界面对所述截取后的窗口界面进行检测。
作为一种可选的实施例,基于标准窗口界面对所述截取后的窗口界面进行检测,包括:
服务器会基于标准窗口界面中的元素对截取后的窗口界面的页面元素进行一一比较,若页面元素布局一致,则确定截取后的窗口界面是无问题的。
若页面元素布局一致,则确定截取后的窗口界面是有问题的,并且将这些不一致的页面元素定位出,以供开发人员参考。
这里,页面元素可以包括:页面上的按钮、标题及其他布局元素等。比如,截取后的窗口界面的左上角有一个按钮,而标准窗口界面的左上角是没有按钮的,则确定截取后的窗口界面是存在问题的。
需要说明的是,当用户在使用过程中发现窗口界面出现问题时,也可以通过客户端主动将问题反馈至服务器,以方便开发人员对窗口界面进行优化。
实施例二
相应于实施例一,本实施例提供一种检测窗口界面的装置,如图2所示,装置包括:创建单元21、截取单元22及发送单元23;
当客户端中启动后,会自动与服务器连接,登陆至服务器,当服务器需要对某个窗口界面进行检测时,则按照预先约定的协议向客户端发送截图请求。这里,预先约定的协议可以是任何格式的协议,一般包括请求协议及回应协议。比如:本实施例中请求协议的命令字(也为协议的type)为screenreq,表示的是截图请求,具体表述可以如下:
type@=screenreq/;
当客户端接收到该请求协议时,则会回应服务器已经接收到该条请求,那么会向服务器回应该条请求已经收到,回应协议的表述可以如下:
type@=screenres/;
回应协议的命令字为screenres,表示回应截图。
当客户端接收到服务器发送的截图请求时,为了确保整个截图可以流畅进行,同时不影响客户端的其他功能,创建单元21会单独创建一个用于截图的线程。
作为一种可选的实施例,创建单元21具体用于:
调用用于创建线程的函数创建所述线程;
向线程中传入预先设置的具有截图功能的截图函数。
具体地,调用系统中用于创建线程的API函数CreateThread创建线程,该函数的程序实现如下:
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
DWORD dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadId);
}
其中,参数lpThreadAttributes为线程属性,若该参数为NULL时则表示使用默认的设置。
参数dwStackSize为线程堆栈大小,若该参数为0时表示采用默认设置,系统会根据需要动态增加堆栈大小。
参数lpStartAddress为指向线程函数的指针。
参数lpParameter为向线程函数传递的参数。
参数dwCreationFlags为线程标志。
参数lpThreadId为线程的ID(输出参数)。
其中,本实施例中在向线程中传入预先设置的具有截图功能的截图函数时,是将截图函数赋值至给lpStartAddress这个参数的,截图函数的具体实现如下:
DWORD WINAPI ThreadProc(LPVOID lpParam){
return 0;
}
当线程创建好之后,截取单元22用于利用所述线程对窗口界面进行截取。
作为一种可选的实施例,截取单元22利用所述线程对窗口界面进行截取之前,用于:
获取所述窗口界面的名称;
基于所述窗口界面的名称查找到所述窗口界面。
这里,若是需要对某个窗口界面进行截取,需要先获取到窗口界面的名称,才可以根据窗口界面的名称,利用窗口查找函数查找到需要进行截取的窗口界面。一般来说,窗口界面可以包括:浏览器界面,即时通信软件的聊天界面等等。窗口界面的名称可以为标题栏(比如浏览网页的标题名称)。其中,窗口查找函数的函数原型如下:
HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName);
其中,在窗口查找函数的原型中,IpClassName为指向一个指定了类名的空结束字符串。
参数IpWindowName为指向一个指定了窗口名称的空结束字符串。
本实施例中窗口查找函数为:
HWND hWnd=FindWindow(cWindowName,cWindowName);
其中,hWnd为待截取的窗口界面。
查找到该窗口界面后,就可以创建的线程对窗口界面进行截取了。
作为一种可选的实施例,截取单元22具体用于:
利用所述线程中的截图函数创建一位图数据结构;
获取所述窗口界面的窗口句柄;
利用所述窗口句柄将所述截取后的窗口界面的位图数据写入所述位图数据结构中;
将所述位图数据结构中的所述位图数据存储至预先设置的内存变量中。
具体地,创建一位图数据结构BitmapInfo的程序实现如下:
BITMAPINFO stBitmapInfo={0};
位图数据结构创建好之后,利用窗口句柄获取函数获取窗口界面的窗口句柄DC,实现如下:
HDC hWndDC=GetDC(hWnd);
获取到窗口句柄后,需要将该句柄转换为与设备上下文环境兼容的窗口句柄,实现如下:
HDC hScreenDC=CreateCompatibleDC(hWndDC)
然后利用与设备上下文环境兼容的窗口句柄HDC将所述截取后的窗口界面的位图数据写入所述位图数据结构中,位图数据结构如下:
其中,nHeight是截取后的窗口界面的高度,nWidth则是截取后的窗口界面的宽度。
将截取后的窗口界面的位图数据写入所述位图数据结构中后,为了可以显示截取后的窗口界面,本实施例还需要利用位图函数CreateDIBSection将位图数据结构中的所述位图数据存储至预先设置的内存变量中。其中,CreateDIBSection原型如下:
其中hdc为设备环境句柄。
pbmi为指向BITMAPINFO位图结构的指针。
iUsage为指定由pbmi参数指定的BITMAPINFO结构中的成员bmiColors数组包含的数据类型。
ppvBits为接收一个指向位图位数据值的指针。
hSection为文件映射对象的句柄。函数将使用该对象来创建位图(与设备无关位图)。该参数可以是NULL。
dwOffset为指定从hSection引用的文件映射对象开始处算起的偏移量,超过这个偏移量的地方就是位图的位数据值开始存放的地方。当hSection为NULL时忽略该值。
本实施例中,位图函数具体如下:
HBITMAP hScreenBitmap=CreateDIBSection(hScreenDC,&stBitmapInfo,DIB_RGB_COLORS,(VOID**)&pbyScreenData,NULL,NULL);
这样就可以将位图数据存储在内存变量pbyScreenData中,然后可以对位图数据进行显示。
进一步地,为了防止位图数据显示后被释放,调用拷贝函数BitBlt将存储在内存变量pbyScreenData中的位图数据拷贝至目标设备hScreenDC中,实现如下:
BitBlt(hScreenDC,0,0,dwXWidth,dwYWidth,hWndDC,dwDrawPosX,dwDrawPosY,SRCCOPY|CAPTUREBLT)
这样就截取到了窗口界面。
截取到窗口界面后,发送单元23用于将截取后的窗口界面发送至服务器,使得所述服务器能基于标准窗口界面对所述截取后的窗口界面进行检测。
本实施例中的客户端具体是将存储在pbyScreenData中的位图数据发送至服务器,该数据其实就是一个图片数据。那么服务器接收到截取后的窗口界面后,会基于标准窗口界面对所述截取后的窗口界面进行检测。
作为一种可选的实施例,基于标准窗口界面对所述截取后的窗口界面进行检测,包括:
服务器会基于标准窗口界面中的元素对截取后的窗口界面的页面元素进行一一比较,若页面元素布局一致,则确定截取后的窗口界面是无问题的。
若页面元素布局一致,则确定截取后的窗口界面是有问题的,并且将这些不一致的页面元素定位出,以供开发人员参考。
这里,页面元素可以包括:页面上的按钮、标题及其他布局元素等。比如,截取后的窗口界面的左上角有一个按钮,而标准窗口界面的左上角是没有按钮的,则确定截取后的窗口界面是存在问题的。
需要说明的是,当用户在使用过程中发现窗口界面出现问题时,也可以通过客户端主动将问题反馈至服务器,以方便开发人员对窗口界面进行优化。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
本申请实施例提供了一种检测窗口界面的方法、装置及计算机设备,方法包括:当接收到服务器发送的截图请求时,创建用于截图的线程;利用所述线程对窗口界面进行截取;将截取后的窗口界面发送至服务器,使得所述服务器能基于标准窗口界面对所述截取后的窗口界面进行检测;如此,客户端侧可以基于预先创建的用于截图的线程自动对待需要检测的窗口界面进行截取,并可以由服务器侧自动对截取后的窗口界面进行检测,来判断窗口界面是否存在问题;相对于现有技术中人工反馈问题的方式,可以提高反馈的效率,进而提高对客户端程序进行优化的效率。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的系统、计算机设备的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者系统程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干系统的单元权利要求中,这些系统中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种检测窗口界面的方法,其特征在于,所述方法包括:
当接收到服务器发送的截图请求时,创建用于截图的线程;
利用所述线程对窗口界面进行截取;
将截取后的窗口界面发送至服务器,使得所述服务器能基于标准窗口界面对所述截取后的窗口界面进行检测。
2.如权利要求1所述的方法,其特征在于,所述创建用于截图的线程,包括:
调用用于创建线程的函数创建所述线程;
向所述线程中传入预先设置的具有截图功能的截图函数。
3.如权利要求1所述的方法,其特征在于,所述利用所述线程对窗口界面进行截取之前,包括:
获取所述窗口界面的名称;
基于所述窗口界面的名称查找到所述窗口界面。
4.如权利要求1所述的方法,其特征在于,所述利用所述线程对所述窗口界面进行截取,包括:
利用所述线程中的截图函数创建一位图数据结构;
获取所述窗口界面的窗口句柄;
利用所述窗口句柄将所述截取后的窗口界面的位图数据写入所述位图数据结构中;
将所述位图数据结构中的所述位图数据存储至预先设置的内存变量中。
5.一种检测窗口界面的装置,其特征在于,所述装置包括:
创建单元,用于当接收到服务器发送的截图请求时,创建用于截图的线程;
截取单元,用于利用所述线程对窗口界面进行截取;
发送单元,用于将截取后的窗口界面发送至服务器,使得所述服务器能基于标准窗口界面对所述截取后的窗口界面进行检测。
6.如权利要求5所述的装置,其特征在于,所述创建单元具体用于:
调用用于创建线程的函数创建所述线程;
向所述线程中传入预先设置的具有截图功能的截图函数。
7.如权利要求5所述的装置,其特征在于,所述截取单元具体用于:
利用所述线程对窗口界面进行截取之前,获取所述窗口界面的名称;
基于所述窗口界面的名称查找到所述窗口界面。
8.如权利要求5所述的装置,其特征在于,所述截取单元具体用于:
利用所述线程中的截图函数创建一位图数据结构;
获取所述窗口的窗口句柄;
利用所述窗口句柄将所述截取后的窗口界面的位图数据写入所述位图数据结构中;
将所述位图数据结构中的所述位图数据存储至预先设置的内存变量中。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至4任一项所述的方法。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811155216.XA CN109324844A (zh) | 2018-09-30 | 2018-09-30 | 一种检测窗口界面的方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811155216.XA CN109324844A (zh) | 2018-09-30 | 2018-09-30 | 一种检测窗口界面的方法、装置及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109324844A true CN109324844A (zh) | 2019-02-12 |
Family
ID=65266358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811155216.XA Pending CN109324844A (zh) | 2018-09-30 | 2018-09-30 | 一种检测窗口界面的方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109324844A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186866A (zh) * | 2011-12-29 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 一种广告展现次数的计数方法和系统 |
CN103544101A (zh) * | 2012-07-16 | 2014-01-29 | 深圳市世纪光速信息技术有限公司 | 一种无线平台开发自动测试系统及方法 |
CN104282032A (zh) * | 2013-06-28 | 2015-01-14 | 深圳市天趣网络科技有限公司 | 游戏客户端的动态截图方法及客户端 |
CN104516819A (zh) * | 2012-03-29 | 2015-04-15 | 北京奇虎科技有限公司 | 软件的界面状态变化时间的测试方法和装置 |
CN104699608A (zh) * | 2015-03-10 | 2015-06-10 | 于秀山 | 图形用户界面软件自动测试方法及装置 |
CN106547547A (zh) * | 2016-10-18 | 2017-03-29 | 广州酷狗计算机科技有限公司 | 数据采集方法及装置 |
CN108197030A (zh) * | 2018-01-15 | 2018-06-22 | 中国计量大学 | 基于深度学习的软件界面自动测试云平台装置及测试方法 |
CN108519900A (zh) * | 2018-03-28 | 2018-09-11 | 新华三云计算技术有限公司 | 显示窗口控制方法、装置及服务器 |
-
2018
- 2018-09-30 CN CN201811155216.XA patent/CN109324844A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186866A (zh) * | 2011-12-29 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 一种广告展现次数的计数方法和系统 |
CN104516819A (zh) * | 2012-03-29 | 2015-04-15 | 北京奇虎科技有限公司 | 软件的界面状态变化时间的测试方法和装置 |
CN103544101A (zh) * | 2012-07-16 | 2014-01-29 | 深圳市世纪光速信息技术有限公司 | 一种无线平台开发自动测试系统及方法 |
CN104282032A (zh) * | 2013-06-28 | 2015-01-14 | 深圳市天趣网络科技有限公司 | 游戏客户端的动态截图方法及客户端 |
CN104699608A (zh) * | 2015-03-10 | 2015-06-10 | 于秀山 | 图形用户界面软件自动测试方法及装置 |
CN106547547A (zh) * | 2016-10-18 | 2017-03-29 | 广州酷狗计算机科技有限公司 | 数据采集方法及装置 |
CN108197030A (zh) * | 2018-01-15 | 2018-06-22 | 中国计量大学 | 基于深度学习的软件界面自动测试云平台装置及测试方法 |
CN108519900A (zh) * | 2018-03-28 | 2018-09-11 | 新华三云计算技术有限公司 | 显示窗口控制方法、装置及服务器 |
Non-Patent Citations (3)
Title |
---|
刘军等: "《STM32F7原理与应用》", 30 June 2017 * |
明日科技: "《C++项目开发实战入门》", 31 May 2017 * |
汪学明等: "《JAVA程序设计指导》", 30 September 2001 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9977658B2 (en) | Code validation using content assist | |
US20200364285A1 (en) | Dynamic content modifications | |
WO2018077085A1 (zh) | 应用程序处理方法、装置及存储介质 | |
US20150161277A1 (en) | Methods and systems for one browser version to use a rendering engine of another browser version for displaying information | |
CN104102643B (zh) | 一种进行页面快照的方法和装置 | |
US20200341777A1 (en) | Dynamic linking of content elements to development tool resources | |
US9164753B2 (en) | Generating software updates | |
EP2798494A1 (en) | Virtual channel for embedded process communication | |
US10031971B2 (en) | System and methods for optimizing the response to a request for dynamic web content | |
US20190272157A1 (en) | System and method for embedding domain-specific language code within a visualization of cloud-based computing infrastructure | |
US9038019B2 (en) | Paige control for enterprise mobile applications | |
US9766860B2 (en) | Dynamic source code formatting | |
US11063828B2 (en) | Detecting software misconfiguration at a remote machine | |
CN104504040B (zh) | 一种搜索的方法和装置 | |
US20150067501A1 (en) | Method to generate dynamic customized context-sensitive help | |
US20200133445A1 (en) | Systems and methods for accelerating user interactions on touchscreen devices | |
CN104462283A (zh) | 在移动终端中进行网页元素请求的方法、装置和客户端 | |
US9501298B2 (en) | Remotely executing operations of an application using a schema that provides for executable scripts in a nodal hierarchy | |
CN113661694A (zh) | 网页复制 | |
WO2016057510A1 (en) | Generating mobile web browser views for applications | |
CN109324844A (zh) | 一种检测窗口界面的方法、装置及计算机设备 | |
US11550598B2 (en) | Systems and methods for adding digital content during an application opening operation | |
US8793342B2 (en) | Interpreting web application content | |
US11822872B2 (en) | Rendering based on a document object model | |
WO2017004442A1 (en) | Systems and methods for transforming applications |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190212 |