GB2533455A - Computer Operating Systems - Google Patents

Computer Operating Systems Download PDF

Info

Publication number
GB2533455A
GB2533455A GB1516379.3A GB201516379A GB2533455A GB 2533455 A GB2533455 A GB 2533455A GB 201516379 A GB201516379 A GB 201516379A GB 2533455 A GB2533455 A GB 2533455A
Authority
GB
United Kingdom
Prior art keywords
application
operating system
computer operating
user
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB1516379.3A
Other versions
GB201516379D0 (en
Inventor
Dorricott David
Graham Denton Peter
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zipaddress Ltd
Original Assignee
Zipaddress Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zipaddress Ltd filed Critical Zipaddress Ltd
Publication of GB201516379D0 publication Critical patent/GB201516379D0/en
Publication of GB2533455A publication Critical patent/GB2533455A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Abstract

This application for a piece of software that monitors the keystrokes that a user is inputting to check if they have input a postal code into the application they are currently operating then showing them a record of matching addresses and asking them to select one to input into the application, or program. It works by first polling the foreground window and checking, or reading, the currently active text. It will then check if the application being used is either a word processor or a field based type of application. If the operating system, called Robot has previously stored a configuration for this application then it will use that stored configuration and prompt the user to select a record for a list of matching results. If not then it will first create a new configuration for the new application before prompting the user to select a record.

Description

COMPUTER OPERATING SYSTEMS
Field of the Invention
This invention relates to computer operating systems.
In British Patent Specification No. 2 369 699, to which reference should be made, there is described a computer operating system which includes a first, visible programme for supplying data to the computer and a second, invisible programme which requires no user instruction, the second, invisible programme including means for monitoring the data supplied to the computer by the first, visible programme, which monitoring means includes means for ascertaining the presence of coded information in said data and for generating a signal in response to the presence of said coded information without further action on the part of the user, the nature of which signal is dependent on the nature of said coded information.
Such a computer operating system is hereinafter referred to as "a computer operating system as herein defined". It is an object of the present invention to provide improvements in the computer operating system as herein defined.
In Patent Specification No. 2 369 699, there is also described a method of operating a computer, which method includes installing a first, visible programme and a second, invisible programme in the computer, the second, invisible programme requiring no user instruction and including means for monitoring the data supplied to the computer by the first, visible programme, ascertaining the presence of coded information in said data, and generating a signal in response to the presence of coded information without further action on the part of the user, the nature of which signal is dependent on the nature of the coded information.
The coded information is typically a postcode and such a method of operating a computer is hereinafter referred to as "a method as herein defined". It is an object of the present invention to provide improvements in the method as herein defined.
Summary of the Invention
According to a first aspect of the present invention there is provided a computer operating system as herein defined which includes means for monitoring the application currently in use and "reading" the contents of the current field that the user is inputting.
This may be done by cooperating with the application and sending requests to read it. Where this is not possible, keystroke detection may be used to detect a particular pattern in user input. This means that the user has to type or press nothing other than entering a pattern, for example, a postcode, to trigger the system.
A "signature" of the application based on the controls it displays is preferably created so as to recognise whether or not the application has previously been seen. This is preferably done using controls and their identifiers registered with the operating system so as to reduce the instances of windows moving locations and/or records making the application appear "different" but ensuring that different screens or forms in the same application that require separate configuration do appear differently.
Once a pattern of interest, such as a postcode, is detected, the system preferably configures itself for this application if it does not recognise its signature. It preferably does this by "reading" the window currently displayed by retrieving the list of controls registered with the operating system for that window and identifying those that contain user input.
In cases where input fields do not exist as windows until activated by the user, keystrokes are preferably used to move focus to each field in turn to enable identification of them. These are then preferably mapped to fields that can be inserted, primarily address and contact fields, by "reading" that is displayed adjacent each field. This "reading" is preferably done by sending a message to the field when it is possible to retrieve its text for applications where the text is rendered directly. Alternatively, the text may be "read" by comparing the pixels displayed with those of known fonts to recognise the characters displayed. In the case of applications without fields, the system may configure itself to simulate keystrokes to insert data with line breaks by default.
The arrangement may be such that a user is prompted to select a record, for example, an address, from a list of matching results and, when a record is selected, this will be inserted into the application into the appropriate fields. This insertion is preferably effected by sending a message to each control to set its text. If this is not possible, the arrangement may be such as to simulate a mouse click into each field and to simulate the keystrokes to insert the contents.
While auto-detection is preferably effected where possible, manual up-dating of the field mappings may provide support for the using to tweak and over-ride the default settings so that the fields are inserted in the required manner.
According to a second aspect of the present invention there is provided a method of operating a computer as herein defined, which includes monitoring the application currently in use and "reading" the contents of the current field that the user is inputting
Brief Description of the Drawing
The single figure of the drawing is a flow chart showing the mode of operation of the system.
Description of the Preferred Embodiment
In the following detailed description, the term "Robot" is used to refer to the operating system as such and the term "API" refers to functions in the Windows (RTM) Application Programmers Interface, which is the means by which applications interact with Windows Systems.
Step 1: Robot regular polls the foreground window -this is obtained using "GetForegroundWindow" API. Robot sends a message to the Foreground Window using the SendMessage API to read the currently active text in that application, i.e. that which the user is currently using.
Step 2: If the application is not the last one viewed, Robot creates a "signature" of the application based on the controls that it displays so as to recognise whether it has seen the application previously. This is done using the "GetWindowlnfo" API to get the Windows class name and this is called repeatedly, along with the "GetWindow" API to obtain details of each child control in the application. For a given application, this is compared against a configurable threshold, for example, 90%, to give a reasonable degree of certainty as to whether or not an application is the same as one seen before. This allows an existing stored configuration to be retrieved if, for example, an application is disabled for Robot.
Step 3: Robot also monitors keystrokes using a low level keyboard hook, such as "SetWindowsHookEx" API, to accommodate applications which are not field-based, such as a Word Processor, and these keystrokes are added to a buffer.
Step 4: Robot takes the text read from the active text box in Step 1 or, if the application is not field-based because too large a field is detected, the text from the keyboard detection procedure of Step 2 is taken instead. This text is compared to the format of a Postcode using a regular expression. If it matches and a Word Processor style application is being used, the system proceeds to Step 5 whereas, if it is a Field-based application, the system proceeds to Step 6. If it does not match, we return to Step 1.
Step 5: If the application is one that Robot has not seen before, it defaults to a standard layout with each address line separated by a carriage return for insertion. If Robot has seen it before, it uses the previously stored configuration. In either event Step 10 is next.
Step 6: if the application is one that Robot has seen before, it uses the previously stored configuration and proceeds to Step 10. If the application is one that Robot has not seen before, it "reads" the field captions on the application by going through the controls using the "GetWindowinfo" and "GetWindow" API's in a manner similar to that when the signature was created in Step 2 but, for each label on the form, also using the "SendMessage" API to read the text that the label is displaying.
Step 7: If the "GetWindow" API did not find many fields, Robot simulates tab key presses using the "keybd_event" API to cycle through each field on the application and then to read it with the "GetWindowlnfo" and "SendMessage" API. This is done because some applications, particularly older applications, effective render as an image with fields only becoming detectable when the user moves to them.
Step 8: If field captions on the form could not be read using the "SendMessage" API, then the captions are read by taking an image of the area of the form next to the field, using the "BitBlt" API, and then comparing the pixels on it to an image of each character in standard screen fonts and then storing the resulting text that has been rad.
Step 9: The labels, along with the positions of the fields on the form, are used to auto-detect the likely field contents for address fields. For example, if the label is "Postcode", the Postcode would go there, and "Street" would contain the Street, and so on. This configuration is then stored for future use.
Step 10: Robot prompts the user to select a record, for example, an address, from a list of matching results. The Application configuration (e.g. fields inserted into) can also be altered from here and the user can opt to skip this step in future if there is only one result. When the user selects a result for Field-based applications, we go to Step 11 whereas, if the user selects WordProcessor applications, we go to Step 12. If the user cancels, we return to Step 1.
Step 11: Robot inserts the address, together with any additional data that the user has configured to be inserted alongside the address, using the SendMessage API to insert each address line into the appropriate field on the form. If the field is unavailable (e.g. one of those that had to be read by using Step 7), then a mouse click is simulated, using the mouse_event API within its bounds, to activate the field, and SendMessage API is used in the same way. Robot now returns to Step Ito continue polling for future input.
Step 12: Robot inserts the address, along with any additional data that the user has configured to be inserted alongside the address, by simulating keystrokes using the keybd_event API.

Claims (14)

  1. Claims:- 1 A computer operating system as herein defined which includes means for monitoring the application currently in use and "reading" the contents of the current field that the user is inputting.
  2. 2. A computer operating system as claimed in Claim 1, which includes means for cooperating with the application and sending requests to read it.
  3. 3. A computer operating system as claimed in Claim 1, which includes keystroke detection means for detecting a particular pattern in user input.
  4. 4. A computer operating system as claimed in any one of the preceding claims, which includes means for creating a "signature" of the application based on the controls it displays so as to recognise whether or not the application has previously been seen.
  5. 5. A computer operating system as claimed in Claim 4, in which the arrangement is such that controls and their identifiers registered with the operating system are used so as to reduce the instances of windows moving locations and/or records making the application appear "different" but ensuring that different screens or forms in the same application that require separate configuration do appear differently.
  6. 6. A computer operating system as claimed in any one of the preceding claims, in which the arrangement is such that once a pattern of interest, such as a postcode, is detected, the system configures itself for this application if it does not recognise its signature.
  7. 7. A computer operating system as claimed in Claim 6, in which the arrangement is such that configuration is effected by "reading" the window currently displayed by retrieving the list of controls registered with the operating system for that window and identifying those that contain user input.
  8. 8. A computer operating system as claimed in any one of the preceding claims, in which the arrangement is such that, in cases where input fields do not exist as windows until activated by the user, keystrokes are used to move focus to each field in turn to enable identification of them.
  9. 9. A computer operating system as claimed in Claim 8, in which the arrangement is such that a user is prompted to select a record from a list of matching results and, when a record is selected, this will be inserted into the application into the appropriate fields.
  10. 10. A computer operating system as claimed in Claim 9, in which the insertion is effected by sending a message to each control to set its text or by simulating a mouse click into each field and by simulating the keystrokes to insert the contents.
  11. 11. A computer operating system as claimed in Claim 9 or Claim 10, which includes means for effecting manual updating of the field mappings to provide support for the using to tweak and over-ride the default settings so that the fields are inserted in the required manner.
  12. 12. A computer operating system substantially as hereinbefore described with reference to the accompanying drawing.
  13. 13. A method of operating a computer as herein defined, which includes monitoring the application currently in use and "reading" the contents of the current field that the user is inputting.
  14. 14. A method of operating a computer substantially as hereinbefore described with reference to the accompanying drawing.
GB1516379.3A 2014-12-16 2015-09-16 Computer Operating Systems Withdrawn GB2533455A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB201422403 2014-12-16

Publications (2)

Publication Number Publication Date
GB201516379D0 GB201516379D0 (en) 2015-10-28
GB2533455A true GB2533455A (en) 2016-06-22

Family

ID=54363237

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1516379.3A Withdrawn GB2533455A (en) 2014-12-16 2015-09-16 Computer Operating Systems

Country Status (1)

Country Link
GB (1) GB2533455A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2369699A (en) * 2000-07-26 2002-06-05 David Dorricott Application software that integrates with further applications such that a code can be used to initiate automatic postal address entry

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2369699A (en) * 2000-07-26 2002-06-05 David Dorricott Application software that integrates with further applications such that a code can be used to initiate automatic postal address entry

Also Published As

Publication number Publication date
GB201516379D0 (en) 2015-10-28

Similar Documents

Publication Publication Date Title
US9058105B2 (en) Automated adjustment of input configuration
CN101344848B (en) Management of icons in a display interface
US8171406B1 (en) Automating user interface navigation
US9015666B2 (en) Updating product documentation using automated test scripts
US20110314405A1 (en) Contextual control of dynamic input device
CN109597755B (en) Text display detection method and device, storage medium and electronic equipment
US8671389B1 (en) Web application resource manager on the web and localizable components
CN109739735B (en) Log generation method and device
CN103109264A (en) Creating a configuration file template
CN111291533B (en) Sentence segment to be displayed display method and device, computer equipment and storage medium
CN111857453A (en) Function interface display method, computer equipment and storage medium
US9811071B2 (en) System construction support apparatus
US20150234793A1 (en) Font resource management
CN104346035A (en) Indicating automatically corrected words
JP2005520228A (en) System and method for providing prominent image elements in a graphical user interface display
CN111046349A (en) So library file reinforcement identification method, intelligent terminal and storage medium
CN111783008B (en) Information display method, device, equipment and medium
CN112799760A (en) Form rendering method and device
US8561016B2 (en) Scoped code fly-out editor for domain languages
US20070250543A1 (en) Differential data managing apparatus
GB2533455A (en) Computer Operating Systems
AU2013200000B2 (en) Method and apparatus for analyzing a document
US9501264B2 (en) User corrections in translation
US20140372878A1 (en) Text editing system and method
US20210081618A1 (en) Method for at least partially automatically transferring a word sequence composed in a source language into a word sequence in a target language

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)