Software usage management method and device, computer device and storage medium
By combining window detection and resource usage detection strategies, the software usage time can be accurately counted, solving the problem of inaccurate software usage time statistics in existing technologies and improving the accuracy of software management.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- TENCENT TECHNOLOGY (SHENZHEN) CO LTD
- Filing Date
- 2021-06-03
- Publication Date
- 2026-06-26
Smart Images

Figure CN115437526B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and in particular to a software usage management method, apparatus, computer equipment, and storage medium. Background Technology
[0002] With the development of computer technology, the applications running on electronic devices are becoming increasingly diversified. For example, there are more and more types of software installed on computers, such as reading software, office software, or game software. Reading software can help users learn about the latest hot topics, while office software can assist users in their work.
[0003] Currently, users are spending increasingly more time on computers. Since prolonged software use can cause physical fatigue or even hinder academic progress, it's necessary to manage software usage time. Current methods for calculating usage time primarily involve tracking the time interval between software startup and shutdown. However, this method is inaccurate in measuring the total duration of software use, resulting in low accuracy in software management. Summary of the Invention
[0004] Therefore, it is necessary to provide a software usage management method, apparatus, computer equipment, and storage medium that can improve management accuracy in response to the above-mentioned technical problems.
[0005] A software usage management method includes: responding to a software usage detection command, acquiring a software usage detection strategy set, the software usage detection strategy set including a window detection strategy and a resource usage detection strategy; determining the currently displayed software window that the user is interested in from a set of currently displayed windows based on the window detection strategy, and acquiring a first execution unit identifier corresponding to the current software window; performing playback resource usage detection based on the resource usage detection strategy to obtain a second execution unit identifier currently occupying playback resources; acquiring a first software identifier corresponding to the first execution unit identifier, and acquiring a second software identifier corresponding to the second execution unit identifier; combining the first software identifier and the second software identifier to obtain a current software identifier set; and statistically analyzing the software usage time corresponding to each current software identifier in the current software identifier set to obtain a target usage time corresponding to the current software identifier.
[0006] A software usage management device includes: a software usage detection strategy set acquisition module, configured to acquire a software usage detection strategy set in response to a software usage detection command, the software usage detection strategy set including a window detection strategy and a resource usage detection strategy; a first execution unit identifier acquisition module, configured to determine the currently displayed software window that the user is interested in from a set of currently displayed windows based on the window detection strategy, and acquire the first execution unit identifier corresponding to the current software window; a second execution unit identifier acquisition module, configured to perform playback resource usage detection based on the resource usage detection strategy, and obtain the second execution unit identifier currently occupying playback resources; a software identifier acquisition module, configured to acquire the first software identifier corresponding to the first execution unit identifier, and acquire the second software identifier corresponding to the second execution unit identifier; a current software identifier set obtaining module, configured to combine the first software identifier and the second software identifier to obtain a current software identifier set; and a target usage duration obtaining module, configured to statistically analyze the software usage duration corresponding to each current software identifier in the current software identifier set, and obtain the target usage duration corresponding to the current software identifier.
[0007] In some embodiments, the first execution unit identifier acquisition module includes: a window display position acquisition unit, configured to acquire the window display position of each currently displayed window in the set of currently displayed windows displayed on the screen; a current software window acquisition unit, configured to determine the display degree corresponding to each of the currently displayed windows based on the window display position; and to filter out software windows that meet user attention conditions from the set of currently displayed windows based on the display degree corresponding to the current window, as the current software windows that the user pays attention to, wherein the user attention conditions include at least one of display degree being greater than a degree threshold or display degree ranking before a ranking threshold.
[0008] In some embodiments, the current software window obtaining unit is further configured to determine the display size of the display area corresponding to the current display window based on the window display position; obtain the window size corresponding to the current display window; and determine the display degree corresponding to the current display window based on the display size and the window size.
[0009] In some embodiments, the first execution unit identifier acquisition module includes: a target content information sequence acquisition unit, configured to acquire the target content information sequence displayed by each current display window in the set of current display windows displayed on the screen; a content change degree determination unit, configured to determine the content change degree corresponding to the current display window based on the content information differences in the target content information sequence; the content change degree is positively correlated with the content information differences; and a current software window acquisition unit, configured to select at least one current display window with a content change degree greater than a change degree threshold as the current software window that the user is interested in.
[0010] In some embodiments, the content change degree determination unit is further configured to obtain target content information and adjacent content information corresponding to the target content information from the target content information sequence; obtain the information change degree of the target content information relative to the adjacent content information based on the difference between the target content information and the adjacent content information; and perform statistical calculations on the information change degree corresponding to each target content information to obtain the content change degree corresponding to the current display window.
[0011] In some embodiments, the target usage duration acquisition module includes: a content comparison result acquisition unit, configured to compare target content information in the target content information sequence with corresponding adjacent content information to obtain a content comparison result; a comparison content information acquisition unit, configured to obtain each target content information whose content comparison result is inconsistent from the target content information sequence, as comparison content information; a comparison content information sequence acquisition unit, configured to segment the target content information sequence to obtain a comparison content information sequence corresponding to the comparison content information; and a first target usage duration acquisition unit, configured to add the content display duration corresponding to the comparison content information sequence to the software usage duration corresponding to the current software identifier to obtain the target usage duration corresponding to the current software identifier.
[0012] In some embodiments, the current software window obtaining unit is further configured to obtain a current display window with a content change degree greater than a change degree threshold as a content change window; determine the content change area corresponding to the content change window; and when the occlusion degree of the content change area is less than an occlusion threshold, use the content change window as the current software window that the user is paying attention to.
[0013] In some embodiments, the current software window obtaining unit is further configured to determine a current display window whose content change degree is greater than a change degree threshold, as a content change window; determine the content repetition degree corresponding to the content change window; and when the content repetition degree corresponding to the content change window is less than a repetition threshold, use the content change window as the current software window that the user is paying attention to.
[0014] In some embodiments, the current software window obtaining unit is further configured to: determine a first content information sequence corresponding to the content change window and a second content information sequence adjacent to the first content information sequence; extract content information from the first content information sequence according to a content extraction strategy, arrange the extracted first content information to obtain a first comparison information sequence; extract content information from the second content information sequence according to the content extraction strategy, arrange the extracted second content information to obtain a second comparison information sequence; obtain the sequence correlation between the first comparison information sequence and the second comparison information sequence, and determine the content repetition degree corresponding to the content change window based on the sequence correlation degree, wherein the sequence correlation degree and the content repetition degree are positively correlated.
[0015] In some embodiments, the target usage duration acquisition module includes: a forward software identifier set acquisition unit, configured to acquire the forward software identifier set corresponding to the current software identifier set; a target software identifier acquisition unit, configured to compare the software identifiers in the forward software identifier set with the software identifiers in the current software identifier set, and take the matching software identifiers as the target software identifiers; and a second target usage duration acquisition unit, configured to add a target duration to the software usage duration corresponding to the target software identifier to obtain the target usage duration corresponding to the target software identifier; wherein the target duration is the time interval between the forward detection time and the current detection time, the forward detection time is the detection time corresponding to the forward software identifier set, and the current detection time is the detection time corresponding to the current software identifier set.
[0016] In some embodiments, the apparatus further includes: an object task acquisition module, configured to acquire an object task corresponding to a target object and acquire a target usage duration corresponding to task-related software associated with the object task; and a task prompt information output module, configured to output task prompt information for the object task when the target usage duration corresponding to the task-related software is less than a task completion duration threshold for the object task.
[0017] A computer device includes a memory and a processor, the memory storing a computer program, and the processor executing the computer program to implement the steps of the software usage management method described above.
[0018] A computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the steps of the above-described software usage management method.
[0019] In some embodiments, a computer program product or computer program is provided, the computer program product or computer program including computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and executes the computer instructions, causing the computer device to perform the steps in the above-described method embodiments.
[0020] The aforementioned software uses management methods, devices, computer equipment, and storage media. Since the software usage detection strategy set includes window detection strategies and resource usage detection strategies, the window detection strategy can detect the window the user is currently focusing on from the perspective of window display, and the resource usage detection strategy can detect windows occupying playback resources. This allows for the detection of software the user is focusing on from different angles. Furthermore, by obtaining the first software identifier corresponding to the first execution unit identifier and the second software identifier corresponding to the second execution unit identifier, and combining the software identifiers obtained from multiple strategies, a current software identifier set is obtained. This allows for the detection of multiple software programs used within the same time period, and the statistical analysis of the software usage duration of these programs, improving the accuracy of software usage duration statistics and further enhancing the accuracy of software management. Attached Figure Description
[0021] Figure 1 This is a diagram illustrating the application environment of the software usage management method in the embodiments of this application.
[0022] Figure 2 This is a flowchart illustrating the software usage management method in an embodiment of this application;
[0023] Figure 3 This is an interface diagram of the display window in the embodiments of this application;
[0024] Figure 4 This is an interface diagram of the display window in the embodiments of this application;
[0025] Figure 5 This is an interface diagram showing software attribute information in an embodiment of this application;
[0026] Figure 6 This is an interface diagram showing software installation information in an embodiment of this application;
[0027] Figure 7 This is an interface diagram showing software attribute information in an embodiment of this application;
[0028] Figure 8 This is a schematic diagram illustrating the determination of the software name and software type in the embodiments of this application;
[0029] Figure 9This is a schematic diagram illustrating the percentage of time for each software type in the embodiments of this application;
[0030] Figure 10 This is an example of an interface diagram showing the software usage time according to the software identifier in this application embodiment;
[0031] Figure 11 This is an example of an interface diagram showing the statistical usage time according to software type in this application embodiment;
[0032] Figure 12 This is an interface diagram of the display window in the embodiments of this application;
[0033] Figure 13 This is a schematic diagram illustrating the determination of the current software window in this embodiment of the application.
[0034] Figure 14A This is a flowchart illustrating the software usage management method in an embodiment of this application;
[0035] Figure 14B This is a schematic diagram illustrating the principle of determining the software name in an embodiment of this application;
[0036] Figure 15 This is a schematic diagram illustrating the principle of determining the software name in an embodiment of this application;
[0037] Figure 16 This is a schematic diagram illustrating the principle of software management based on target usage duration in an embodiment of this application.
[0038] Figure 17 This is a structural block diagram of the software usage management device in the embodiments of this application;
[0039] Figure 18 This is an internal structural diagram of the computer device in the embodiments of this application;
[0040] Figure 19 This is a diagram showing the internal structure of a computer device in an embodiment of this application. Detailed Implementation
[0041] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0042] The software usage management method provided in this application can be applied to, for example... Figure 1In the application environment shown, terminal 102 communicates with server 104 via a network. Terminal 102 can have one or more screens installed, meaning at least two, for example, two screens can be installed. Terminal 102 can have an operating system installed, such as Windows, or other operating systems. Terminal 102 can have one or more software installed, for example, multiple software programs can be installed under a Windows operating system environment.
[0043] Terminal 102 can respond to a software usage detection command by acquiring a software usage detection strategy set, which includes a window detection strategy and a resource usage detection strategy. Based on the window detection strategy, terminal 102 can determine the currently active software window from the currently displayed window set, acquire the first execution unit identifier corresponding to the current software window, perform playback resource usage detection based on the resource usage detection strategy to obtain the second execution unit identifier currently occupying playback resources, acquire the first software identifier corresponding to the first execution unit identifier, and acquire the second software identifier corresponding to the second execution unit identifier. Combining the first and second software identifiers, a current software identifier set is obtained. The software usage time corresponding to each current software identifier in the current software identifier set is statistically analyzed to obtain the target usage time corresponding to the current software identifier. The terminal can send the target usage time to server 104.
[0044] The terminal 102 can be, but is not limited to, various personal computers, laptops, smartphones, tablets and portable wearable devices, and the server 104 can be implemented by a standalone server or a server cluster consisting of multiple servers.
[0045] In some embodiments, such as Figure 2 As shown, a software usage management method is provided, in which the software is used for... Figure 1 Taking terminal 102 as an example, the explanation includes the following steps:
[0046] S202, in response to the software usage detection command, obtain the software usage detection strategy set, which includes window detection strategy and resource usage detection strategy.
[0047] The software usage detection command instructs the user to monitor the software's usage duration. This command can be triggered automatically or upon receiving a confirmation action. The confirmation action then instructs the user to monitor the software's usage duration. The terminal can display a software usage detection page with a confirmation button. When the terminal receives a click on this confirmation button, it triggers the software usage detection command. The software can also be referred to as an application (App).
[0048] The software usage detection strategy set includes multiple software usage detection strategies, where "each" refers to at least two. A software usage detection strategy can be either a window detection strategy or a resource usage detection strategy. A window refers to the software interface. One window corresponds to one piece of software, and one piece of software can correspond to multiple windows. A window detection strategy is a strategy that determines the software the user is interested in based on the window size or window content. Window size can include at least one of window area, window length, or window width. Window content refers to the content displayed in the window, such as images or text. Resources refer to computer resources, which can include playback resources. Playback resources are computer resources with playback functionality, such as audio channels that can play sound. A resource usage detection strategy is a strategy that determines the software the user is interested in based on resource usage information. Resource usage information can include at least one of a resource identifier or the identifier of the execution unit occupying the resource. For example, a resource identifier can be the identifier of an audio channel, and the execution unit occupying the resource can be the process occupying the audio channel. A resource identifier can be, for example, the name of the resource.
[0049] Specifically, the terminal can store a set of software usage detection strategies. When the terminal receives a software usage detection command, it can respond to the command, retrieve the set of software usage detection strategies, and detect the software that the user is interested in based on each software usage detection strategy in the set.
[0050] S204, Based on the window detection strategy, determine the current software window that the user is interested in from the current set of displayed windows, and obtain the first execution unit identifier corresponding to the current software window.
[0051] The currently displayed window set can include one or more currently displayed windows, or at least two. A currently displayed window refers to the window displayed at the current time. A terminal can have one or more screens, and the currently displayed window set can include windows displayed on at least one screen of the terminal at the current time. For example, the terminal can acquire the windows displayed on each screen at the current time to form the currently displayed window set. Alternatively, the terminal can acquire the most recent user screen operation (user screen operation refers to the operation performed by the user on the screen, which can include at least one mouse operation or keyboard operation), determine the screen corresponding to the most recent user screen operation, use that screen as the target screen, and acquire the windows displayed on the target screen at the current time to form the currently displayed window set.
[0052] The current software window refers to the window of the software that the user is currently focusing on, such as the window of the software the user is watching a video on, the interface of the game the user is playing, or the interface of the office software the user is editing text on.
[0053] An execution unit is the smallest unit that executes software. An execution unit can be at least one process or thread within the software. An execution unit identifier is used to uniquely identify an execution unit; it can be a software identifier or a process identifier, such as a process path. A piece of software can correspond to one or more execution units; "multiple" means at least two. A first execution unit identifier is used to uniquely identify the first execution unit, which refers to the execution unit corresponding to the current software window; for example, it could be the process corresponding to the current software window.
[0054] Specifically, the terminal can obtain the window screen area of the currently displayed window, which refers to the area occupied by the currently displayed window on the screen. Based on the window screen area, the terminal determines the window screen area corresponding to each currently displayed window in the current display window set. The terminal can determine the current software window from the current display window set based on the window screen area.
[0055] In some embodiments, the terminal can obtain the window displayed at the top of the screen from the current set of displayed windows. When all areas of this window are visible, i.e., can be observed by the user, the window displayed at the top of the screen is designated as the current software window. The window displayed at the top of the screen can also be called the focused window. For example... Figure 3 As shown, the screen displays window 1 and window 2. Since window 2 is located at the top layer of the screen, it is the focus window.
[0056] In some embodiments, the terminal can obtain the fully displayed windows from the set of currently displayed windows, and use each fully displayed window as the current software window. A fully displayed state means that the entire window is visible to the user. For example... Figure 4 As shown in the image, two windows are displayed side by side on the screen, namely window 3 and window 4. It can be seen from the image that both window 3 and window 4 are fully displayed, so window 3 and window 4 can be used as the current software window.
[0057] In some embodiments, the terminal may store the correspondence between each window identifier and the execution unit identifier. The terminal may obtain the window identifier of the currently displayed window and obtain the execution unit identifier that corresponds to the window identifier, and use it as the first execution unit identifier corresponding to the current software window.
[0058] In some embodiments, the terminal can obtain the window identifier of the current software window and, based on the window identifier, obtain the execution description information of the current software window. The execution description information describes the execution unit and may include at least one of the following: execution unit identifier, unit user identifier, unit current state, or unit priority. The unit user identifier refers to the identifier of the user to whom the execution unit belongs. The unit current state refers to the current state of the execution unit; when the execution unit is a process, the unit current state may include at least one of the following: ready state, running state, or waiting state. The unit priority reflects the execution order of the execution units; the higher the unit priority, the earlier it is executed. The unit priority may be, for example, the process priority. The execution description information may be, for example, process description information. The window identifier is used to uniquely identify the window; the window identifier may be, for example, the window handle. The terminal can obtain the execution unit identifier from the execution description information of the current software window as the first execution unit identifier corresponding to the current software window.
[0059] S206, Based on the resource occupancy detection strategy, the playback resource occupancy is detected to obtain the identifier of the second execution unit currently occupying the playback resources.
[0060] The second execution unit identifier is used to uniquely identify the second execution unit. The second execution unit refers to the execution unit currently occupying playback resources, such as the process currently occupying an audio channel.
[0061] Specifically, the terminal can obtain resource occupancy information corresponding to the playback resources, and extract the identifier of the execution unit occupying the playback resources from the resource occupancy information as the second execution unit identifier. For example, it can obtain the channel occupancy information of the current audio channel, and extract the identifier of the process occupying the audio channel from the channel occupancy information as the second execution unit identifier.
[0062] S208, obtain the first software identifier corresponding to the first execution unit identifier, and obtain the second software identifier corresponding to the second execution unit identifier.
[0063] The software identifier is used to uniquely identify the software; for example, it can be the name of the software. The first software refers to the software belonging to the first execution unit. For example, when the first execution unit is a process of software 1, the first software is software 1. The first software identifier is used to uniquely identify the first software. The first software refers to the software belonging to the second execution unit. The second software identifier is used to uniquely identify the second software.
[0064] Specifically, the method for obtaining the first software identifier can be the same as the method for obtaining the second software identifier. The following describes how to obtain the first software identifier. The terminal can obtain software association information of the first software based on the first execution unit identifier, and determine the first software identifier based on the software association information. For example, the terminal can obtain the first software identifier from the software association information.
[0065] In some embodiments, the software association information of the first software may include software attribute information, which is the attribute information corresponding to the first software. The software attribute information may include at least one of a software name or software description information. The terminal may use either the software name or the software description information as the first software identifier. For example, the terminal may determine whether a software name exists in the software attribute information; if a software name exists, it uses the software name in the software attribute information as the first software identifier; if no software name exists, it determines whether software description information exists in the software attribute information; if software description information exists, it uses the software description information as the first software identifier. Figure 5 As shown, the "abc properties" interface is displayed. The "abc properties" section shows the software property information of the first software, "abc". "abc" is the software name, which can be, for example,... Figure 5 The "product name" and software description information in the text could be, for example, Figure 5 The “File Description” in the image shows that the “Product Name” is “abc”, indicating that the product name exists. Therefore, the product name “abc” can be used as the first software identifier.
[0066] In some embodiments, the software association information of the first software may include a software path identifier corresponding to the first execution unit. The software path identifier is used to uniquely identify the software path, which refers to the installation location of the software on the terminal. The terminal may store a software installation information set, which includes software installation information corresponding to multiple software path identifiers. The software installation information may include at least one of software identifier, software path identifier, or software version information. The software identifier in the software installation information may, for example, be a software name. The terminal can obtain the software installation information corresponding to the software path identifier of the first execution unit from the software installation information set. For example, the terminal can compare the software path identifier corresponding to the first execution unit with the software installation information included in each piece of software installation information in the software installation information set, take the matching software installation information in the software installation information set as the target software installation information, obtain the software identifier from the target software installation information, and take the obtained software name as the first software identifier. Figure 6 The image shows the software installation information corresponding to the software path identifier of the software "abc". The software path identifier in the image is "C:\Program Files(x86)\abc", and the software installation information includes the software name "abc". For example, the terminal can obtain the path where the first execution unit is located, and then traverse the installation path information of all software in the Windows uninstallation registry. If the path where the first execution unit is located is matched, the DisplayName (the product name of the software) in the registry can be read as the first software identifier.
[0067] In some embodiments, the software association information of the first software may include object information corresponding to the software startup object. The object information may include either an object identifier or a software path identifier. The object identifier may be, for example, an object name, which refers to the name of the software startup object. The terminal may store multiple software startup objects corresponding to different software programs. It can obtain the object information corresponding to each software startup object, retrieve the software path identifier from the object information as a comparison path identifier, retrieve the software path identifier corresponding to the first execution unit as the first software path identifier, compare the first software path identifier with the comparison path identifier, and use the object information corresponding to the matching comparison path identifier as the target object information. The object identifier is then retrieved from the target object information and used as the first software identifier. Here, a software startup object refers to an object used to start software; different software startup objects point to different software. The terminal can display software startup objects. When the terminal receives a trigger operation on a software startup object, it can start the software pointed to by that software startup object. A software startup object may be, for example, a shortcut created for software. The object information may be included in the software attribute information. Figure 7The image shows the "abc Properties" interface, which displays the software property information of the software "abc". Object information can include, for example, the information contained in the "Shortcut" section of the software "abc". The five-pointed star in the image represents the shortcut icon, and "abc" to the right of the star is the shortcut name. The object identifier can be, for example, "abc" to the right of the star, and the path identifier can be, for example,... Figure 7 The path "C:\Program Files(x86)\abc" is an example. For instance, software installations create shortcuts on the desktop or Start Menu, and the shortcut name is often the software's product name. You can then iterate through all shortcuts on the Start Menu and desktop, read the software path they point to, and match it with the path of the detected process. If a match is found, the shortcut name can be used as the software identifier.
[0068] In some embodiments, the terminal can obtain software tagging information corresponding to the first execution unit identifier. The software tagging information may include a tagged software identifier. The terminal can obtain the software tagging information corresponding to the first execution unit identifier as the first software tagging information, obtain the tagged software identifier from the first software tagging information, and use the obtained tagged software identifier as the first software identifier corresponding to the first execution unit identifier. The tagged software identifier can be a software identifier obtained by tagging the execution unit. For example, the terminal can automatically obtain the first execution unit identifier to be determined as the execution unit identifier to be tagged. The terminal can display the execution unit identifier to be tagged in a software tagging interface, obtain the tagging operation of the execution unit identifier to be tagged through the software tagging interface, obtain the software identifier tagged by the tagging operation, and determine the tagged software identifier corresponding to the execution unit identifier to be tagged based on the tagged software identifier. For example, the tagged software identifier can be used as the tagged software identifier corresponding to the execution unit identifier to be tagged, or the tagged software identifier can be used as a candidate software identifier. First reporting information is generated based on the execution unit identifier to be tagged and the candidate software identifiers, and the tagged software identifier is determined based on the first reporting information. The first reporting information may include the candidate software identifier and the execution unit identifier to be tagged.
[0069] In some embodiments, the identifier of the execution unit to be marked can also be input or selected by the user. For example, the terminal can display a software marking interface. The software marking interface refers to an interface used to mark software; for example, at least one of the software's identifier, name, or type can be marked through the software marking interface. When the software to which the execution unit belongs is unknown, it can be marked through the software marking interface. The terminal can display an execution unit editing area and a software identifier marking area in the software marking interface. The execution unit editing area is used to receive the execution unit identifier input or selected by the user, i.e., to receive the identifier of the execution unit to be marked, and the software identifier marking area is used to receive the software identifier input or selected by the user. The software marking interface can also display a marking confirmation control. When the terminal receives a trigger operation on the marking confirmation control, the terminal can use the execution unit identifier received in the execution unit editing area as the identifier of the execution unit to be marked, and the software identifier received in the software identifier marking area as a candidate software identifier. Based on the identifier of the execution unit to be marked and the candidate software identifier, a second reporting information is generated, and the marked software identifier is determined based on the second reporting information. The second reporting information may include the identifier of the execution unit to be marked and the candidate software identifier. The terminal can also display a software type marking area in the software marking interface, which is used to receive software types input or selected by the user. The second reported information may also include the software type received by the software type marking area. The software type may include at least one of the following: social networking, video, music, games, office, or learning. For example, software that can play video files can be classified as video software, and software that can perform text editing can be classified as office software.
[0070] In some embodiments, a terminal can send target reporting information to a server. The server can obtain candidate software identifiers corresponding to the same execution unit identifier to be marked from the target reporting information, forming a set of candidate software identifiers corresponding to the execution unit identifier to be marked. The server then clusters the candidate software identifiers in the set and determines the marked software identifier corresponding to the execution unit identifier to be marked based on the clustering results. For example, the center of the cluster can be used as the marked software identifier. Alternatively, the server can divide the set of candidate software identifiers into sub-candidate software identifier sets. Each sub-candidate software identifier set contains the same candidate software identifiers, while different sub-candidate software identifier sets contain different candidate software identifiers. The server can count the number of candidate software identifiers in each sub-candidate software identifier set to obtain the number of software identifiers corresponding to each different candidate software identifier in the set. The largest number of software identifiers is taken as the target software identifier number, and the candidate software identifier corresponding to the target software identifier number is taken as the marked software identifier. The server can send the marked software identifiers to each terminal, enabling the terminal to establish a correspondence between the marked software identifier and the corresponding execution unit identifier. The target reporting information may include at least one of a first reporting information or a second reporting information. The target reported information may include multiple first reported information items and multiple second reported information items. In this embodiment, when the software to which a process belongs is unknown or cannot be determined, the software to which the process belongs can be determined based on the reported information, thereby determining the software identifier corresponding to the process. An error correction entry point is also provided for the user. When the user believes that the software identifier or software type corresponding to the process is incorrect, they can input the software identifier or software type they believe to be correct through the software marking interface. The execution unit identifier can be the unit path information corresponding to the execution unit. The unit path information refers to the location of the execution unit in the terminal, such as... Figure 8 As shown, Figure 8 The “unknown process path information” refers to the process path information corresponding to processes whose software identifier or software type is not determined. The terminal will report the “unknown process path information”. Users can also mark processes whose software name or software type is unknown and report the marking results. The server can determine the software name and software type corresponding to the process based on the marking data and distribute the determined software name and software type to more users.
[0071] S210, combine the first software identifier and the second software identifier to obtain the current software identifier set.
[0072] Specifically, the terminal can combine the various first software identifiers into a first software identifier set, combine the various second software identifiers into a second software identifier set, perform a union operation on the first software identifier set and the second software identifier set, and use the result of the union operation as the current software identifier set. This can reduce the occurrence of repeated timing for the same software.
[0073] S212, Calculate the software usage time corresponding to each current software identifier in the current software identifier set to obtain the target usage time corresponding to the current software identifier.
[0074] Software usage time refers to the duration a user spends using the software, i.e., the time a user focuses on the software; it can also be called software usage duration or screen time. Target usage time can be the duration obtained by statistically analyzing the usage time of the current software identifier over a time dimension. The time dimension can include at least one of daily, weekly, monthly, or yearly periods. Target usage time refers to the software usage time within a statistical period. The statistical period can be set as needed or pre-set, and can be, for example, at least one of daily, weekly, monthly, or yearly periods. For example, when it is necessary to statistically analyze the software usage time corresponding to a target software identifier within one week (i.e., the statistical period is one week), the target usage time is the duration of user use of the target software within one week, and the target software is the software corresponding to the target software identifier.
[0075] Specifically, the terminal can statistically analyze the usage time of the currently identified software according to different time dimensions to obtain the target usage time corresponding to each time dimension. The terminal can obtain the target usage time corresponding to each software within a specific time period and display the target usage time corresponding to each software. For example, the target usage time can be displayed in descending order, that is, the larger target usage time is displayed first.
[0076] In some embodiments, the terminal can obtain the target usage time for each software within a specific time period, use the duration of the specific time period as the specific duration, calculate the ratio of the target usage time to the specific duration, obtain the software usage time percentage, and display the software usage time percentage for each software. The specific time period can be set as needed, for example, it can be 1 day or 1 week.
[0077] In some embodiments, the terminal can categorize various software programs, sum the target usage times of all software programs of the same type to obtain the type usage time corresponding to that software type, calculate the ratio of the type usage time to a specific duration to obtain the type usage time percentage corresponding to that software type, and display the type usage time percentage for each software type. For example... Figure 9As shown in the pie chart, the time percentages for each software type are displayed. Video accounts for 40%, music for 16%, games for 20%, office for 8%, learning for 4%, and social for 12%.
[0078] In some embodiments, the terminal can obtain a usage time threshold corresponding to a software type, compare the type's usage time with the threshold, where the type's usage time and the threshold correspond to the same time dimension. When the type's usage time reaches the threshold, a usage time alarm is triggered or the software is forcibly closed, thereby controlling the frequency and duration of software use. For example, when the terminal is a student's computer, if the terminal determines that the usage time of a game software has reached the threshold, it can periodically display a time-limited alarm message, or the terminal can send a time-limited alarm message to the student's parents, thus helping the student to allocate their computer time reasonably and improve their learning efficiency. For educational software, the terminal can periodically remind students to use it. For video software, periodically displaying time-limited alarm messages can reduce eye fatigue caused by prolonged screen viewing.
[0079] Different time dimensions can correspond to different usage duration thresholds. For example, when the time dimension is 1 day, the usage duration threshold could be 2 hours; when the time dimension is 1 week, the usage duration threshold could be 14 hours. The usage duration threshold can be automatically set by the terminal, or the terminal can display a duration threshold setting interface. This interface can receive user input or selection of duration, and the terminal can obtain the duration for a specific software type from the duration threshold setting interface and use the set duration as the usage duration threshold for that specific software type. Specific software types can be set as needed.
[0080] In some embodiments, the terminal can display software usage time based on software identifiers. Specifically, the terminal can obtain the software usage time corresponding to each software and display the software usage time corresponding to each software in descending order, prioritizing the display of the software usage time corresponding to the software with the longest usage time. The software identifier is used to uniquely identify the software. The software identifier can be, for example, the name of the software. Figure 10 The image shows an interface that displays software usage time according to software identifiers. As can be seen from the image, longer software usage times are displayed before shorter software usage times.
[0081] In some embodiments, the terminal can display software usage time according to software type. Specifically, the terminal can determine the software type corresponding to each software, obtain the software usage time corresponding to each software of the same type, sum the obtained software usage times, use the sum as the statistical usage time, and display the software type corresponding to the corresponding statistical usage time. For example, the terminal can display the statistical usage time corresponding to each software type in descending order, prioritizing the display of the statistical usage time corresponding to the software type with the larger statistical usage time. Figure 11 As shown in the image, a screenshot displays the statistical usage time by software type. It can be seen from the image that the larger statistical usage times are displayed before the smaller statistical usage times.
[0082] In some embodiments, the terminal can also send the software usage time to the server. The server can obtain the software usage time sent by the terminals corresponding to group users in the user group, and can obtain the software usage time of each group user for the same software. The server can sum the usage times of all users for the same software and use the sum as the user group usage time for that software. Based on the user group usage time, the software's acceptance level within the user group is determined, and there is a positive correlation between user group usage time and software acceptance level. Here, a user group is a group of multiple users, where "multiple" means at least three; for example, a team can be considered a user group. Group users refer to the users included in the user group. The user terminals corresponding to the users in the user group can obtain the software usage time for each software from the server.
[0083] Positive correlation refers to the situation where, all other things being equal, two variables change in the same direction; when one variable decreases, the other also decreases. It's important to understand that positive correlation here means the direction of change is consistent, but it doesn't require that a slight change in one variable necessarily means a change in the other. For example, we can set variable b to 100 when variable a is between 10 and 20, and to 120 when variable a is between 20 and 30. In this case, the direction of change for both a and b is that as a increases, b also increases. However, when a is within the range of 10 to 20, b may remain unchanged.
[0084] In the aforementioned software usage management method, since the software usage detection strategy set includes window detection strategy and resource usage detection strategy, the window detection strategy can detect the window that the user is paying attention to from the perspective of window display, and the resource usage detection strategy can detect the window that occupies playback resources, thereby realizing the detection of the software that the user is paying attention to from different perspectives. By obtaining the first software identifier corresponding to the first execution unit identifier and the second software identifier corresponding to the second execution unit identifier, and combining the software identifiers obtained from multiple strategies to obtain the current software identifier set, multiple software used in the same time period can be detected, and the software usage time of multiple software used in the same time period can be counted, which improves the accuracy of counting software usage time and further improves the accuracy of software management.
[0085] In some embodiments, determining the currently displayed software window that the user is interested in from the currently displayed window set based on the window detection strategy includes: obtaining the window display position of each currently displayed window in the currently displayed window set displayed on the screen; determining the display degree corresponding to each currently displayed window based on the window display position; and filtering the currently displayed window set based on the display degree corresponding to the current window to obtain the software window that meets the user's attention conditions as the current software window that the user is interested in. The user attention conditions include at least one of display degree being greater than a degree threshold or display degree ranking before a ranking threshold.
[0086] The window display position refers to the location of the window on the screen. The terminal can determine the window's screen area based on the window display position. The window screen area refers to the area occupied by the currently displayed window on the screen. The display level reflects the proportion of the visible area in the window within the entire window; the higher the display level, the larger the proportion of the visible area within the entire window. When the display level is 100%, it means the entire window is visible. The visible area is the area in the window that can be seen by the user. The level threshold can be preset, for example, it can be 90%. A specific display level can also be preset, for example, it can be 100%.
[0087] User attention criteria may also include at least one of the following: display level ranking precedes the ranking threshold. Display level ranking refers to the order of display levels within a display level sequence, which is a sequence obtained by arranging the display levels of each currently displayed window in descending order. The ranking threshold can be set as needed or preset, for example, it could be the third threshold.
[0088] Specifically, the terminal can determine the visible area corresponding to the currently displayed window based on the window's screen area, using this as the display area of the current display window. The display level of the current display window is calculated based on the size of this display area, and the display level is positively correlated with the size of the display area. The terminal can select a current display window with a display level greater than a threshold from the current display window set as the current software window, or it can select a current display window with a display level of a specific threshold from the current display window set as the current software window.
[0089] In some embodiments, the terminal can obtain a first currently displayed window from a set of currently displayed windows, and obtain a reference displayed window corresponding to the first currently displayed window from the set of currently displayed windows. The reference displayed window may include at least one of the various currently displayed windows in the set that are different from the first currently displayed window. For example, all currently displayed windows in the set that are different from the first currently displayed window may be used as the reference displayed window corresponding to the first currently displayed window. The terminal can obtain the window screen area corresponding to the first currently displayed window as the first window screen area, obtain the window screen area corresponding to the reference displayed window as the reference window screen area, obtain the overlapping area between the first window screen area and the reference window screen area, and use this overlapping area as the screen overlapping area. The terminal can then determine the display area corresponding to the first currently displayed window based on the screen overlapping area. For example, the terminal can obtain the display priority corresponding to each currently displayed window, and determine the display area based on the screen overlapping area and the display priority. Where the window screen areas corresponding to two currently displayed windows overlap, the window with the higher display priority in the overlapping area obscures the window with the lower display priority.
[0090] In some embodiments, the terminal can determine the occlusion area corresponding to the screen area of the first window based on the screen overlap area and display priority, and take the area outside the occlusion area of the first currently displayed window as the display area corresponding to the first currently displayed window. For example, the terminal can obtain the display priority corresponding to the first currently displayed window as the first display priority, obtain the display priority corresponding to the reference display window as the reference display priority, compare the first display priority with the reference display priority, and when it is determined that the first display priority is less than the reference display priority, take the screen overlap area as the occlusion area corresponding to the screen area of the first window, and take the area outside each occlusion area in the screen area of the first window as the display area corresponding to the first currently displayed window.
[0091] In this embodiment, the window display position of each currently displayed window in the set of currently displayed windows on the screen is obtained, and the display degree corresponding to each currently displayed window is determined based on the window display position. Based on the display degree corresponding to the currently displayed window, software windows that meet the user's attention criteria are selected from the set of currently displayed windows and used as the current software windows that the user is interested in. The user attention criteria include at least one of the following: the display degree is greater than a degree threshold or the display degree is ranked before a sorting threshold. Since a higher display degree indicates a higher probability that the user is interested in the window, windows that meet the user's attention criteria are selected as the current software windows, thus improving the accuracy of the current software window selection.
[0092] In some embodiments, determining the display level of each currently displayed window based on its display position includes: determining the display size of the display area corresponding to the currently displayed window based on its display position; obtaining the window size corresponding to the currently displayed window; and determining the display level of the currently displayed window based on the display size and the window size.
[0093] The display area refers to the visible area within the window. The visible area is the region within the window that the user can observe. The degree of display is positively correlated with the display size, and negatively correlated with the window size. The display area is smaller than or equal to the window screen area. A negative correlation means that, all other things being equal, when two variables change in opposite directions—for example, when one variable decreases, the other increases. It's important to understand that this negative correlation refers to opposite directions of change, but it doesn't mean that a slight change in one variable necessarily requires a change in the other.
[0094] Specifically, the terminal can determine the occlusion area corresponding to the window screen area based on the window screen area, and use the area outside the occlusion area as the display area. For example... Figure 12 As shown, the screen displays windows 5, 6, and 7. Only a portion of windows 5 and 7 is displayed on the screen, while the entire area of window 6 is displayed. Window 6 overlaps with windows 5 and 7 on the screen, with window 7 obscuring window 6. The unobscured area of window 6 is its display area, i.e., its visible area.
[0095] In some embodiments, the terminal can perform a ratio calculation between the display size and the window size, for example, by dividing the display size by the window size, and use the result of the ratio calculation as the display level corresponding to the current display window.
[0096] In some embodiments, the display size is the area of the display area and the window size is the window area. The terminal can perform a ratio calculation between the area of the display area and the window area, and use the result of the ratio calculation as the display level corresponding to the current display window.
[0097] In this embodiment, the display size of the display area corresponding to the current display window is determined based on the window display position, the window size corresponding to the current display window is obtained, and the display degree corresponding to the current display window is determined based on the display size and the window size. Thus, the size of the display degree can accurately reflect the proportion of the visible area in the window to the entire window, improving the accuracy of the display degree.
[0098] In some embodiments, determining the currently displayed software window that the user is interested in from the set of currently displayed windows based on a window detection strategy includes: obtaining a sequence of target content information displayed by each currently displayed window in the set of currently displayed windows displayed on the screen; determining the content variability of the currently displayed window based on the differences in content information in the target content information sequence; the content variability is positively correlated with the differences in content information; and selecting at least one of the currently displayed windows whose content variability is greater than the variability threshold as the currently displayed software window that the user is interested in.
[0099] Here, "content information" refers to the content displayed in the window, which can be of any form, including at least one of images or text. "Target content information" refers to the content collected from the current display window within a target time period, such as 50 seconds. The target content information sequence is a sequence obtained by arranging each piece of target content information according to its collection time; the earlier the collection time, the higher the ranking of the target content information in the sequence. "Collection time" refers to the time it takes to collect content from the current display window.
[0100] Content information difference refers to the difference between target content information and its adjacent content information. Adjacent content information can be target content information that is adjacent to the target content information in the target content information sequence, and can include at least one of the target content information that is forward adjacent to the target content information or backward adjacent to the target content information.
[0101] Content variability reflects the degree of change in the content within the current software window during a target time period. A higher content variability indicates a greater degree of change in the content within the current software window during the target time period. The variability threshold can be preset or set as needed.
[0102] Specifically, the terminal can take a screenshot of the current software window and use the screenshot as the target content information corresponding to the current software window.
[0103] In some embodiments, the terminal can obtain the current display window whose content change degree is greater than the change degree threshold from the current display window set, and use it as the content change window. The various content change windows are combined into a content change window set, and at least one window in the content change window set is used as the current software window. For example, all content change windows in the content change window set can be used as the current software window, or the content change window set can be further filtered to obtain the current software window.
[0104] In this embodiment, the target content information sequence displayed by each current display window in the set of current display windows displayed on the screen is obtained. The content change degree corresponding to the current display window is determined based on the content information difference in the target content information sequence. The content change degree is positively correlated with the content information difference. At least one current display window with a content change degree greater than the change degree threshold is taken as the current software window that the user is paying attention to, thereby improving the accuracy of obtaining the window that the user is paying attention to.
[0105] In some embodiments, determining the content change degree corresponding to the current display window based on the content information differences in the target content information sequence includes: obtaining target content information and adjacent content information corresponding to the target content information from the target content information sequence; obtaining the information change degree of the target content information relative to the adjacent content information based on the differences between the target content information and the adjacent content information; and performing statistical calculations on the information change degree corresponding to each target content information to obtain the content change degree corresponding to the current display window.
[0106] Among them, adjacent content information refers to target content information that is adjacent to the target content information in the target content information sequence, and may include at least one of the target content information that is forward adjacent to the target content information or backward adjacent to the target content information.
[0107] Specifically, the terminal can calculate the information difference value between the target content information and the adjacent content information, and obtain the information change degree of the target content information relative to the adjacent content information based on the information difference value. The information change degree is positively correlated with the information difference value.
[0108] In some embodiments, the terminal can obtain the degree of information change corresponding to each target content information, perform statistical calculations on each degree of information change, and use the result of the statistical calculation as the degree of content change corresponding to the current display window. For example, the terminal can perform an average calculation on each degree of information change and use the result of the average calculation as the degree of content change corresponding to the current display window.
[0109] In some embodiments, the content information is a window image, which is an image obtained by capturing an image of a window. The target content information can be a target window image, the adjacent content information can be adjacent window images, and the information difference value can be the difference between the target window image and the adjacent window images. For example, the terminal can calculate the difference between the pixel values of pixels in the target window image and the pixel values of pixels in the adjacent window images, obtain the pixel difference value corresponding to each pixel, perform statistical operations on each pixel difference value, such as summation, and use the result of the operation as the information difference value.
[0110] In this embodiment, target content information and adjacent content information corresponding to the target content information are obtained from the target content information sequence. Based on the difference between the target content information and the adjacent content information, the information change degree of the target content information relative to the adjacent content information is obtained. Statistical calculation is performed on the information change degree corresponding to each target content information to obtain the content change degree corresponding to the current display window. Through statistical calculation, the accuracy of the calculated content change degree is improved.
[0111] In some embodiments, the process of calculating the software usage time corresponding to each current software identifier in the current software identifier set to obtain the target usage time corresponding to the current software identifier includes: comparing the target content information in the target content information sequence with the corresponding adjacent content information to obtain a content comparison result; obtaining each target content information whose content comparison result is inconsistent from the target content information sequence as comparison content information; segmenting the target content information sequence to obtain the comparison content information sequence corresponding to the comparison content information; and adding the content display time corresponding to the comparison content information sequence to the software usage time corresponding to the current software identifier to obtain the target usage time corresponding to the current software identifier.
[0112] The content comparison result can be either consistent or inconsistent. Comparative content information refers to target content information in the target content information sequence whose comparison result is inconsistent. The comparative content information sequence includes multiple pieces of comparative content information, meaning at least two. The comparative content information sequence is a subsequence of the target content information sequence, and there can be multiple comparative content information sequences. Content display duration refers to the time length corresponding to the comparative content information sequence. Adjacent content information in the target content information sequence is also adjacent in the comparative content information sequence. The individual pieces of comparative content information in the comparative content information sequence are arranged according to their order in the target content information sequence.
[0113] Specifically, the terminal can calculate the difference between the target content information and its corresponding adjacent content information, obtain the content information difference, and compare the content information difference with an information difference threshold. When the content information difference is less than the information difference threshold, the content comparison result is determined to be consistent; when the content information difference is greater than the information difference threshold, the content comparison result is determined to be inconsistent. The information difference threshold can be set as needed or preset.
[0114] In some embodiments, the terminal can segment the target content information sequence according to the position of the comparison content information in the target content information sequence to obtain various comparison content information sequences. During segmentation, adjacent comparison content information is segmented into the same comparison content information sequence, and the comparison content information in the comparison content information sequence is arranged according to its order in the target content information sequence. For example, if the target content information sequence is (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10), and the comparison results of S5, S6, and S7 are all consistent, then the comparison content information sequence can include both the sequences (S1, S2, S3, S4) and (S8, S9, S10).
[0115] In some embodiments, the terminal can obtain the starting comparison content information and the ending comparison content information from the comparison content information sequence, obtain the collection time corresponding to the starting comparison content information as the start time, obtain the collection time corresponding to the ending comparison content information as the end time, and use the time interval between the start time and the end time as the content display duration corresponding to the comparison content information sequence. The starting comparison content information refers to the comparison content information that is ranked first in the comparison content information sequence, and the ending comparison content information refers to the comparison content information that is ranked last in the comparison content information sequence.
[0116] In this embodiment, the target content information in the target content information sequence is compared with the corresponding adjacent content information to obtain the content comparison result. Each target content information whose comparison result is inconsistent is obtained from the target content information sequence and used as the comparison content information. The target content information sequence is then segmented to obtain the comparison content information sequence corresponding to the comparison content information. The content display time corresponding to the comparison content information sequence is added to the software usage time corresponding to the current software identifier to obtain the target usage time corresponding to the current software identifier. Since the content comparison result is inconsistent, it indicates that the adjacent content information has changed. When the content changes, it is very likely that the user is paying attention to that content. For example, when the content is a video, when playing the video, it is very likely that the user is watching that video. Therefore, the duration of the content information change can be included in the software usage time, reducing the situation where the duration of the content that has not changed is included in the software usage time, thus improving the accuracy of the software usage time statistics.
[0117] In some embodiments, using at least one of the currently displayed windows with a content change degree greater than a change degree threshold as the current software window that the user is paying attention to includes: obtaining the currently displayed window with a content change degree greater than a change degree threshold as the content change window; determining the content change area corresponding to the content change window; and using the content change window as the current software window that the user is paying attention to when the occlusion degree of the content change area is less than the occlusion threshold.
[0118] The content change area refers to the region within the content change window where content changes over time. The occlusion level reflects the proportion of the visible area within the content change area relative to the entire content change area; a higher occlusion level results in a smaller proportion of the visible area within the content change area. The occlusion threshold can be set as needed or preset, for example, to 10%.
[0119] Specifically, the terminal can acquire the visible area within the content-changing area as the visible changing area, acquire the area of the visible changing area as the first area, acquire the area of the content-changing area as the second area, and perform a ratio calculation between the first area and the second area. The result of this calculation is used as the visibility level corresponding to the content-changing area. The degree of occlusion is determined based on the visibility level, and visibility level and occlusion level are negatively correlated. The sum of visibility level and occlusion level is 100%. For example, when the visibility level is 80%, the occlusion level is 20%.
[0120] In some embodiments, the terminal can obtain a visibility threshold, compare the visibility of the content change area with the visibility threshold, and when the visibility is greater than the visibility threshold, designate the content change window as the current software window that the user is focusing on. The visibility threshold can be preset, for example, 90%, or can be set as needed.
[0121] In some embodiments, when the content change area is visible, i.e., when the occlusion degree of the content change area is 0%, the terminal can use the content change window as the current software window that the user is paying attention to.
[0122] In this embodiment, the currently displayed window with a content change degree greater than a change degree threshold is obtained as the content change window. The content change area corresponding to the content change window is determined. When the occlusion degree of the content change area is less than the occlusion threshold, the content change window is taken as the current software window that the user is paying attention to. Since the area where the change occurs may be playing a video, if the window where the video is playing is not the topmost window on the screen or a fully displayed window, and if the area where the change occurs is visible, i.e., not occluded, the user may be watching a video. Therefore, when the occlusion degree of the content change area is less than the occlusion threshold, the content change window is taken as the current software window that the user is paying attention to, which improves the detection accuracy of the window that the user is paying attention to.
[0123] In some embodiments, designating at least one of the currently displayed windows with a content variability greater than a variability threshold as the current software window that the user is currently focused on includes: determining the currently displayed window with a content variability greater than a variability threshold as a content variability window; determining the content repetition degree corresponding to the content variability window; and when the content repetition degree corresponding to the content variability window is less than a repetition threshold, designating the content variability window as the current software window that the user is currently focused on.
[0124] Content duplication rate reflects the proportion of repeated content within the changing content in the content change window. The duplication rate threshold can be set as needed or pre-set. Content duplication rate can be represented quantitatively; for example, screenshots can be taken of the content change window within a specific time period to obtain multiple images. The number of repeatedly occurring images can then be counted and used as the content duplication rate.
[0125] Specifically, the terminal can collect content from the content change window in a first time period, arranging the collected content information according to the collection time to obtain a first content information sequence. Similarly, it can collect content from the content change window in a second time period, arranging the collected content information according to the collection time to obtain a second content information sequence. The first and second time periods can be the same length, for example, both 50 seconds. The first and second time periods can be adjacent time periods, for example, the first time period is the first 30 seconds of a minute, and the second time period is the last 30 seconds of that minute. The terminal can determine the content repetition degree corresponding to the content change window based on the first and second content information sequences, for example, by determining the content repetition degree based on the difference or relevance between the first and second content information sequences. The total time period consisting of the first and second time periods includes the target time period.
[0126] In some embodiments, the terminal can obtain the currently displayed window with a content change degree greater than the change degree threshold as the content change window, determine the content change area corresponding to the content change window, determine the occlusion degree corresponding to the content change area, take the content change window with the occlusion degree less than the occlusion threshold as the candidate software window, obtain the content repetition degree corresponding to the candidate software window, and when the content repetition degree corresponding to the content change window is less than the repetition threshold, take the content change window as the current software window that the user is paying attention to.
[0127] In this embodiment, since advertisements are characterized by repeated playback, the current display window with a content change degree greater than the change degree threshold is identified as the content change window. The content repetition degree corresponding to the content change window is determined. When the content repetition degree corresponding to the content change window is less than the repetition threshold, the content change window is identified as the current software window that the user is paying attention to. This can reduce the situation where the window where the advertisement is located is identified as the window that the user is paying attention to, and improve the detection accuracy of the window that the user is paying attention to.
[0128] In some embodiments, determining the content repetition degree corresponding to the content change window includes: determining a first content information sequence corresponding to the content change window and a second content information sequence adjacent to the first content information sequence; extracting content information from the first content information sequence according to a content extraction strategy; arranging the extracted first content information to obtain a first comparison information sequence.
[0129] The time at which each piece of content information in the first content information sequence is collected can be adjacent to the time at which each piece of content information in the second content information sequence is collected.
[0130] A content extraction strategy refers to a strategy for extracting content information from a sequence of content information. It may include at least one of an extraction time interval or an extraction frequency. The extraction time interval and extraction frequency can be set as needed or preset. The method of extracting content information from the first content information sequence is the same as the method of extracting content information from the second content information sequence. The first content information refers to the content information in the first content information sequence. The second content information refers to the content information in the second content information sequence.
[0131] The first comparison information sequence is a sequence obtained by arranging the first content information extracted from the first content information sequence according to the collection time. The second comparison information sequence is a sequence obtained by arranging the second content information extracted from the second content information sequence according to the collection time.
[0132] Sequence relevance reflects the correlation between a first comparative information sequence and a second comparative information sequence. A higher sequence relevance indicates a greater correlation between the two sequences. Sequence relevance is positively correlated with content redundancy. For example, a terminal can use sequence relevance as the content redundancy level corresponding to a content change window.
[0133] Specifically, the terminal can collect content from the content change window in a first time period, arranging the collected content information according to the collection time to obtain a first content information sequence. Then, in a second time period, it can collect content from the content change window again, arranging the collected content information according to the collection time to obtain a second content information sequence. The first and second time periods can be the same length, for example, both can be 50 seconds. The first and second time periods can be adjacent time periods, for example, the first time period is the first 30 seconds of a minute, and the second time period is the last 30 seconds of that minute.
[0134] In some embodiments, the number of first content information items included in the first content information sequence is the same as the number of second content information items included in the second content information sequence. Since the extraction strategy for the first content information sequence is the same as the extraction strategy for the second content information sequence, the number of first comparison information items included in the first comparison information sequence is the same as the number of second comparison information items included in the second comparison information sequence. First comparison information refers to the content information included in the first comparison information sequence, and second comparison information refers to the content information included in the second comparison information sequence. The terminal can obtain information with the same order from the first and second comparison information sequences, form comparison information pairs, and compare the two comparison information items in each pair to obtain the information comparison results corresponding to each order. For example, the terminal can obtain first comparison information with a first order from the first comparison information sequence, and second comparison information with a first order from the second comparison information sequence, forming a comparison information pair corresponding to the first order. The first order can be any order in the comparison information sequence. The information comparison result can be either consistent or inconsistent. The terminal can count the number of information pairs that match the comparison results, take this number as the number of matching information pairs, count the total number of information pairs, take this number as the total number of information pairs, perform a ratio calculation between the number of matching information pairs and the total number of information pairs, and take the result of the ratio calculation as the sequence correlation between the first comparison information sequence and the second comparison information sequence.
[0135] In this embodiment, a first content information sequence corresponding to the content change window and a second content information sequence adjacent to the first content information sequence are determined. Content information is extracted from the first content information sequence according to a content extraction strategy. The extracted first content information is arranged to obtain a first comparison information sequence. Content information is extracted from the second content information sequence according to the same strategy. The extracted second content information is arranged to obtain a second comparison information sequence. The sequence correlation between the first and second comparison information sequences is obtained. The content repetition corresponding to the content change window is determined based on the sequence correlation. Since the sequence correlation is positively correlated with the content repetition, the higher the sequence correlation, the higher the content repetition, thus improving the accuracy of the content repetition.
[0136] In some embodiments, the process of calculating the software usage time corresponding to each current software identifier in the current software identifier set to obtain the target usage time corresponding to the current software identifier includes: obtaining the forward software identifier set corresponding to the current software identifier set; comparing the software identifiers in the forward software identifier set with the software identifiers in the current software identifier set, and taking the matching software identifiers as the target software identifiers; adding the target usage time to the software usage time corresponding to the target software identifier to obtain the target usage time corresponding to the target software identifier; the target usage time is the time interval between the forward detection time and the current detection time, where the forward detection time is the detection time corresponding to the forward software identifier set and the current detection time is the detection time corresponding to the current software identifier set.
[0137] The terminal can periodically trigger software usage detection commands. The detection period can be set as needed or preset, for example, 1 minute. The current detection time can be the current detection period, and the previous detection time can be the previous detection period. The current software identifier set is the set obtained at the current detection time, and the previous software identifier set is the set obtained during the previous detection time. The method for obtaining the previous software identifier set during the previous detection time is the same as the method for obtaining the current software identifier set during the current detection time.
[0138] Specifically, the terminal can obtain the software usage duration of the target software identifier stored at the current time. Taking one day as an example, if the current time is 12:00 noon, the software usage duration corresponding to software A at 12:00 noon is one hour. The terminal can add the stored software usage duration to the target duration, and use the result of the summation as the stored software usage duration. The target usage duration refers to the software usage duration within a statistical period, which can be at least one of daily, weekly, monthly, or yearly periods. For example, when it is necessary to calculate the software usage duration corresponding to the target software identifier within one week (i.e., when the statistical period is one week), the target usage duration is the total time the user uses the target software within one week, and the target software is the software corresponding to the target software identifier.
[0139] In this embodiment, the forward software identifier set corresponding to the current software identifier set is obtained. The software identifiers in the forward software identifier set are compared with the software identifiers in the current software identifier set. The software identifiers that match the comparison are taken as the target software identifiers. The target duration is added to the software usage duration corresponding to the target software identifier to obtain the target usage duration corresponding to the target software identifier. This increases the duration for software that is noticed by the user in two adjacent detection times, reduces the situation of taking the time when the user switches windows as the time when the user notices the window, and improves the accuracy of the statistical software usage duration.
[0140] In some embodiments, the method further includes: obtaining the object task corresponding to the target object, obtaining the target usage time corresponding to the task-related software related to the object task; and outputting task prompt information for the object task when the target usage time corresponding to the task-related software is less than the task completion time threshold of the object task.
[0141] The target object can be the user corresponding to the terminal. The target task refers to the task to be completed by the target object. For example, when the target object is a student, the target task could be homework, such as homework assigned by a teacher. The target task can be a task actively defined by the user, or a task specified by an object related to the target object. For example, when the target object is a student, the target task could be a task set by a parent for the student, or a task set by a teacher for the student.
[0142] Task-related software refers to the software needed to complete a task. For example, when a teacher or parent creates an assignment on a student learning software, the task-related software is that student learning software.
[0143] The task completion time threshold can be set based on the user's operation, determined based on the difficulty of the task, or extracted from the task information of the task. For example, if the task information includes watching video A for 20 minutes, then 20 minutes can be used as the task completion time threshold.
[0144] The task prompt message may include at least one of an object task identifier or a software identifier, whereby the object task identifier is used to uniquely identify the object task. The task prompt message may also include the task completion status or incomplete task status, for example, the task prompt message may be "Job B in software S is 80% complete, with 20% remaining. Please complete it as soon as possible."
[0145] Specifically, the terminal can obtain the object task corresponding to the target object and the task information corresponding to the object task from the task-related software, obtain the task completion time threshold from the task information, and output the task prompt information of the object task when the target usage time corresponding to the task-related software is less than the task completion time threshold of the object task.
[0146] In this embodiment, when the target usage time of the task-related software is less than the task completion time threshold of the object task, the task prompt information of the object task is output, which can promptly remind the user to complete the task and improve the efficiency of task completion.
[0147] In some embodiments, the terminal can obtain the usage time threshold corresponding to the current software identifier, compare the target usage time corresponding to the current software identifier with the usage time threshold, and when the target usage time reaches the usage time threshold, generate and display the timeout prompt information corresponding to the current software identifier.
[0148] The usage time threshold can be preset or set as needed. The timeout message can include a software identifier, and the timeout message could be something like "You have used the game software R for 2 hours today."
[0149] In this embodiment, when the target usage time reaches the usage time threshold, an overtime prompt message is displayed, which can reduce the time users spend engrossed in the software and forget to use it, and help users use the software reasonably.
[0150] In some embodiments, such as Figure 14A As shown, a software usage management method is provided, including the following steps:
[0151] Step S1402: In response to the software usage detection command, obtain a software usage detection strategy set, which includes window detection strategy and resource usage detection strategy; the window detection strategy includes window focus detection, window area occupancy detection and image rendering frequency detection; the resource usage detection strategy includes audio channel occupancy detection.
[0152] like Figure 14B As shown, the terminal can have software installed to detect the usage duration of the software. Running the software (detection service running) refers to running the software used to detect the usage duration of the software. This software used to detect the usage duration is referred to as the duration detection software. Responding to the software usage detection command, the duration detection software can use window focus detection, window area occupancy detection, image rendering frequency detection, and audio channel occupancy detection to determine the process path information corresponding to the process for which duration statistics need to be performed. When using window focus detection, window area occupancy detection, image rendering frequency detection, and audio channel occupancy detection, these four detection methods can be used simultaneously or sequentially. This application does not limit the detection order of these four detection methods.
[0153] Window focus detection is used to determine the focus window from among multiple windows. The focus window is the window displayed at the top of the screen and in a fully displayed state, meaning that the entire window can be used for observation.
[0154] Step S1404A: Obtain the current set of display windows, and use the window focus detection strategy to perform focus window detection on the current set of display windows;
[0155] Step S1404C: Determine whether there is a focus window in the current display window set. If there is, proceed to step S1404E; if there is not, proceed to step S1404D.
[0156] Step S1404E: Select the focused window in the current display window set as the current software window that the user is currently focusing on;
[0157] The current display window set includes multiple currently displayed windows. The terminal can correspond to one or more screens. The terminal can obtain at least one window displayed on each screen to form the current display window set. For example, when a user's computer has multiple screens, and each screen has fully displayed windows, the terminal can determine which screen the user's last action occurred on, such as the user's last mouse operation or last keyboard input operation, and form the current display window set from the windows on the screen where the user's last action occurred.
[0158] Step S1404B: Use the channel occupancy detection strategy to perform channel occupancy detection, obtain the process currently occupying the channel, and obtain the identifier corresponding to the process as the identifier of the second execution unit.
[0159] In one scenario, although the window is completely obscured, sound is still playing, such as from a music player, audiobook, or other audiobook. In this case, the user's attention is likely focused on the sound, and even if the window is on top, the user's attention is not on the software in front. In this situation, the terminal can obtain the process driving the sound to identify the software currently playing the sound and calculate its duration.
[0160] Of course, if the user is interacting with the foreground software, such as scrolling the mouse, typing on the keyboard, or using the microphone, then the usage statistics for the foreground software should not be ignored; the statistics for the window with the user interaction should have the highest priority. The usage time of both background software and the interacting software can be statistically analyzed simultaneously.
[0161] Step S1404D: Use window area proportion detection to perform occlusion detection on the current set of display windows;
[0162] Step S1404F: Determine whether all currently displayed windows in the current display window set are in a fully displayed state. If yes, proceed to step S1404G; otherwise, proceed to step S1404H.
[0163] Step S1404G: Select each currently displayed window in the current display window set as the current software window that the user is currently focusing on;
[0164] In this context, "the entire area of the currently displayed window is visible" means that the entire area of the currently displayed window can be observed by the user. Given the increasingly larger screen sizes used by users, and even the possibility of users using multiple screens, window area occupancy detection can detect software that the user is currently focusing on, which is often missed by window focus detection methods.
[0165] Step S1404H: Obtain the window display position of each current display window in the current display window set, determine the display degree of each current display window based on the window display position, and obtain the current display window with the highest display degree from the current display window set as the current software window that the user is paying attention to;
[0166] Specifically, the terminal can determine the display size of the display area corresponding to the current display window based on the window display position, obtain the window size corresponding to the current display window, and determine the display degree corresponding to the current display window based on the display size and the window size.
[0167] Step S1404I: Based on image rendering frequency detection, obtain the target content information sequence displayed by each current display window in the current display window set except for the current display window with the highest display degree. Based on the content information difference in the target content information sequence, determine the content change degree corresponding to the current display window. The current display window with a content change degree greater than the change degree threshold is taken as the content change window.
[0168] Specifically, the terminal can obtain target content information and adjacent content information corresponding to the target content information from the target content information sequence. Based on the difference between the target content information and the adjacent content information, it can obtain the information change degree of the target content information relative to the adjacent content information. It can also perform statistical calculations on the information change degree corresponding to each target content information to obtain the content change degree corresponding to the current display window.
[0169] For video playback or windowed game windows, the terminal can detect the frequency of changes in the rendered screen and combine this with the proportion of the displayed window to comprehensively determine whether the user's attention is on that window. For example, the terminal can take screenshots of the window at regular intervals, determine the difference between the current frame and the previous frame, and determine the frequency of screen changes within a short period of time. For windows with a high frequency of changes, and where the changing parts are not obscured by other windows, the duration of these changes can be statistically analyzed.
[0170] Of course, this detection method may also detect some pre-roll ads on web pages. In this case, the terminal can determine whether a repeated image appears multiple times within a short period of time. If so, it can be determined that the image rendering change may be a pre-roll ad on the web page and can be ignored.
[0171] Step S1404J: Determine the content change area corresponding to the content change window, obtain the occlusion degree of the content change area, and take the content change window with an occlusion degree less than the occlusion threshold as the candidate display window.
[0172] Step S1404K: Determine the content duplication rate corresponding to the candidate display windows, and take the candidate display windows with content duplication rate less than the duplication rate threshold as the current software window that the user is paying attention to.
[0173] Specifically, the terminal can determine a first content information sequence corresponding to the content change window and a second content information sequence adjacent to the first content information sequence; extract content information from the first content information sequence according to a content extraction strategy, arrange the extracted first content information to obtain a first comparison information sequence; extract content information from the second content information sequence according to a content extraction strategy, arrange the extracted second content information to obtain a second comparison information sequence; obtain the sequence correlation between the first comparison information sequence and the second comparison information sequence, and determine the content repetition degree corresponding to the content change window based on the sequence correlation degree, wherein the sequence correlation degree and the content repetition degree are positively correlated.
[0174] When the content repetition is less than the repetition threshold, the terminal can determine that it is playing a video or playing a game. When the content repetition is greater than the repetition threshold, the terminal can determine that the area of content change is the area where the advertisement is located; that is, the changed content is the advertisement. Figure 13 As shown, the terminal takes a screenshot of the window and compares the differences between the images. When it is determined that the number of times the image changes within a short period of time is greater than the number of times threshold is reached, the number of times threshold can be set as needed, such as 5 times. The number of changes can reflect the degree of content change, and the number of changes is positively correlated with the degree of content change. When the number of changes is greater than the number of times threshold, the terminal determines whether there is a looping image. A looping image refers to an image that appears repeatedly. When it exists, the changed content is determined to be a border advertisement or a GIF. When there is no looping image, the changed content is determined to be a video or game being played.
[0175] Step S1406: Obtain the first execution unit identifier corresponding to the current software window, obtain the first software identifier corresponding to the first execution unit identifier, and obtain the second software identifier corresponding to the second execution unit identifier;
[0176] like Figure 14B As shown, the execution unit identifier can be, for example, process path information. When the terminal obtains the process path information, it can determine the software name corresponding to the process path information, such as... Figure 14B As shown, the software name corresponding to the process path information can be determined using at least one of four methods: "file properties," "registry," "shortcut," or "manual operation." The software identifier can be, for example, the software name. Figure 15As shown, "File Attributes" refers to obtaining the file description or product name, "Registry" refers to obtaining the Uninstall registry entry, "Shortcut" refers to obtaining the installation path based on the shortcut and matching the installation path, and "Manual Operation" corresponds to... Figure 15 The term "user tagging or manual operation" refers to this.
[0177] Step S1408: Combine the first software identifier and the second software identifier to determine the current software identifier set;
[0178] Step S1410: Calculate the software usage time corresponding to each current software identifier in the current software identifier set to obtain the target usage time corresponding to the current software identifier.
[0179] Specifically, the terminal can compare the target content information in the target content information sequence with the corresponding adjacent content information to obtain the content comparison result. It can also obtain the target content information that does not match the comparison result from the target content information sequence as the comparison content information. The terminal can then segment the target content information sequence to obtain the comparison content information sequence corresponding to the comparison content information. Finally, the terminal can add the content display duration corresponding to the comparison content information sequence to the software usage duration corresponding to the current software identifier to obtain the target usage duration corresponding to the current software identifier.
[0180] In some embodiments, the terminal may obtain the forward software identifier set corresponding to the current software identifier set, compare the software identifiers in the forward software identifier set with the software identifiers in the current software identifier set, take the matching software identifier as the target software identifier, and add the target duration to the software usage duration corresponding to the target software identifier to obtain the target usage duration corresponding to the target software identifier; the target duration is the time interval between the forward detection time and the current detection time, the forward detection time is the detection time corresponding to the forward software identifier set, and the current detection time is the detection time corresponding to the current software identifier set.
[0181] Step S1412: Display the target usage time.
[0182] The terminal can display target usage time by software name or type. Users can view the ranking and percentage of software usage time within a specific time period on a given day. The terminal can also categorize software by usage type, providing statistics on the percentage of time spent on categories such as office work, gaming, video, social media, and learning. This allows users to clearly understand the proportion of time spent using their computers and thus control the frequency and duration of their software usage.
[0183] Step S1414: Manage the software based on the target usage duration.
[0184] like Figure 16As shown, software management based on usage time can be implemented in "family scenarios," "fatigue control scenarios," and "team management scenarios," and of course, in other scenarios as well; the scenario type is not limited here. In the "family scenario," the usage time of entertainment software can be controlled, and reminders for students to use learning software can be set at regular intervals. Parents can be alerted when the usage time of entertainment software exceeds the set limit. In the "fatigue control scenario," alerts can be issued when the usage time of video software exceeds the set limit, and alerts can be issued for single-boot usage time. For example, if parents want to control their children's gaming and video usage time, alerts and limits for video and game software usage time will be provided. Parents can use mobile apps, mini-programs, or web pages to monitor their children's software usage and reduce eye fatigue caused by prolonged screen time. Reasonable allocation of computer usage time can improve efficiency and prevent addiction. Timed reminders for exceeding usage time limits can be displayed. The terminal can provide reasonable time thresholds, and users can also customize them.
[0185] The software usage management method provided in this application enables a software screen usage time management solution for Windows systems. It comprehensively assesses software usage across multiple dimensions using technologies such as focus capture, software window visible area detection (i.e., window area occupancy detection), audio channel detection, and image rendering changes. This allows for better statistical analysis of each software's usage time and provides more personalized software usage suggestions to assist users in managing their time more efficiently. This method can be applied to home and team management scenarios. It can accurately calculate and display the user's software usage time on a Windows computer in chart form, allowing users to view the distribution of their software usage time by software and category, enabling them to track, manage, and control their time, thereby improving efficiency. Third-party software can also be used to statistically analyze user software usage time and present the data in chart form, thus achieving control over software usage time. This solution comprehensively covers software usage scenarios on Windows systems through four methods: software window focus capture, software window visible area detection, detection of software currently occupying the audio channel, and window image rendering detection, thereby obtaining accurate user computer usage time scenarios. The software usage management method provided in this application excludes windows switched out within 5 seconds and system processes to handle error data, primarily focusing on software located in the Windows directory of the system drive. This allows for more accurate statistics on the usage data of software that users are interested in.
[0186] It should be understood that, although Figure 2-16The steps in the flowchart are shown sequentially as indicated by the arrows, but these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified herein, there is no strict order in which these steps are executed, and they can be performed in other orders. Figure 2-16 At least some of the steps in the process may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but may be executed at different times. The execution order of these steps or stages is not necessarily sequential, but may be executed in turn or alternately with other steps or at least some of the steps or stages in other steps.
[0187] In some embodiments, such as Figure 17 As shown, a software usage management device is provided. This device can be a software module, a hardware module, or a combination of both, integrated into a computer device. Specifically, the device includes: a software usage detection strategy set acquisition module 1702, a first execution unit identifier acquisition module 1704, a second execution unit identifier acquisition module 1706, a software identifier acquisition module 1708, a current software identifier set obtaining module 1710, and a target usage duration obtaining module 1712, wherein:
[0188] The software usage detection strategy set acquisition module 1702 is used to acquire the software usage detection strategy set in response to the software usage detection command. The software usage detection strategy set includes window detection strategy and resource usage detection strategy.
[0189] The first execution unit identifier acquisition module 1704 is used to determine the current software window that the user is interested in from the current set of displayed windows based on the window detection strategy, and to obtain the first execution unit identifier corresponding to the current software window.
[0190] The second execution unit identifier acquisition module 1706 is used to perform playback resource occupation detection based on the resource occupation detection strategy and obtain the identifier of the second execution unit currently occupying playback resources.
[0191] The software identifier acquisition module 1708 is used to acquire the first software identifier corresponding to the first execution unit identifier, and to acquire the second software identifier corresponding to the second execution unit identifier;
[0192] The current software identifier set acquisition module 1710 is used to combine the first software identifier and the second software identifier to obtain the current software identifier set;
[0193] The target usage duration acquisition module 1712 is used to statistically analyze the software usage duration corresponding to each current software identifier in the current software identifier set, and obtain the target usage duration corresponding to the current software identifier.
[0194] In some embodiments, the first execution unit identifier acquisition module 1704 includes:
[0195] The window display position acquisition unit is used to acquire the window display position of each currently displayed window in the set of currently displayed windows on the screen;
[0196] The current software window is obtained by a unit used to determine the display level of each currently displayed window based on its display position; based on the display level of the currently displayed window, the software window that meets the user's attention criteria is selected from the set of currently displayed windows and used as the current software window that the user is paying attention to. The user's attention criteria include at least one of the following: the display level is greater than the level threshold or the display level is ranked before the ranking threshold.
[0197] In some embodiments, the current software window obtaining unit is further configured to determine the display size of the display area corresponding to the current display window based on the window display position; obtain the window size corresponding to the current display window; and determine the display degree corresponding to the current display window based on the display size and the window size.
[0198] In some embodiments, the first execution unit identifier acquisition module 1704 includes:
[0199] The target content information sequence acquisition unit is used to acquire the target content information sequence displayed by each currently displayed window in the set of currently displayed windows on the screen;
[0200] The content change degree determination unit is used to determine the content change degree corresponding to the current display window based on the differences in content information in the target content information sequence; the content change degree is positively correlated with the differences in content information.
[0201] The current software window is obtained as a unit, which is used to select at least one of the currently displayed windows whose content changes more than a change threshold as the current software window that the user is focusing on.
[0202] In some embodiments, the content change degree determination unit is further configured to obtain target content information and adjacent content information corresponding to the target content information from the target content information sequence; obtain the information change degree of the target content information relative to the adjacent content information based on the difference between the target content information and the adjacent content information; and perform statistical calculations on the information change degree corresponding to each target content information to obtain the content change degree corresponding to the current display window.
[0203] In some embodiments, the target usage duration obtaining module 1712 includes:
[0204] The content comparison result obtaining unit is used to compare the target content information in the target content information sequence with the corresponding adjacent content information to obtain the content comparison result;
[0205] The comparison content information obtaining unit is used to obtain the target content information that is inconsistent in the comparison result from the target content information sequence, and use it as the comparison content information;
[0206] The comparison content information sequence obtaining unit is used to segment the comparison content information sequence corresponding to the comparison content information from the target content information sequence;
[0207] The first target usage duration acquisition unit is used to add the content display duration corresponding to the comparison content information sequence to the software usage duration corresponding to the current software identifier, so as to obtain the target usage duration corresponding to the current software identifier.
[0208] In some embodiments, the current software window obtaining unit is further configured to obtain the current display window whose content change degree is greater than the change degree threshold, as the content change window; determine the content change area corresponding to the content change window; and when the occlusion degree of the content change area is less than the occlusion threshold, use the content change window as the current software window that the user is paying attention to.
[0209] In some embodiments, the current software window obtaining unit is further configured to determine the current display window whose content change degree is greater than the change degree threshold, and use it as the content change window; determine the content repetition degree corresponding to the content change window; and when the content repetition degree corresponding to the content change window is less than the repetition threshold, use the content change window as the current software window that the user is paying attention to.
[0210] In some embodiments, the current software window obtaining unit is further configured to determine a first content information sequence corresponding to the content change window and a second content information sequence adjacent to the first content information sequence; extract content information from the first content information sequence according to a content extraction strategy, arrange the extracted first content information to obtain a first comparison information sequence; extract content information from the second content information sequence according to a content extraction strategy, arrange the extracted second content information to obtain a second comparison information sequence; obtain the sequence correlation between the first comparison information sequence and the second comparison information sequence, determine the content repetition degree corresponding to the content change window based on the sequence correlation degree, wherein the sequence correlation degree and the content repetition degree are positively correlated.
[0211] In some embodiments, the target usage duration obtaining module 1712 includes:
[0212] The forward software identifier set acquisition unit is used to obtain the forward software identifier set corresponding to the current software identifier set;
[0213] The target software identifier obtaining unit is used to compare the software identifiers in the forward software identifier set with the software identifiers in the current software identifier set, and to take the software identifiers that match the comparison as the target software identifier;
[0214] The second target usage duration acquisition unit is used to add the target duration to the software usage duration corresponding to the target software identifier to obtain the target usage duration corresponding to the target software identifier; the target duration is the time interval between the forward detection time and the current detection time, the forward detection time is the detection time corresponding to the forward software identifier set, and the current detection time is the detection time corresponding to the current software identifier set.
[0215] In some embodiments, the device further includes:
[0216] The object task acquisition module is used to acquire the object task corresponding to the target object and the target usage time corresponding to the software related to the object task.
[0217] The task prompt information output module is used to output task prompt information for the object task when the target usage time corresponding to the task-related software is less than the task completion time threshold.
[0218] Specific limitations regarding the software usage management device can be found in the limitations of the software usage management method described above, and will not be repeated here. Each module in the aforementioned software usage management device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in or independent of the processor in the computer device in hardware form, or stored in the memory of the computer device in software form, so that the processor can call and execute the operations corresponding to each module.
[0219] In some embodiments, a computer device is provided, which may be a terminal, and its internal structure diagram may be as follows: Figure 18 As shown, the computer device includes a processor, memory, communication interface, display screen, and input devices connected via a system bus. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The communication interface is used for wired or wireless communication with external terminals; wireless communication can be achieved through Wi-Fi, carrier networks, NFC (Near Field Communication), or other technologies. When the computer program is executed by the processor, it implements a software usage management method. The display screen can be an LCD screen or an e-ink screen. The input devices can be a touch layer covering the display screen, buttons, a trackball, or a touchpad mounted on the computer device casing, or an external keyboard, touchpad, or mouse.
[0220] In some embodiments, a computer device is provided, which may be a server, and its internal structure diagram may be as follows: Figure 19 As shown, the computer device includes a processor, memory, and a network interface connected via a system bus. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system, computer programs, and a database. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The database stores data involved in software usage management methods. The network interface communicates with external terminals via a network connection. When the computer program is executed by the processor, it implements a software usage management method.
[0221] Those skilled in the art will understand that Figure 18 and 19 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.
[0222] In some embodiments, a computer device is also provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps in the above method embodiments.
[0223] In some embodiments, a computer-readable storage medium is provided storing a computer program that, when executed by a processor, implements the steps in the above method embodiments.
[0224] In some embodiments, a computer program product or computer program is provided, the computer program product or computer program including computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and executes the computer instructions, causing the computer device to perform the steps in the above-described method embodiments.
[0225] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the methods described above. Any references to memory, storage, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, or optical storage, etc. Volatile memory can include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM), etc.
[0226] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0227] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the invention patent. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this patent application should be determined by the appended claims.
Claims
1. A software usage management method, characterized in that, The method includes: In response to a software usage detection command, a software usage detection strategy set is obtained, the software usage detection strategy set including window detection strategy and resource usage detection strategy; Retrieve the sequence of target content information displayed in each of the currently displayed windows in the set of currently displayed windows on the screen; The content variability of the current display window is determined based on the differences in content information within the target content information sequence; the content variability is positively correlated with the differences in content information. At least one of the currently displayed windows whose content changes more than the change threshold is selected as the current software window that the user is currently focusing on. Obtain the identifier of the first execution unit corresponding to the current software window; Based on the resource occupancy detection strategy, playback resource occupancy detection is performed to obtain the identifier of the second execution unit currently occupying playback resources; Obtain the first software identifier corresponding to the first execution unit identifier, and obtain the second software identifier corresponding to the second execution unit identifier; The current software identifier set is obtained by combining the first software identifier and the second software identifier; The software usage time corresponding to each current software identifier in the current software identifier set is statistically analyzed to obtain the target usage time corresponding to the current software identifier.
2. The method according to claim 1, characterized in that, The method further includes: Get the window position of each currently displayed window in the set of currently displayed windows on the screen; Based on the window display position, the display degree corresponding to each of the currently displayed windows is determined; based on the display degree corresponding to the currently displayed window, software windows that meet the user's attention conditions are selected from the set of currently displayed windows and used as the current software windows that the user pays attention to. The user attention conditions include at least one of the following: the display degree is greater than the degree threshold or the display degree is ranked before the ranking threshold.
3. The method according to claim 2, characterized in that, Determining the display level of each currently displayed window based on its display position includes: The display size of the display area corresponding to the current display window is determined based on the window display position. Get the window size corresponding to the currently displayed window; The display level of the current display window is determined based on the display size and the window size.
4. The method according to claim 1, characterized in that, The determination of the content variability of the currently displayed window based on the differences in content information in the target content information sequence includes: Obtain target content information and adjacent content information corresponding to the target content information from the target content information sequence; Based on the difference between the target content information and the adjacent content information, the degree of information change of the target content information relative to the adjacent content information is obtained; Statistical calculations are performed on the information change degree corresponding to each of the target content information to obtain the content change degree corresponding to the current display window.
5. The method according to claim 4, characterized in that, The step of statistically analyzing the software usage time corresponding to each current software identifier in the current software identifier set to obtain the target usage time corresponding to the current software identifier includes: The target content information in the target content information sequence is compared with the corresponding adjacent content information to obtain the content comparison result; The target content information that is inconsistent in the comparison result is obtained from the target content information sequence and used as the comparison content information; The comparison content information sequence corresponding to the comparison content information is obtained by segmenting the target content information sequence; The target usage duration corresponding to the current software identifier is obtained by adding the content display duration corresponding to the comparison content information sequence to the software usage duration corresponding to the current software identifier.
6. The method according to claim 1, characterized in that, The step of designating at least one currently displayed window whose content change exceeds a change threshold as the currently focused software window includes: Get the currently displayed window whose content change rate is greater than the change rate threshold, and use it as the content change window; Determine the content change area corresponding to the content change window; When the degree of occlusion of the content change area is less than the occlusion threshold, the content change window is taken as the current software window that the user is paying attention to.
7. The method according to claim 1, characterized in that, The step of designating at least one currently displayed window whose content change exceeds a change threshold as the currently focused software window includes: The currently displayed window whose content changes more than the change threshold is identified as the content change window. Determine the content repetition rate corresponding to the content change window; When the content repetition degree corresponding to the content change window is less than the repetition degree threshold, the content change window is taken as the current software window that the user is paying attention to.
8. The method according to claim 7, characterized in that, Determining the content repetition degree corresponding to the content change window includes: Determine the first content information sequence corresponding to the content change window and the second content information sequence adjacent to the first content information sequence; The first content information sequence is extracted according to the content extraction strategy, and the extracted first content information is arranged to obtain the first comparison information sequence. The second content information sequence is extracted according to the content extraction strategy, and the extracted second content information is arranged to obtain the second comparison information sequence. Obtain the sequence correlation between the first comparison information sequence and the second comparison information sequence, and determine the content repetition degree corresponding to the content change window based on the sequence correlation degree, wherein the sequence correlation degree and the content repetition degree are positively correlated.
9. The method according to claim 1, characterized in that, The step of statistically analyzing the software usage time corresponding to each current software identifier in the current software identifier set to obtain the target usage time corresponding to the current software identifier includes: Obtain the forward software identifier set corresponding to the current software identifier set; The software identifiers in the forward software identifier set are compared with the software identifiers in the current software identifier set, and the software identifiers that match the comparison are taken as the target software identifiers. The target usage time is obtained by adding a target duration to the software usage time corresponding to the target software identifier; the target duration is the time interval between the forward detection time and the current detection time, the forward detection time is the detection time corresponding to the set of forward software identifiers, and the current detection time is the detection time corresponding to the set of current software identifiers.
10. The method according to claim 1, characterized in that, The method further includes: Obtain the object task corresponding to the target object, and obtain the target usage time corresponding to the task-related software associated with the object task; When the target usage time corresponding to the task-related software is less than the task completion time threshold of the object task, the task prompt information of the object task is output.
11. A software usage management device, characterized in that, The device includes: The software usage detection strategy set acquisition module is used to acquire the software usage detection strategy set in response to the software usage detection command. The software usage detection strategy set includes window detection strategy and resource usage detection strategy. The target content information sequence acquisition unit is used to acquire the target content information sequence displayed by each currently displayed window in the set of currently displayed windows on the screen; The content change degree determination unit is used to determine the content change degree corresponding to the current display window based on the content information differences in the target content information sequence; the content change degree is positively correlated with the content information differences; The current software window is obtained as a unit, which is used to select at least one of the currently displayed windows whose content change degree is greater than the change degree threshold as the current software window that the user is focusing on. The first execution unit identifier acquisition module is used to acquire the first execution unit identifier corresponding to the current software window; The second execution unit identifier acquisition module is used to perform playback resource occupation detection based on the resource occupation detection strategy and obtain the identifier of the second execution unit currently occupying playback resources. The software identifier acquisition module is used to acquire the first software identifier corresponding to the first execution unit identifier, and to acquire the second software identifier corresponding to the second execution unit identifier; The current software identifier set acquisition module is used to combine the first software identifier and the second software identifier to obtain the current software identifier set; The target usage duration acquisition module is used to statistically analyze the software usage duration corresponding to each current software identifier in the current software identifier set, and obtain the target usage duration corresponding to the current software identifier.
12. The apparatus according to claim 11, characterized in that, The device further includes: The window display position acquisition unit is used to acquire the window display position of each currently displayed window in the set of currently displayed windows on the screen; The current software window obtaining unit is further configured to determine the display degree corresponding to each of the current display windows based on the window display position; and to filter out software windows that meet the user attention conditions from the current display window set based on the display degree corresponding to the current display window, as the current software windows that the user pays attention to, wherein the user attention conditions include at least one of display degree being greater than a degree threshold or display degree being ranked before a ranking threshold.
13. The apparatus according to claim 12, characterized in that, The current software window obtaining unit is further configured to determine the display size of the display area corresponding to the current display window based on the window display position; obtain the window size corresponding to the current display window; and determine the display degree corresponding to the current display window based on the display size and the window size.
14. The apparatus according to claim 11, characterized in that, The content change degree determination unit is further configured to obtain target content information and adjacent content information corresponding to the target content information from the target content information sequence; obtain the information change degree of the target content information relative to the adjacent content information based on the difference between the target content information and the adjacent content information; and perform statistical calculations on the information change degree corresponding to each target content information to obtain the content change degree corresponding to the current display window.
15. The apparatus according to claim 14, characterized in that, The module for obtaining the target usage duration includes: The content comparison result obtaining unit is used to compare the target content information in the target content information sequence with the corresponding adjacent content information to obtain the content comparison result; The comparison content information obtaining unit is used to obtain each target content information whose comparison result is inconsistent from the target content information sequence, as the comparison content information; The comparison content information sequence obtaining unit is used to segment the comparison content information sequence corresponding to the comparison content information from the target content information sequence; The first target usage duration obtaining unit is used to add the content display duration corresponding to the comparison content information sequence to the software usage duration corresponding to the current software identifier, so as to obtain the target usage duration corresponding to the current software identifier.
16. The apparatus according to claim 11, characterized in that, The current software window obtaining unit is further configured to obtain the current display window whose content change degree is greater than the change degree threshold, as the content change window; determine the content change area corresponding to the content change window; and when the occlusion degree of the content change area is less than the occlusion threshold, use the content change window as the current software window that the user is paying attention to.
17. The apparatus according to claim 11, characterized in that, The current software window obtaining unit is further configured to determine the current display window whose content change degree is greater than the change degree threshold, and use it as the content change window; determine the content repetition degree corresponding to the content change window; and when the content repetition degree corresponding to the content change window is less than the repetition threshold, use the content change window as the current software window that the user is paying attention to.
18. The apparatus according to claim 17, characterized in that, The current software window obtaining unit is further configured to determine a first content information sequence corresponding to the content change window and a second content information sequence adjacent to the first content information sequence; extract content information from the first content information sequence according to a content extraction strategy, arrange the extracted first content information to obtain a first comparison information sequence; extract content information from the second content information sequence according to the content extraction strategy, arrange the extracted second content information to obtain a second comparison information sequence; obtain the sequence correlation between the first comparison information sequence and the second comparison information sequence, and determine the content repetition degree corresponding to the content change window based on the sequence correlation degree, wherein the sequence correlation degree and the content repetition degree are positively correlated.
19. The apparatus according to claim 11, characterized in that, The module for obtaining the target usage duration includes: A forward software identifier set obtaining unit is used to obtain the forward software identifier set corresponding to the current software identifier set; The target software identifier obtaining unit is used to compare the software identifiers in the forward software identifier set with the software identifiers in the current software identifier set, and take the software identifiers that match the comparison as the target software identifiers; The second target usage duration obtaining unit is used to add a target duration to the software usage duration corresponding to the target software identifier to obtain the target usage duration corresponding to the target software identifier; the target duration is the time interval between the forward detection time and the current detection time, the forward detection time is the detection time corresponding to the forward software identifier set, and the current detection time is the detection time corresponding to the current software identifier set.
20. The apparatus according to claim 11, characterized in that, The device further includes: The object task acquisition module is used to acquire the object task corresponding to the target object and to acquire the target usage time corresponding to the task-related software related to the object task. The task prompt information output module is used to output task prompt information for the object task when the target usage time corresponding to the task-related software is less than the task completion time threshold of the object task.
21. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 10.
22. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 10.
23. A computer program product comprising computer instructions, characterized in that, When the computer instructions are executed by the processor, they perform the steps of any one of claims 1 to 10.