Automatic software installation and cleanup

Automatic software installation and cleanup
US006405362B1
(12) United States Patent
(10) Patent N0.:
(45) Date of Patent:
Shih et al.
(54)
programs”, Accounting Technology, Oct. 1995, pp. 59.*
Andrews et al., “Windows Utilities: RX for your PC”, PC
World Online, Jun. 1998, pp. 1—19.*
J asco, “Multimedia in Windows 95”, Computers in Librar
ies, Nov. 1995, p. 63.
Yegulalp, “Norton painlessly removes programs”, Windows,
Magazine, Apr. 1998, p. 134.
Gussin, “Microsoft’s Windows 95 multimedia initiative”,
CD—ROM Professional, Aug. 1995, p. 20.
(73) Assignee: Microsoft Corporation, Redmond, WA
(Us)
Notice:
Subject to any disclaimer, the term of this
patent is extended or adjusted under 35
U.S.C. 154(b) by 0 days.
* cited by examiner
Primary Examiner—Kakali Chaki
(74) Attorney, Agent, or Firm—Lee & Hayes, PLLC
(21) Appl. No.: 09/192,040
Nov. 13, 1998
(22) Filed:
(51) Int. Cl.7 .............................................. .. G06F 9/445
(52) US. Cl. ............................................ .. 717/11; 713/1
(58) Field of Search ......................... .. 717/11, 4; 713/1,
(57)
ABSTRACT
Automatically installing a software application and auto
matically removing and releasing resources used by the
application is disclosed. In one embodiment of the
713/2, 100, 200, 187, 188, 189, 191
invention, the computerized system includes an operating
References Cited
system for controlling and maintaining resources on a com
puter; and an event monitor. The event monitor invokes an
U.S. PATENT DOCUMENTS
autorun program in response to a signal from the operating
system that a computer-readable medium has been inserted
into the computer. The event monitor also invokes the
autorun program upon receipt of a signal that the computer
readable medium has been removed from the computer. The
autorun program installs an application from the computer
readable medium when the medium is inserted and releases
resources acquired by the application when the medium is
removed.
(56)
5,642,417
5,892,953
5,953,532
6,049,663
Jun. 11,2002
Delzotto, “Utility software: Get rid of unwanted Windows
AUTOMATIC SOFTWARE INSTALLATION
AND CLEANUP
(75) Inventors: Yung-Ho Shih; Yongqi Yang, both of
Bellevue, WA (US)
(*)
US 6,405,362 B1
A
A
A
A
*
6/1997
*
4/1999 Bhagria et al.
*
9/1999
*
4/2000 Harikrishnan et a1. . 395/500.43
Stringer ....................... .. 380/4
395/712
Lochbaum ................ .. 395/712
OTHER PUBLICATIONS
Williams, “32—bit operating system rises to challenge Win
dows CE”, Electronic Design, Sep. 1997, pp. 144—146.*
Ruley, “Upgrading to CE 2.,0”, Windows Magazine, Dec.
20 Claims, 3 Drawing Sheets
1997, pp. 309—3121.*
* 300
Start Event Monitor
5
V
Wait For Event
Card Insertion
Determine
Type of
Event
v
‘ Invoke Autorun Program
,
3201
r
Install/Run Application
l
: 325
Invoke Autorun To
Clean Up
U.S. Patent
Jun. 11,2002
Sheet 2 0f3
US 6,405,362 B1
"Q0
“
205
Shell
210
Event Monitor
J
V
215
Autorun.exe
i
Application
Fig. 2
220
U.S. Patent
Jun. 11,2002
Sheet 3 0f3
US 6,405,362 B1
300
Start Event Monitor
V
{
Card Insertion
305
Wait For Event I
Determine
Type of
Card Removal
Event
315
W
v
r
Invoke Autorun To
Invoke Autorun Program
320
T
f
Clean Up
r
install/Run Application
Fig. 3
325
US 6,405,362 B1
1
2
AUTOMATIC SOFTWARE INSTALLATION
AND CLEANUP
reside on the ?le system of a disk or other memory device
and provide the capability for a user to “broWse” through ?le
systems to locate ?les. Among these ?les are executable
softWare applications. Because the Palm-siZe PC has limited
memory resources, broWsers are not typically provided.
Thus, the user has no Way of locating any executable
application ?les that may exist on the Compact Flash or
PCMCIA memory card.
COPYRIGHT NOTICE/PERMISSION
A portion of the disclosure of this patent document
contains material Which is subject to copyright protection.
The copyright oWner has no objection to the facsimile
reproduction by anyone of the patent document or the patent
disclosure as it appears in the Patent and Trademark Of?ce
patent ?le or records, but otherWise reserves all copyright
10
A second problem is that no “cleanup” takes place When
the Compact Flash card is removed. An application that has
been installed on a Palm-siZe PC consumes some of the
rights Whatsoever. The folloWing notice applies to the soft
resources of the PC. Typically, these resources include
Ware and data as described beloW and in the draWing hereto:
memory to hold the application and its data, display space to
display icons and program output from the application. In
Copyright © 1998, Microsoft Corporation, All Rights
Reserved.
15
FIELD OF THE INVENTION
addition, operating system resources are also consumed in
the form of registry entries, process table entries and the like.
Because the Palm-siZe PC has limited resources to begin
With, it is important that these resources be released When
they are no longer needed. HoWever, there is currently no
This invention relates generally to softWare installation,
and more speci?cally to automating the installation and
mechanism provided to detect that these resources can be
cleanup of softWare applications.
freed.
The above-described problem is exacerbated When the
BACKGROUND OF THE INVENTION
Compact Flash card is repeatedly inserted and removed. In
The rapid evolution of personal computer technology
this case, each insertion of the memory card Will cause
continues to produce personal computers that are smaller,
25 additional resources to be consumed, Which are not freed
cheaper and faster than their predecessors. Where computers
When the card is removed. Eventually the available
once occupied entire rooms, they are noW small enough to
resources Will be depleted to the point Where either the
?t in the palm of the hand, hence the name “Palm-size PCs”.
performance of the Palm-siZe PC is severely degraded or the
The reduced siZe of the Palm-siZe PC means that certain
sacri?ces need to be made. For example, a typical Palm-siZe
PC does not have ?xed or removable disk drives such as
PC crashes.
A third problem is related to the Way that PCs, both
Palm-siZe and desktop, access Compact Flash cards. Typical
softWare distribution media, such as CD-ROM, ?oppy and
hard disk, ?oppy disk, CD-ROM or DVD-ROM drives, With
the persistent storage of a typical Palm-siZe PC comprising
hard disk drives, are accessed through a softWare driver
Which can determine if the media is present and take
?ash memory or volatile memory With a battery refresh. In
addition, the amount of RAM in the typical Palm-siZe PC is
also limited, resulting in specialiZed operating systems
35
appropriate action if it is not. HoWever, Compact Flash cards
are accessed differently in some operating systems. For
capable of running in the resource-limited environment of
the Palm-siZe PC. An example of such an operating system
is the WindoWs CETM operating system from Microsoft
Corporation. Applications running on the Palm-siZe PC must
also be capable of running in the resource limited environ
example, in operating systems for resource limited
environments, the Compact Flash Card is typically accessed
directly by the CPU as if it is part of the main memory of the
system. Operating systems for desktop PC environments
ment described above. Applications running on the Palm
also are capable of direct access, but do so to a lesser extent.
Thus, softWare on a PC may make direct references to the
siZe PC are typically specialiZed versions of applications
memory on the Compact Flash card Without going through
available on the bigger siblings of the Palm-siZe PC, such as
calendar programs, personal information managers,
calculators, dictionaries and the like.
In many markets, the Palm-siZe PC is typically a com
panion PC to a desktop or other larger PC. Having a desktop
PC available alloWs neW or updated application softWare to
be delivered to a Palm-siZe PC by doWnloading the softWare
to the Palm-siZe PC from the desktop PC through a com
munications link betWeen the tWo systems.
45
a device driver. If the card is removed While the softWare is
running, these references Will be to addresses in memory
that no longer exists. This typically causes the application to
receive What is knoWn in the art as an exception, and can
cause the softWare to crash. In addition, references to
non-existent memory can potentially cause other applica
tions or the operating system itself to crash. While it is
possible for an application to attempt to check for the
presence of the Compact Flash card With every memory
reference, such a check is not 100% reliable, and the impact
on the performance of the system makes this solution
HoWever, in certain, typically less developed markets,
oWnership of desktop PCs is not common, and a Palm-siZe
PC may be the only PC that the user has access to. As a 55
result, the ability to deliver softWare to a Palm-siZe PC on a
impractical.
Compact Flash or PCMCIA memory card has been devel
oped as an alternative to doWnloading softWare from a
desktop PC. This mechanism has the advantage that a
A ?nal issue that must be addressed is the fact that
Palm-siZe PCs from differing manufacturers use differing
types of CPUs. For example, CPUs from MIPS, NEC and
Hitachi have been used in various Palm-siZe PCs. Each of
companion desktop PC is no longer required in order to
update or load neW softWare, hoWever several problems
remain.
A ?rst problem is that Palm-siZe PCs do not typically
these CPUs has their oWn instruction set, and softWare
applications intended for a particular type of CPU must use
the instruction set for the CPU it Will be run on. In order for
a single Compact Flash memory card to deliver softWare for
provide an interface alloWing a user to discover What
softWare is available on the Compact Flash card. For
a variety of Palm-siZe PCs, multiple versions of the softWare
65 must be stored on the card.
example, a desktop or larger PC Will typically have What is
Thus, there is a need for a system for automatically
knoWn in the art as a broWser. BroWsers display the ?les that
cleaning up and releasing resources acquired by softWare
US 6,405,362 B1
3
4
delivered on a Compact Flash memory. There is also a need
system level overvieW of the invention is presented. In the
third section, a method for automatically freeing resources
used by application softWare delivered on a computer
readable medium is presented. Finally, in the fourth section,
a conclusion of the detailed description is provided.
for a system that installs the softWare Without requiring the
use of a broWser. Finally, there is a need for such a system
that supports multiple hardWare environments.
SUMMARY OF THE INVENTION
HardWare and Operating Environment
A system and method for automatically cleaning up and
releasing resources acquired by a softWare application is
Referring to FIG. 1, a diagram of the hardWare and
operating environment in conjunction With Which embodi
described. The system includes an event monitor that detects
When a Compact Flash memory card containing softWare to 10 ments of the invention may be practiced is shoWn. The
description of FIG. 1 is intended to provide a brief, general
be installed has been inserted or removed. Upon insertion of
description of suitable computer hardWare and a suitable
a Compact Flash card into a slot in a Palm-siZe PC, the event
computing environment in conjunction With Which the
monitor receives an event indicating the insertion, and
invention may be implemented. Although not required, the
searches the Compact Flash card for an autorun program,
Which is invoked to install the softWare on the card. One 15 invention is described in the general context of computer
aspect of the invention is that the event monitor locates the
executable instructions, such as program modules, being
executed by a computer, such as a personal computer.
autorun program by searching in architecture speci?c direc
Generally, program modules include routines, programs,
tories on the Compact Flash card.
objects, components, data structures, etc., that perform par
Upon removal of the Compact Flash card, the event
monitor receives an event indicating the removal. The event
monitor then invokes the autorun program With an uninstall
parameter to cause the program to terminate the installed
ticular tasks or implement particular abstract data types.
Moreover, those skilled in the art Will appreciate that the
invention may be practiced With other computer system
application, and free or release resources acquired during the
installation process. Among these resources are registry
systems, microprocessor-based or programmable consumer
entries, con?guration ?les, display icons etc.
con?gurations, including hand-held devices, multiprocessor
25
electronics, netWork PCs, minicomputers, mainframe
computers, and the like. The invention may also be practiced
in distributed computing environments Where tasks are
performed by remote processing devices that are linked
Because a cleaning program can be automatically
invoked, resources can be automatically cleaned up after an
application has been installed from a Compact Flash card.
The potential for application or system crashes caused by
through a communications netWork. In a distributed com
referencing memory on the card When it is no longer present
is reduced. In addition, limited resources of the Palm-siZe
PC are freed for use by other applications and programs.
puting environment, program modules may be located in
Finally, because the installation process is automatically
FIG. 1 for implementing the invention includes a general
purpose computing device in the form of a computer 20,
including a processing unit 21, a system memory 22, and a
performed When the card is inserted, there is no need for a
broWser program.
both local and remote memory storage devices.
The exemplary hardWare and operating environment of
35
system bus 23 that operatively couples various system
BRIEF DESCRIPTION OF THE DRAWINGS
components include the system memory to the processing
FIG. 1 shoWs a diagram of the hardWare and operating
environment in conjunction With Which embodiments of the
invention may be practiced;
FIG. 2 is a diagram shoWing the major components of a
softWare system of one embodiment of the invention; and
FIG. 3 is a ?oWchart illustrating a method according to
unit 21. There may be only one or there may be more than
one embodiment of the invention.
one processing unit 21, such that the processor of computer
20 comprises a single central-processing unit (CPU), or a
plurality of processing units, commonly referred to as a
parallel processing environment. The computer 20 may be a
45
conventional computer, a distributed computer, or any other
type of computer; the invention is not so limited.
The system bus 23 may be any of several types of bus
structures including a memory bus or memory controller, a
DETAILED DESCRIPTION OF THE
INVENTION
peripheral bus, and a local bus using any of a variety of bus
architectures. The system memory may also be referred to as
In the folloWing detailed description of exemplary
simply the memory, and includes read only memory (ROM)
embodiments of the invention, reference is made to the
24 and random access memory (RAM) 25. A basic input/
output system (BIOS) 26, containing the basic routines that
accompanying draWings Which form a part hereof, and in
Which is shoWn by Way of illustration speci?c exemplary
embodiments in Which the invention may be practiced.
may be made Without departing from the spirit or scope of
help to transfer information betWeen elements Within the
computer 20, such as during start-up, is stored in ROM 24.
The computer 20 further includes a hard disk drive 27 for
reading from and Writing to a hard disk, not shoWn, a
magnetic disk drive 28 for reading from or Writing to a
removable magnetic disk 29, and an optical disk drive 30 for
reading from or Writing to a removable optical disk 31 such
the present invention. The folloWing detailed description is,
as a CD ROM or other optical media.
These embodiments are described in suf?cient detail to 55
enable those skilled in the art to practice the invention, and
it is to be understood that other embodiments may be utiliZed
and that logical, mechanical, electrical and other changes
therefore, not to be taken in a limiting sense, and the scope
The hard disk drive 27, magnetic disk drive 28, and
of the present invention is de?ned only by the appended
optical disk drive 30 are connected to the system bus 23 by
a hard disk drive interface 32, a magnetic disk drive inter
face 33, and an optical disk drive interface 34, respectively.
The drives and their associated computer-readable media
claims.
The detailed description is divided into four sections. In
the ?rst section, the hardWare and the operating environment
in conjunction With Which embodiments of the invention
may be practiced are described. In the second section, a
65
provide nonvolatile storage of computer-readable
instructions, data structures, program modules and other
US 6,405,362 B1
5
6
data for the computer 20. It should be appreciated by those
skilled in the art that any type of computer-readable media
device such as a netWork adapter or a modem, so that it is
able to communicatively couple other computers.
Which can store data that is accessible by a computer, such
System Level OvervieW
as magnetic cassettes, ?ash memory cards, digital video
disks, Bernoulli cartridges, random access memories
FIG. 2 presents a block diagram overvieW of a system in
Which an embodiment of the invention resides. Included in
(RAMs), read only memories (ROMs), and the like, may be
used in the exemplary operating environment.
the system are operating system 200, shell 205, event
monitor 210, autorun program 215 and application 220.
Application 220 is a softWare application that is delivered on
Anumber of program modules may be stored on the hard
disk, magnetic disk 29, optical disk 31, ROM 24, or RAM
25, including an operating system 35, one or more applica
tion programs 36, other program modules 37, and program
10
the personal computer 20 through input devices such as a
keyboard 40 and pointing device 42. Other input devices
(not shoWn) may include a microphone, joystick, game pad,
a Compact Flash card and is designed for use on the
Palm-siZe PC. Examples of such applications include Word
processors, calendar programs, dictionary programs,
calculators, and personal information managers. These
application programs are typically versions of applications
data 38. A user may enter commands and information into
15
satellite dish, scanner, or the like. These and other input
devices are often connected to the processing unit 21
through a serial port interface 46 that is coupled to the
available for desktop PCs that have been modi?ed to run in
the resource limited environment of the Palm-top PC. A
particular Compact Flash card may contain several different
applications, and it may contain multiple versions of an
system bus, but may be connected by other interfaces, such
application.
as a parallel port, game port, or a universal serial bus (USB).
A monitor 47 or other type of display device is also
Operating system 200 comprises a set of softWare mod
connected to the system bus 23 via an interface, such as a
ules designed to control and manage the resources of a
video adapter 48. In addition to the monitor, computers
computer system. In one embodiment of the invention,
typically include other peripheral output devices (not
shoWn), such as speakers and printers.
operating system 200 is the WindoWs CE operating system
from Microsoft Corporation.
25
computers, such as remote computer 49. These logical
Shell 205 is a softWare module running under operating
system 200. Shell 205 typically provides a portion of the
user interface for the operating system. A typical shell
connections are achieved by a communication device
coupled to or a part of the computer 20; the invention is not
limited to a particular type of communications device. The
program Will receive and process numerous type of events,
including icon selection, menu selection, and in the case of
some Palm-siZe PCs, command lines entered via a hand
remote computer 49 may be another computer, a server, a
router, a netWork PC, a client, a peer device or other
Writing recognition engine. In one embodiment of the
The computer 20 may operate in a netWorked environ
ment using logical connections to one or more remote
common netWork node, and typically includes many or all of
the elements described above relative to the computer 20,
35
although only a memory storage device 50 has been illus
trated in FIG. 1. The logical connections depicted in FIG. 1
invention, tWo of the events that the shell 205 receives from
the operating system 200 are an event indicating that a
removable computer-readable medium Was inserted, and an
event indicating that a computer-readable medium Was
removed. In the embodiment Where the operating system is
the WindoWs CE operating system, these events are imple
include a local-area netWork (LAN) 51 and a Wide-area
netWork
52. Such netWorking environments are
mented as messages and are labeled “SHCNEi
commonplace in of?ce netWorks, enterprise-Wide computer
DEVICEADD” and “SHCNEiDEVICEREMOVE”.
netWorks, intranets and the Internet, Which are all types of
netWorks.
When used in a LAN -netWorking environment, the com
puter 20 is connected to the local netWork 51 through a
netWork interface or adapter 53, Which is one type of
communications device. When used in a WAN -netWorking
environment, the computer 20 typically includes a modem
54, a type of communications device, or any other type of
communications device for establishing communications
is invoked by shell 205. After invocation, the event monitor
210 Waits until it is noti?ed by shell 205 that a Compact
Flash, PCMCIA memory card, or other removable
computer-readable medium has been either inserted in or
removed from the Palm-siZe PC. In the embodiment of the
invention Where the operating system is the WindoWs CE
operating system, the shell 205 noti?es the event monitor
In one embodiment of the invention, an event monitor 210
45
210 by sending an “ARMiINSERT” or an “ARMi
REMOVE” message to indicate the insertion or removal of
over the Wide area netWork 52, such as the Internet. The
the computer-readable medium. In this embodiment, it is
modem 54, Which may be internal or external, is connected
to the system bus 23 via the serial port interface 46. In a
netWorked environment, program modules depicted relative
to the personal computer 20, or portions thereof, may be
stored in the remote memory storage device. It is appreciated
that the netWork connections shoWn are exemplary and other
means of and communications devices for establishing a
desirable to specify What is knoWn in the art as a handler for
each of above messages. A handler is a function Within the
55
event monitor speci?cally designed to be executed When a
certain type of message is received.
In response to an insertion message, event monitor 210
searches the computer-readable medium that Was just
communications link betWeen the computers may be used.
inserted for an “autorun” program 215, Which in one
The hardWare and operating environment in conjunction
embodiment of the invention is called “autorun.exe”. In
With Which embodiments of the invention may be practiced
has been described. The computer in conjunction With Which
embodiments of the invention may be practiced may be a
order to accommodate multiple system architectures With
differing CPU types, the computer-readable medium may
contain multiple versions of the autorun program 215. Each
conventional computer, a distributed computer, or any other
version of the program is for a particular system and/or CPU
and is located in a sub-directory of the ?le system on the
type of computer; the invention is not so limited. Such a
computer typically includes one or more processing units as 65 computer-readable medium containing programs and ?les
its processor, and a computer-readable medium such as a
for the particular system and/or CPU. For example, in one
memory. The computer may also include a communications
embodiment of the invention, the autorun program for a
US 6,405,362 B1
8
7
Palm-siZe PC using the SH-3 CPU from Hitachi Semicon
ductor (America) Inc. is located in a subdirectory With a path
name of “\Flash Card\SH3”. Generally, the label “Flash
The above-described components operate together as fol
loWs. An application developer produces an application 220
that can be run on the Palm-siZe PC. In addition, the
Card” is the path name constructed by the operating system
to refer to the Compact Flash card, and “SH3” is a top-level
directory on the ?le system resident on the Compact Flash
card. Similarly, the autorun program for a Palm-siZe PC With
a MIPs CPU is located in the “\Flash Card\MIPS” subdi
rectory. Other CPUs include those from Intel and NEC, and
the autorun program for each is located in a corresponding
directory in the ?le system. Those of ordinary skill in the art
Will recogniZe that alternative path names or other mecha
nisms could be used to specify an architecture speci?c
location for a particular executable ?le. For example, the
“Flash Card” component of the path name speci?ed above
may be replaced by a different name to specify a ?le system
on a Compact Flash card. In addition, alternative labels for
the various CPU types may be used and are Within the scope
of the invention.
developer produces an autorun program 215 that is capable
of executing installation and cleanup procedures. In one
embodiment of the invention, the application 220 and auto
run program 215 are placed in an architecture speci?c
10
directory on a Compact Flash memory card for delivery to
end-users.
When the end-user starts, or boots the Palm-siZe PC, the
PC’s operating system 200 starts a shell process 205. Shell
process 205 in turn starts an event monitor thread 210, Which
Waits for a message from the shell process.
When the end-user inserts a Compact Flash memory card
15
containing the application, the operating system, or a com
ponent thereof, detects the insertion and noti?es shell pro
After locating the appropriate autorun program 215, the
cess 205 of the insertion. Shell process 205 in turn noti?es
event monitor 210 of the insertion and returns to processing
other user interface events. Event monitor 210 then searches
event monitor 210 runs the program, passing it a command
for the Compact Flash memory card, and the appropriate
line indicating that it is to install and/or run the application
220 on the computer-readable medium.
architecture speci?c autorun program 215, and executes the
program. The autorun program performs any necessary
If the message is a removal message, the event monitor
210 locates the appropriate autorun program 215 as
described above. It then runs the program, passing it a
command line indicating that it is to remove the application
setup for the application (described above), and then Waits.
Upon removal of the Compact Flash memory card, the
25
220 from the operating memory of the Palm-siZe PC, and
operating system, or a component thereof, detects the
removal and noti?es shell process 205 of the removal. Shell
process 205 then noti?es event monitor 210 of the removal,
that resources used by the application are to be freed for
Which sends an uninstall parameter to the autorun program.
re-use by other applications.
The autorun program then terminates application 220,
It is desirable to provide an event monitor 210, because it
reduces the amount of processing that shell 205 must
perform When a computer-readable medium is inserted or
removed and alloWs for proper serialiZation of the insertion
removes it from memory and frees any resources used by the
and removal events. Processing by shell 205 is reduced,
because it merely passes along the noti?cation to event
monitor 210 that a computer-readable medium has been
inserted or removed. Event monitor 210 performs the major
ity of the Work related to the event, alloWing shell 205 to
respond to other requests in a timely manner.
It is also desirable that event monitor 210 serialiZe the
application 220.
The above described process is repeated every time a user
inserts or removes a Compact Flash memory card.
35
Method for Performing Automatic Cleanup
The previous section presented a system level description
of an embodiment of the invention. In this section, a method
Within an embodiment of the invention Will be described
With reference to a ?oWchart describing steps to be per
formed by computer programs implementing the method
using computer-executable instructions. The computeriZed
insertion and removal messages. This alloWs the events to be
processed in the proper order. This is important When a
Compact Flash card is inserted and removed multiple times.
method is desirably realiZed at least in part as one or more
programs running on a computer—that is, as a program
Each insertion and removal must be handled as a separate 45 executed from a computer-readable medium such as a
event and in the proper order, otherWise system corruption
memory by a processor of a computer. The programs are
can occur.
desirably storable on a computer-readable medium such as
In addition, it is also desirable that the event monitor 210
a ?oppy disk or a CD-ROM, or Compact Flash (CF) card for
be implemented as What is knoWn in the art as a thread. This
is because a thread generally makes more ef?cient use of a
system’s resources than a typical process.
distribution, installation and execution on another (suitably
equipped) computer. The programs may also be stored on
one computer system and transferred to another computer
system via a netWork connecting the tWo systems, thus at
Autorun program 215 is a program developed and pro
least temporarily existing on a carrier Wave or some other
vided by the developer of application 220. In one embodi
ment of the invention, the program has tWo major opera
tional modes Which are speci?ed as command parameters. In
the ?rst mode, autorun program 215 installs and/or runs
application 220 softWare from a Compact Flash card. In this
55
for automatically freeing resources and performing other
clean up activities on a Palm-siZe PC. The method begins at
300, Where an event monitor program is started. The event
mode, the program performs setup functions such as setting
registry entries, inserting a tray icon for application 220 in
the task bar and copying the application from the Compact
monitor performs any required initialiZation, such as setting
up message queues and handlers to receive events.
Next at 305, the method Waits for an event to be detected.
In one embodiment of the invention, the mechanism used to
indicate an event is the sending and receiving of a pre
Flash card to the operational memory of the Palm-siZe PC.
In the second mode, autorun program 215 terminates the
application upon receiving noti?cation that the Compact
Flash card has been removed, and performs cleanup func
tions such as removing registry entries, removing the icon
for the application from the task bar, and frees any memory
allocated to the application.
form of transmission.
In FIG. 3, a ?oWchart is shoWn that illustrates a method
determined message. Speci?cally, in the WindoWs CE oper
65
ating system, the SHCNEiDRIVEADD and ARMi
INSERT messages indicate that a Compact Flash card has
been inserted, and the SHCNEiDRIVEREMOVE and
US 6,405,362 B1
10
methods of the invention can be readily applied to other
types of removable computer-readable media. The use of
alternative computer-readable media such as PCMCIA
ARMiREMOVE messages indicate that a Compact Flash
card has been removed. Other mechanisms for declaring an
event are possible and Within the scope of the invention. For
example, in an alternative embodiment of the invention, an
event is declared by setting a semaphore. In a further
embodiment of the invention, setting a value in a shared
memory cards, 3.5“ ?oppy disks, and CD-ROM disks is
memory location is used to declare an event. In a still further
alternative embodiment, generating a pre-determined inter
rupt indicates an event has occurred. In yet another
embodiment, an event is declared by generating an operating
system signal. Each of the above-described mechanisms is
10
Within the scope of the invention.
In addition, the environment in Which the various embodi
ments of the invention operate has been described in terms
of the Palm-siZe PC. HoWever, the invention is not so
limited. The system and methods of the invention can be
implemented in any environment Where the use of resources
is a concern, including laptop PCs, desktop PCs and other
systems. One eXample occurs in the general softWare instal
knoWn in the art and can be used to indicate a particular
lation conteXt Where a user desires perform What is com
monly referred to in the art as a “minimal” installation, i.e.
event.
After an event is detected, the method proceeds to 310 to
determine the type of event that occurred. TWo types of
events, insertion and removal of a Compact Flash memory
card, are of particular interest. If the event is the insertion of
a Compact Flash card, the method proceeds to 315 to invoke
run the application. The system and methods of the inven
tion could be adapted to such a minimal installation.
an autorun program With a parameter indicating that an
can be distributed into multiple component programs that
only installing that softWare Which is absolutely required to
Also, the functionality provided by the autorun program
are invoked by the event monitor. For example, one com
installation is to be performed. In one embodiment of the
invention, the method searches a ?le system on the Compact
Flash memory card for a particular, architecture speci?c,
ponent program could perform the installation, and a sepa
rate component program could perform the removal and
autorun program.
cleanup.
This application is intended to cover any adaptations or
The method then proceeds to 320, Where the autorun
program invoked at 315 performs an installation of one or 25 variations of the present invention. Therefore, it is mani
festly intended that this invention be limited only by the
folloWing claims and equivalents thereof.
more softWare applications resident on the Compact Flash
memory card. As part of the installation, the autorun pro
gram performs tasks such as copying the application into the
We claim:
1. Amethod for automatically releasing resources used by
computer’s operational memory, setting appropriate registry
entries, initialiZing con?guration ?les, and entering icons
an application, said resources maintained by a computer
having an operating system, the method comprising:
onto the display. FolloWing the installation, the method
Compact Flash memory card, the method then proceeds to
detecting the removal of a computer-readable medium
from the computer; and
removing an application previously installed from the
computer-readable medium and releasing at least a
subset of the resources acquired by the application;
325. Here, the autorun program that Was invoked at 315 is
Wherein removing the application further comprises sig
returns to 305 to Wait for the neXt signi?cant event, Which
Will generally be the removal of the Compact Flash memory
card.
If the event type determined at 310 Was the removal of a
naling an autorun program to remove the application,
invoked again, this time With a parameter indicating that a
cleanup, or uninstall, is to be performed. The method
terminates any applications installed and started at 320. In
said signal comprising an action selected from the
group consisting of: sending a pre-de?ned message to
the autorun program, setting a semaphore, setting a
addition, the method releases resources acquired during the
installation and running of the application, such as registry
value in a shared memory location, and issuing an
operating system signal.
entries, display icons, and con?guration ?les. Removing
these items eliminates potential references to the Compact
2. Amethod for automatically installing to a computer and
Flash memory, thereby reducing the potential for inadvertent
removing from the computer a softWare application on a
system crashes caused by attempting to read memory that is
no longer present. In addition, releasing the resources
computer-readable medium, the method comprising:
acquired during the installation and running of the applica
starting an event monitor;
detecting by the event monitor the insertion of the
tion alloWs other programs and applications to use the
resources, thereby conserving resources in a resource lim
starting an autorun program to install the softWare appli
computer-readable medium;
ited environment. After releasing the resources, the method
cation;
proceeds to 305 to Wait for the neXt event.
Conclusion
A method for performing automatic installation and
detecting by the event monitor the removal of the
computer-readable medium; and
55
signaling the autorun program to remove the softWare
application and release at least a subset of the resources
cleanup of applications delivered on computer-readable
acquired by the softWare application, said signaling
media has been disclosed. In particular, the automatic
cleanup of resources used by an application upon removal of
a Compact Flash memory card has been disclosed. Although
speci?c embodiments have been illustrated and described
occurring from the event monitor to the autorun pro
gram.
3. The method of claim 2, Wherein the computer is a
Palm-siZe PC.
herein, it Will be appreciated by those of ordinary skill in the
4. The method of claim 2, Wherein the computer-readable
medium is selected from a group consisting of: Compact
Flash memory card, PCMCIA memory card, CD-ROM, and
art that any arrangement Which is calculated to achieve the
same purpose may be substituted for the speci?c embodi
ments shoWn. For eXample, the automatic installation and
cleanup of applications delivered on a Compact Flash
memory card has been disclosed, hoWever other system and
3.5“ ?oppy disk.
5. The method of claim 2, Wherein signaling the autorun
program further comprises performing an action selected
US 6,405,362 B1
11
12
from the group consisting of: sending a pre-de?ned message
an event monitor that invokes an autorun program in
to the autorun program, setting a semaphore, setting a value
in a shared memory location, and issuing an operating
response to a signal from the operating system that a
computer-readable medium has been inserted into the
computer and a signal that the computer readable
medium has been removed from the computer, said
system signal.
6. A ?rst computer-readable medium having computer
eXecutable instructions to perform a method for releasing
resources acquired by an application installed on a computer
autorun program operative to install an application
from the computer readable medium When the medium
is inserted and release resources acquired by the appli
cation When the medium is removed.
having an operating system, the method comprising:
detecting the removal of a second computer-readable
medium from the computer; and
removing an application previously installed from the
second computer-readable medium and releasing at
least a subset of the resources acquired by the appli
cation;
Wherein removing the application further comprises sig
12. The system of claim 11, Wherein the operating system
is a version of the Microsoft WindoWs CE operating system.
13. The system of claim 11, Wherein the signal comprises
15
an action selected from the group consisting of: sending a
pre-de?ned message to the autorun program, setting a
semaphore, setting a value in a shared memory location, and
naling an autorun program to remove the application,
issuing an operating system signal.
said signal comprising an action selected from the
group consisting of: sending a pre-de?ned message to
the autorun program, setting a semaphore, setting a
14. The system of claim 11, Wherein the computer is a
Palm-siZe PC.
value in a shared memory location, and issuing an
readable medium is selected from a group consisting of:
15. The system of claim 11, Wherein the computer
operating system signal.
Compact Flash memory card, PCMCIA memory card,
CD-ROM, and 3.5“ ?oppy disk.
16. A computer comprising:
7. A ?rst computer-readable medium having computer
eXecutable instructions to perform a method for automati
cally installing to a computer and removing from the com
puter a softWare application on a second computer-readable
25
starting an event monitor;
detecting by the event monitor the insertion of the
?rst computer-readable medium, said operating system
operative to control and maintain resources;
computer-readable medium;
an event monitor that invokes an autorun program in
starting an autorun program to install the softWare appli
response to a signal from the operating system that a
cation;
detecting by the event monitor the removal of the
computer-readable medium; and
signaling the autorun program to remove the softWare
application and release at least a subset of the resources
a processor;
a ?rst computer-readable medium;
an operating system executed by the processor from the
medium, the method comprising:
35
second computer-readable medium has been inserted
into the computer and a signal that the second computer
readable medium has been removed from the computer,
acquired by the softWare application, said signaling
said autorun program operative to install an application
from the second computer readable medium When the
medium is inserted and release resources acquired by
occurring from the event monitor to the autorun pro
gram.
medium is removed.
the application When the second computer readable
8. The ?rst computer-readable medium of claim 7,
17. The computer of claim 16, Wherein the operating
Wherein the computer is a Palm-siZe PC.
system is a version of the Microsoft WindoWs CE operating
9. The ?rst computer-readable medium of claim 7,
Wherein the second computer-readable medium is selected
from a group consisting of: Compact Flash memory card,
PCMCIA memory card, CD-ROM, and 3.5“ ?oppy disk.
10. The ?rst computer-readable medium of claim 7,
Wherein signaling the autorun program further comprises
performing an action selected from the group consisting of:
system.
sending a pre-de?ned message to the autorun program,
setting a semaphore, setting a value in a shared memory
location, and issuing an operating system signal.
11. A computeriZed application installation and removal
system comprising:
45
18. The computer of claim 16, Wherein the signal com
prises an action selected from the group consisting of:
sending a pre-de?ned message to the autorun program,
setting a semaphore, setting a value in a shared memory
location, and issuing an operating system signal.
19. The computer of claim 16, Wherein the computer is a
Palm-siZe PC.
20. The computer of claim 16, Wherein the second
computer-readable medium is selected from a group con
sisting of: Compact Flash memory card, PCMCIA memory
card, CD-ROM, and 3.5“ ?oppy disk.
an operating system for controlling and maintaining
resources on a computer; and
*
*
*
*
*
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement