|Publication number||US7788588 B2|
|Application number||US 10/361,712|
|Publication date||Aug 31, 2010|
|Filing date||Feb 7, 2003|
|Priority date||Feb 7, 2003|
|Also published as||US20040155901|
|Publication number||10361712, 361712, US 7788588 B2, US 7788588B2, US-B2-7788588, US7788588 B2, US7788588B2|
|Inventors||Timothy P. McKee, Zeke B. Odins-Lucas, J. Craig Hally|
|Original Assignee||Microsoft Corporation|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (2), Non-Patent Citations (1), Referenced by (6), Classifications (10), Legal Events (3)|
|External Links: USPTO, USPTO Assignment, Espacenet|
The present invention relates generally to recognizing users' preferences in regard to defaults, and more particularly, to the application of users' preferences whenever there is a contention for default actions.
First appearing as massive machines seen only in the basements of research universities, the computer eventually found its way into homes and offices in the smaller, more accessible form of a personal computer. The introduction of simpler, “user-friendly” methods for controlling the operations of computers was accomplished by substituting a graphical user interface for the typewriter-like interface. Graphical user interface allows the user to select icons (graphic symbols of computer functions) from a display screen instead of requiring typed commands. As computers and software applications have become easier to use, or more “user-friendly,” many people are finding them both useful for entertainment and necessary for their jobs. With the proliferation of applications that provide similar services, software manufacturers have turned the personal computer into a highly competitive zone to get users to use their software.
The perception of user-friendliness at the surface of the graphical user interface belies complex choices and intricate instructions that allow a personal computer to operate. In making computers and related equipment, original equipment manufacturers typically purchase or license software applications from software manufacturers and hardware components from hardware manufacturers; integrate them into products of the original equipment manufacturers; and sell these products to the public. Initially, choices are made for users by the software manufacturers to allow these users to easily operate software upon installation without tedious customization and intimate familiarity. To satisfy users in various markets, the original equipment manufacturers change the choices made by software manufacturers, which cause varied configurations from personal computer to personal computer. These choices are known as defaults, which are selections automatically used by software applications in the absence of a choice made by a user. Inexperienced users can rely on choices made by software manufacturers and original equipment manufacturers at first, but overtime, as users progress in their experience and grow confident in using the personal computer, these users may begin to form their own preferences and desire to change the previously set choices and defaults.
The software marketplace has become intensely competitive. Various software manufacturers have fought vigorously to maintain their wares as the applications of choice, (the defaults), in disregard to user preferences. A system 100 in
Players 102, 112, like other window applications, include title bars 104, 114, which are horizontal spaces at the top of windows that contain the name of the application, such as “Music Player 1” or “Music Player 2.” Appearing as square buttons in the right corners of title bars 104, 114 with an X marked on them are Close buttons 106, 116. Clicking on Close buttons 106, 116 cancels players 102, 112. A number of buttons in iconic form 108A-108C, 118A-118C, allow a user to access streaming digital music elsewhere on the Internet. For example, buttons 108A, 118A allow the user to access encoded classical music, which includes music in the educated European tradition in forms such as art song, chamber music, opera, and symphony as well as music of the late 18th and early 19th centuries characterized by an emphasis on balance, clarity, and moderation. Jazz music that is characterized by propulsive, syncopated rhythms, polyphonic ensemble playing, varied degrees of improvisation, and deliberate distortion of pitch and timbre can be accessed by actuating buttons 108B, 118B. Rock music, which is popular music played on electronically amplified instruments and characterized by persistent heavily accented beats, much repetition of simple phrases, and often containing country, folk, and blues elements, is accessed by clicking on buttons 108C, 118C.
Players 102, 112 include sets of VCR-style mechanisms 110, 120, which are user interfaces for playing music files. Mechanisms 110, 120 have controls similar to those on a video cassette recorder, including a rewind control, a play control, a fast-forward control, and a stop control. A music file 122 is a collection of audio information that a user can send to players 102, 112 to reproduce the original music recording. When the user double-clicks on the music file 122, the user expects either the player 102 or the player 112—but not both—to open the music file 122 and proceed to play the music stored therein.
The system 100 includes a database 124 into which player 102 can set itself during the installation process as the default in launching application 102 when the music file 122 is double-clicked by the user. The database 124 includes any suitable databases, such as the registry of Microsoft Windows®. Because the player 112 can also service the same type of music file 122, during the installation of the player 112, which is subsequent to the installation of the player 102, the installation process of the player 112 accesses the database 124, removes the player 102 as the default, and asserts itself (the player 112) as the default. This practice of supplanting another application to make one's own application the default has grown worse with the proliferation of applications that provide similar services—irrespective of users' preferences.
To prevent the player 112 from usurping the player 102 as the default, the software manufacturer of the player 102 can engineer a service 126 running in the background of the system 100 to monitor the database 124. When the service 126 determines that the player 112 or other applications have displaced the player 102 as the default, the service 126 modifies portions of the database 124 so that the player 102 is once again the application of choice. However, the software manufacturer of the player 112 also can launch its own service 128 to monitor the database 124. When the service 128 detects that the player 102 among other applications has replaced the player 112 as the default, the service 128, like the service 126, changes portions of the database 124 to reflect that the player 112 is again the application of choice to play the music file 122.
This tug-of-war between players 102, 112 is carried out in complete disregard for the preferences of the user. Moreover, as players 102, 112 and services 126, 128 contest, the system 100 becomes unstable. The user is not assured which player, 102 or 1-12, will be launched when the user double-clicks on the music file 122. The data in the database 124 continues to be in a transient state because of the constant modifications by services 126, 128. Without a solution to quiet the dispute between applications and respect the preferences of users, eventually users may no longer trust the system 100 to provide a desired computing experience and the demands for the system 100 as well as players 102, 112 will diminish from the marketplace. Thus, there is a need for a method and a system for realizing users' preferences regarding applications to be launched to process corresponding kinds of files, while avoiding or reducing the foregoing and other problems associated with existing applications.
In accordance with this invention, a system, method, and computer-readable medium for realizing preferences of users in connection with launching applications for corresponding kinds of files is provided. The system form of the invention comprises a computer system for launching applications preferred by users. The computer system includes a consent user interface for capturing an identity of an application. The application is chosen by a user as a preferred application to be launched to process files of the same kind. The computer system further includes a portion of a database for storing the identity of the preferred application to be launched. The portion of the database inhibits changes to the identity of the preferred application that is chosen by the user unless the changes are made via the consent user interface.
In accordance with further aspects of this invention, another system form of the invention comprises a display device having rendered thereon a consent user interface for capturing a user's preferred applications. The display device includes a window occupying a portion of a screen of the display device. The window includes a first icon for representing a default application. The default application is a previously preferred application for the consideration of the user to select as a newly preferred application to be launched to process a file. The window further includes a second icon for representing a new application for the consideration of the user to select as the newly preferred application to be launched to process the same kind of file.
In accordance with further aspects of this invention, a method form of the invention for capturing a user's preferences is implementable in a computer system. The method includes presenting a consent window to show applications that process the same kind of file.
The method further includes an act for receiving an indication from a user that one of the applications is selected. The method yet further includes an act for storing the identity of a selected application in a portion of a database and the identity of a rejected application in another portion of the database. The database inhibits changes to the identity of the selected application unless the changes are made via the consent window.
In accordance with further aspects of this invention, a computer-readable medium having computer-executable instructions for performing a method for capturing a user's preferences is provided. The method includes presenting a consent window to show applications that process the same kind of file. The method further includes an act for receiving an indication from a user that one of the applications is selected. The method yet further includes an act for storing the identity of a selected application in a portion of a database and the identity of a rejected application in another portion of the database. The database inhibits changes to the identity of the selected application unless the changes are made via the consent window. In accordance with further aspects of this invention, another computer-readable medium having a data structure stored thereon for use by a computing system to realize application preferences of a user is provided. The data structure includes a lastknown key that is indicative of a preferred application chosen by the user via the consent user interface.
The lastknown key is protected by an access control list that inhibits changes unless permitted by the access control list. The data structure includes a notchosen key that indicates the identities of rejected applications. A rejected application inhibits the presentation of the consent user interface if the rejected application is a choice to be shown by the consent user interface.
In accordance with further aspects of this invention, another method form of the invention for realizing a user's preferences for launching applications for corresponding kinds of files is provided. The method includes launching a first application to service a file unless a second application is available to service the same kind of file. The method further includes presenting a consent user interface to allow the user to indicate a preference between the first application and the second application. Changes to the preference are inhibited unless made via the consent user interface.
The foregoing aspects and many of the attendant advantages of this invention will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The invention is described in the general context of computer-executable instructions, such as program modules being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media, including memory storage devices.
The computing system environment illustrated in
Computer 210 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by computer 210 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tapes, magnetic disk storage or other magnetic storage devices, or any other computer storage media. Communication media typically embody computer-readable instructions, data structures, program modules or other data in a modulated data signal, such as a carrier wave or other transport mechanism that includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media include wired media, such as a wired network or direct-wired connection, and wireless media, such as acoustic, RF infrared, and other wireless media. A combination of any of the above should also be included within the scope of computer-readable media.
The system memory 230 includes computer storage media in the form of volatile and/or nonvolatile memory, such as read only memory (ROM) 231 and random access memory (RAM) 232. A basic input/output system 233 (BIOS), containing the basic routines that help to transfer information between elements within computer 210, such as during start-up, is typically stored in ROM 231. RAM 232 typically contains data and/or program modules that are immediately accessible and/or presently being operated on by processing unit 220. By way of example, and not limitation,
The computer 210 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
The computer 210 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 280. The remote computer 280 may be a personal computer, a server, a router, a network PC, a peer device, or other common network node, and typically includes many or all of the elements described above relative to the computer 210, although only a memory storage device 281 has been illustrated in
When used in a LAN networking environment, the computer 210 is Connected to the LAN 271 through a network interface or adapter 270. When used in a WAN networking environment, the computer 210 typically includes a modem 272 or other means for establishing communications over the WAN 273, such as the Internet. The modem 272, which may be internal or external, may be connected to the system bus 221 via the input/output peripheral interface 295, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 210, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
To protect users' preferences from being changed by the capricious, erratic, unpredictable actions of applications vying to dominate and assert themselves as the application of choice to be launched in connection with certain file types, various embodiments of the present invention elevate the priority of choices made by users above choices made by others, such as original equipment manufacturers or software manufacturers. When a user initially uses an operating system, defaults are already set so as to allow the user to easily use the operating system without having to labor through multitudes of choices. One type of default includes the association of an application to a corresponding file type. Preset defaults help the operating system function for the user in a rich and robust manner. Defaults can vary from personal computer to personal computer because original equipment manufacturers, as well as application manufacturers, install applications and select defaults differently for different users. As users gain confidence over time in using the operating system, many users form specific preferences and begin to make choices, such as the association between a default launching application (or default or default application) and a corresponding file type.
When a user has made a choice, various embodiments of the present invention jettison choices made by others and replace the choice made by the user as the default. For example, when a user manually installs an application for his use, that is a potential user's choice. If an application installed by the user is in contention with an existing application that was not installed by the user, various embodiments of the present invention recognize that the application newly installed by the user is the application of choice, hence the default.
The newly installed application by the user is given priority because various embodiments of the present invention realize that it is the first decision the user has made (whereas all previous choices were, made on behalf of the user, such as those made by original equipment manufacturers and application manufacturers). When the same user installs a second application that provides services similar to those of the first installed application, an ambiguity in the preferences of the user arises. In this case, various embodiments of the present invention present a consent user interface to capture the user's choice between the two applications. A system 300 in which this consent user interface is presented to the user is illustrated in
The system 300 is a computing environment that has pieces of hardware, software applications, and an operating system 330 running on it. A file 322 is a complete, named collection of information, such as a program, a set of data used by a program, or a user-created document. The file 322 is the basic unit of storage that enables the computing environment 300 to distinguish one set of information from another. The file 322 is the glue that binds a conglomeration of instructions, numbers, words, images, music, video, and other data into a coherent unit that a user can retrieve, change, delete, save, open, play, or send to an output device. The data stored in the file 322 includes a combination of sound, graphics, animation, video, and text, which are collectively defined as multimedia information.
The file 322 has a file extension “.boo.” A file extension is a set of characters added to a file name that serves to extend or clarify its meaning or to identify it as a member of a category, a type, or a class (which collectively can be referred to as “a kind”). An extension may be assigned by the user or by an application, as, for example, .mpeg, which is a file extension that identifies video and sound files compressed in the MPEG format as specified by the Moving Pictures Experts Group. Designed to assist in the performance of a specific task, an application 302 is a client/control that receives a stream from a server or local source, such as multimedia data from the file 322, for reproducing the contents of the multimedia including sound, graphics, animation, video, and text.
The application 302, like other window applications, include a title bar 304, which is a horizontal space at the top of a window that contains the name of the application, which in this instance is “media player-1.” Appearing as a square button in the right corner of the title bar 304 with an X marked on it is a Close button 306. Clicking on the Close button 306 cancels the application 304. Buttons in iconic form 308A-308C allow a user to access streaming multimedia located elsewhere on the network to which the system 300 is coupled or locally via files, such as the file 322. For example, the button 308A allows the user to access video content, which includes recordings of motion pictures or television programs. Music including vocal, instrumental, or mechanical sounds, or combinations thereof, can be accessed by actuating the button 308B. Clicking on the button 308C allows the user to access static images, which are stored descriptions of graphic pictures, either as a set of brightness and color values of pixels or as a set of instructions for reproducing the pictures. The application 302 includes a set of VCR-styled mechanisms 310, which are user interface controls for playing media files. The mechanisms 310 present controls similar to those on a video cassette recorder, such as a rewind control, a play control, a fast-forward control, and a stop control.
When the user double-clicks on the file 322, the user typically expects an application to be launched, such as the application 302, that can service or process the contents of the file 322. The association between the file 322 and the application 302, which is presently the default, can be stored in the portion 324A of a central hierarchical database 324. The central hierarchical database 324 is used to store information necessary to configure the system for one or more users, applications, and hardware devices. The central hierarchical database 324 contains information that an operating system continually references during operation, such as profiles for each user; the applications installed on the computer and types of documents each can create; property sheet settings for folders and application icons; what hardware exists on the system 300; and which ports are being used. The central hierarchical database 324, in addition, can be used, as mentioned above, to store the file association between an application, such as the application 302, and one or more corresponding file types (e.g., in which the file 322 belongs).
The application 302 has a service 326 running in the background of the computing environment 300. This background service 326 constantly monitors the portion 324A and ensures that the association between the player 302 and the file type in which the file 322 is connected is maintained. These activities of the background service 326 make certain that whenever the user double-clicks on the file 322, the application 302 will be invoked to service the file 322.
The system 300 also includes an application 312, which provides services similar, if not identical, to the services provided by the application 302. The application 312 can play the multimedia contents of the file 322. Like the application 302, the application 312 includes a title bar, which is a horizontal space at the top of a window that contains the name of the application, such as “media player-2.” Appearing as a square button in the right corner of the title bar 314 with an X marked on it is a Close button 316. Clicking on the Close button 316 cancels the application 312. Numerous icons 318A-318C allow the user to access streaming media information elsewhere on a network to which the system 300 is coupled or locally via files, such as the file 322. Similar to buttons 308A-308C of the application 302, movies, video clips, music recordings, and graphic images can be accessed by clicking on icons 318A-318C. A set of VCR-styled mechanisms 320 is available on the application 312 for the user to control the playback of multimedia information. The mechanism 320 has controls similar to those on a video cassette recorder and includes a rewind control, a play control, a fast-forward control, and a stop control.
To allow the application 312 to be invoked when the user double-clicks on the file 322, the application manufacturer for the application 312 creates an association between the application 312 and the file 322. This association is stored in the portion 324A of the central hierarchical database 324. The application 312, to secure its position as the application of choice when the file 322 is open, launches a background service 328 to monitor the portion 324A. If the portion 324A no longer reflects that the application 312 is the default, the background service 328 modifies the portion 324A so that the application 312 is once again the application of choice. Both background services 326, 328 are agents for applications 302, 312, respectively. The portion 324A is potentially unstable in the system 300 yet the portion 324A stores pieces of information that determine which one of the applications 302, 312 is the default to service the file 322.
Both applications 302, 312 contest to be the default to service the file 322. However, over time the user forms his own choice in the preference between applications 302, 312. This preference is captured by a consent user interface 332 (discussed in greater detail below) and the preference is stored in another portion 324B of the central hierarchical database 324. Storing the user's preferences in portion 324B instead of 324A inhibits system instability associated with the striving of background services 326, 328 to dominate the selection of the default.
Files that contain a particular type of data, such as audio, graphic images, video, or even text, commonly have the same file extension. Each file extension is typically appended to the file name and consists of a period followed by three alphanumeric characters. For example, the file 322 has a file extension “.boo.” Although it is a common practice, file extensions need not be restricted to three letters. On computing systems that support long file names, any number of characters can be used to identify file extensions. Files with the identical file extension are members of the same file type. The central hierarchical database 324 allows a file type to be defined so that the behavior of all files in the same type can be specified. One exemplary implementation of the central hierarchical database 324 is the Registry of Microsoft Windows®, but any suitable implementations of the central hierarchical database 324 can be used.
The behaviors of all files of the same type can be customized by adding registry entries into the central hierarchical database 324 by specifying an application to be used to open or play the file when the file is double-clicked. Digressing, to define a file type, a registry key for the file extension, including the period, such as “.boo” is created in a data structure 346, which comprises the portions 324A, 324B, of the central hierarchical database 324. See key 350 of
The key 372 contains the programmatic identifier “player-1.mediaplayer.1,” whose association with the application 302 is defined by the key 374. The key 374 contains a verb phrase “shell/play/command,” where the term “shell” denotes a piece of software, usually a separate program, that provides direct communication between the user and the operating system; the term “play” denotes a verb that is typically invoked on media file types (e.g., the file 322 with the .boo file extension), which indicates that the associated application immediately begins to play the contents of the file rather than just opening the file and waiting for user's directions; and the term “command” denotes the shell command to follow. The key 374 additionally includes two strings that are equated to the verb phrase “shell play/command.” The first string is “%programfiles% \vendor-1\player-1mediaplayer.exe,” which denotes a directory path to the executable of the application 302. The second string is “%1,” which denotes the first argument in the invocation of the application 302 when the verb phrase “shall/play/command” is executed. When the file extension “.boo” (the key 350) and the programmatic identifier “player-1.mediaplayer.1” (the key 372) are defined in the central hierarchical database 324, the user can act on a file of the file type “.boo” in a variety of ways, such as double-clicking the file. To summarize, the key 352 associates the file extension or file type “.boo” defined at the key 350 with the application 302 via keys 372, 374. These keys are stored in the portion 324A of the central hierarchical database 324. These keys are vulnerable to continued changes between application 302 and application 312. Keys 368, 370, 397, and 395 are preferably placed in the portion 324B to guard against contentious changes made by applications 302, 312. These keys 368, 370, 397, and 395 are preferably protected using an accessing control list, which is a list associated with a file that contains information about which users or groups or applications have permission to access or modify the file. The information contained in keys 368, 370, 395, 397 includes preferred applications as well as applications rejected by the user, which is captured by the consent user interface 332. These keys are self-documenting preferably by the use of a language that is human-readable.
The consent user interface 332 is illustrated in
Besides clicking on one of the icons 340A, 340B to indicate a preference, the user can also actuate buttons 344A, 344B to indicate his choice. If the user declines to select either of the icons 340A, 340B, or either of the buttons 344A, 344B, no preference is provided by the user, and the default application (which in this case is the application 302) will be launched. The next time the user double-clicks on a file of file extension “.boo,” the consent user interface 332 will again present the two choices for the user to select from.
Portions 324A, 324B, as previously discussed, are contained in the central hierarchical database 324. Portions 324A, 324B are preferably placed in the data structure 346, which is an organizational scheme, to facilitate interpretation of the choices made by the user or performing operations on these choices. See
Each file extension key in the data structure 346 has several minor keys and attributes. For example, the file extension key 350 is equated to a programmatic identifier “player-1.mediaplayer.1” at the key 352. The perceived type of the file extension key 350 is defined at a key 354. The perceived type of a file extension is essentially a superclass of the file extension. For example, the file extension “.boo” as defined at the key 350 groups a number of files together as a common type. The perceived type or the file class groups together a number of file extensions as a genus of species. In the data structure 346, the file extension “.boo” has a perceived type of video.
A key 356 “openwithprogids” under the key 350 contains a list of alternate programmatic identifiers for the file type “.boo.” The list of alternate programmatic identifiers includes “player-1.mediaplayer.1” defined at a key 358 and a programmatic identifier “player-2.mediaplayer. 1” defined at a key 360. Another key under the key 350 is an “openwithlist” key 362. This key contains one or more application keys for applications to appear as items in a pop-up box when the user right-clicks a file icon. The list under the key 362 includes “player-1.mediaplayer.exe” defined at a key 364 and “player-2.mediaplayer.exe” defined at a key 366.
User preferences captured by the consent user interface 332 are stored at keys 368, 370. The key 368 is named “lastknown” to denote the last known preference of the user in regard to a default launching application associated with the file type defined by the key 350. In the data structure 346, the “lastknown” key 368 is set to the programmatic identifier “player-1.mediaplayer.1.” The application that is not chosen by the user is also captured by the consent user interface 332. That information is placed at the key 370 named “notchosen.” The information stored at the key 370 is a list of programmatic identifiers associated with applications that have been rejected by the user. This list is used to refrain from re-presenting the consent user interface 332 when one of the application choices has already been rejected and described in the list stored at the key 370.
Programmatic identifiers are defined under the “HKEY_CLASSES_ROOT” 348, such as keys 372, 375. Programmatic identifier keys are used to associate a file type (such as “.boo” defined at the key 350) with an application and to control the behavior of the association. The key 372 defines the programmatic identifier “player-1.mediaplayer.1,” which is associated with the executable of the application 302 defined in the first string of the key 374. Thus, the programmatic identifier “player-1.mediaplayer.1” acts as the bridge between the file type “.boo” and the executable of the application 302. When a file of the file type “.boo” is double-clicked the executable of the application 302 will be invoked. The key 375 defines the programmatic identifier “player-2.mediaplayer.1,” which associates the file type “.boo” (defined at the key 350) and the executable of the application 312 in the first string of the key 376.
As discussed above, a perceived type or a file class describes a general category or kind containing one or more file types. Digressing,
The proliferation of file extensions has become confusing for many users. File classes, a portion of which are illustrated by the structure 393, relieve the user from the burden of associating a file type with a particular application. For example, certain users prefer that the text file class 389 is associated with a default launching application to process files of type “.txt” as well as files of type “.asc”. Various embodiments of the present invention capture the user's preferences in regard to the association of a file class and an application with the consent user interface 332.
In a situation where a user desires to have a default application to service a number of file extensions or a file class but not a particular file extension, the user can associate another default application with the particular file extension using various embodiments of the present invention. For example, suppose a user already has a default application to service image file extensions .jpg and .bmp. The user by using various embodiments of the present invention can set a different default application to handle tiff without contention even if there exists another default application to handle .jpg and .bmp. In other words, the consent user interface need not be presented in this instance because there is no contention.
From terminal A (
Otherwise, if the answer is YES to the test at decision block 410, another decision block 414 is entered by the method 400 where the system 300 determines whether there are multiple users. If the answer is NO, the method 400 proceeds to terminal B. Otherwise, the answer to the test at decision block 414 is YES, and the method 400 proceeds to another exit terminal (“terminal D”).
From the exit terminal B (
From terminal C (
Otherwise, the answer is NO, and block 420 is entered by the method 400. At this block, the method 400 sets the last known key 368 of the file type “.boo” to the programmatic identifier (e.g., player-2.mediaplayer.1) of the newly installed application, such as the application 312. The method 400 then launches the newly installed application 312 to service the double-clicked file 322. See block 422. Next, the method 400 terminates execution. The technical principles associated with the set of method steps 404 (and described in greater detail between steps 416-422) are that when the user installs an application, the user is asserting a choice. If this choice is in contention with an existing application in the system 300 and the user did not install the existing application, the new application should become the default application for either the file type or the file class without invoking the consent user interface 332. In other words, the installation of a new program can be viewed as the first decision the user has made. All previous decisions made on behalf of the user have less weight than those choices and decisions made by the user. If the same user installs a second application, such as the application 312, that is in contention with the first installed application, such as the application 302, the consent user interface 332 is invoked to resolve the ambiguity in the user's choices. The set of method steps 406 describe this in greater detail below.
From the exit terminal D (
From terminal E (
From terminal E5 (
From terminal E1 (
From terminal E2 (
From terminal E3 (
At block 442 the method 400 presents the consent user interface 332 to capture the user's preferences. Next, the method 400 proceeds to another decision block 444 where the method 400 determines whether the user has canceled the consent user interface 332 prior to making a selection or a choice. If the answer is YES, the method 400 terminates execution. Otherwise, the answer is NO, and the method 400 proceeds to another continuation terminal (“terminal E4”). If the user cancels the consent user interface 332 without making a choice, these choices will be re-presented to the user via the consent user interface 332 the next time a file of the file type “.boo” is double-clicked.
From terminal E4 (
The method 400 continues to decision block 452, where the method 400 determines whether the preference of the user is to be applied to the file class “video.” If the answer is NO, the method 400 continues to the exit terminal F and terminates execution. Otherwise, if the answer is YES, the method 400 sets the lastknown key 397 of the file class “video” (defined at the key 396) in the data structure 346 to equal the programmatic identifier of the selected application. Next, the method 400 inserts the programmatic identifier of the rejected application into the notchosen key 395 of the file class video (defined at the key 396) in the data structure 346. See block 456. Then the method 400 proceeds to the exit terminal F and terminates execution.
While the preferred embodiment of the invention has been illustrated and described, it will be appreciated that various changes can be made therein without departing from the spirit and scope of the invention.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5349658 *||Nov 1, 1991||Sep 20, 1994||Rourke Thomas C O||Graphical user interface|
|US6750881 *||Feb 24, 1997||Jun 15, 2004||America Online, Inc.||User definable on-line co-user lists|
|1||*||Karp, David "Windows XP in a Nutshell" Apr. 2002.|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US9222981||Dec 28, 2012||Dec 29, 2015||Nvidia Corporation||Global low power capture scheme for cores|
|US9377510||Dec 28, 2012||Jun 28, 2016||Nvidia Corporation||System for reducing peak power during scan shift at the global level for scan based tests|
|US9395414 *||Dec 28, 2012||Jul 19, 2016||Nvidia Corporation||System for reducing peak power during scan shift at the local level for scan based tests|
|US20090144659 *||Nov 26, 2008||Jun 4, 2009||Samsung Electronics Co., Ltd.||Method and apparatus for executing applications in mobile communication terminal|
|US20140189452 *||Dec 28, 2012||Jul 3, 2014||Nvidia Corporation||System for reducing peak power during scan shift at the local level for scan based tests|
|CN103493014A *||Nov 9, 2011||Jan 1, 2014||谷歌公司||Auction-based application launching|
|U.S. Classification||715/741, 715/866, 715/745|
|International Classification||G06F9/445, G09G5/00, G06F3/00|
|Cooperative Classification||G06F9/44505, G06F9/445|
|European Classification||G06F9/445C, G06F9/445|
|Feb 7, 2003||AS||Assignment|
Owner name: MICROSOFT CORPORATION, WASHINGTON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MCKEE, TIMOTHY P.;ODINS-LUCAS, ZEKE B.;HALLY, J. CRAIG;REEL/FRAME:013761/0081;SIGNING DATES FROM 20030205 TO 20030206
Owner name: MICROSOFT CORPORATION, WASHINGTON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MCKEE, TIMOTHY P.;ODINS-LUCAS, ZEKE B.;HALLY, J. CRAIG;SIGNING DATES FROM 20030205 TO 20030206;REEL/FRAME:013761/0081
|Jan 28, 2014||FPAY||Fee payment|
Year of fee payment: 4
|Dec 9, 2014||AS||Assignment|
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034541/0477
Effective date: 20141014