`(12) Patent Application Publication (10) Pub. No.: US 2008/0148167 A1
`(43) Pub. Date:
`Jun. 19, 2008
`Russak et al.
`
`US 20080148167A1
`
`(54) METHOD FOR COPYING IMAGES
`
`Publication Classi?cation
`
`.
`(75) Inventors.
`
`.
`Zeev Russak, RaAnana (IL), Zeev
`G1 Ozm an’ Te1_AViV (IL)
`
`Correspondence Address:
`Martin D. Moynihan
`PRTSI, Inc.
`R 0_ BOX 16446
`Arlington VA 22215
`’
`(73) AssigneeZ
`
`Orthocrat Ltd” petachqikva (IL)
`
`(21) App1_ NO;
`
`11/640,311
`
`(22) Filed:
`
`Dec. 18, 2006
`
`51) Int. Cl.
`(
`(2006.01)
`G06F 3/048
`(52) US. Cl. ...................................................... .. 715/769
`
`(57)
`
`ABSTRACT
`.
`.
`An apparatus for copymg image data between computer
`applications running under at least one operating system, the
`apparatus comprising: a selector, operable by a user, for
`selecting an object from a computer application, and an image
`data importer, associated With the selector, and con?gured to
`automatically import image data of the selected object into a
`predetermined target computer application, upon the select
`ing
`
`1 1O
`
`120
`
`Selecto r
`
`Image Data Importer
`
`1 60
`
`Image Presenter
`
`V
`
`1 70
`
`Image Data Processor
`
`V
`
`1
`
`Petitioner Samsung 1014
`
`
`
`Patent Application Publication
`
`Jun. 19, 2008 Sheet 1 0f 8
`
`US 2008/0148167 A1
`
`
`
`
`
`howwoooi Ema moms:
`
`P
`
`0:
`
`
`
`houcmwmi mmmg
`
`ow?
`
`662mm
`
`
`
`
`
`hotoQE_ Ema mmmg
`
`oNF
`
`82. w PEwE
`
`2
`
`
`
`Patent Application Publication
`
`Jun. 19, 2008 Sheet 2 0f 8
`
`US 2008/0148167 A1
`
`‘H
`
`s
`2
`o a,
`o
`m
`.E
`;
`2
`<
`
`0:
`.E
`E
`o.
`.E
`2:
`' 8
`1:
`co
`E
`"5
`<
`
`_
`
`D
`
`a
`
`O
`
`a
`
`Figure 2 2000
`
`3
`
`
`
`Patent Application Publication
`
`Jun. 19, 2008 Sheet 3 0f 8
`
`US 2008/0148167 A1
`
`25%» Eng ‘3%: 05 gas
`
`
`
`mm :7 swlwuwwdu QUMEJEHWEQ
`
`com
`
`4
`
`
`
`Patent Application Publication
`
`Jun. 19, 2008 Sheet 4 0f 8
`
`US 2008/0148167 A1
`
`Ill-Illlllll-ll-Illlul.
`
`5
`
`
`
`x m .a 252%
`
`
`
` v QEELBBm M .
`
`
`
`7 .SMEES/ET
`
`,
`
`1 .
`
`
`
`3F. :35 8%. mm
`
`
`
`3228 “Bag
`
`5
`
`
`
`Patent Application Publication
`
`Jun. 19, 2008 Sheet 5 0f 8
`
`US 2008/0148167 A1
`
`owm
`
`mmm
`
`
` . f “0030 Din-5L0
`~05 v0 much-n G COQE. .m
`
`OZ
`
`coon
`am 953m
`
`6
`
`
`
`Patent Application Publication
`
`n. H J
`
`a m S w m
`
`m
`
`US 2008/0148167 A1
`
`M .m 35E
`
`9, am ENE
`
`Em 2:5
`
`w ‘mi m “i H %
`62am
`
`. 353s?
`
`2332
`
`
`
`mum , gm $1.55 PM.“
`
`:5 85E .w
`
`
`
`
`
`vm ‘ L 35200 332m “E 29cm: 3% 2E2m=< 20am
`
`
`
`
`
`53:52 mum's E350
`
`7
`
`
`
`Patent Application Publication
`
`Jun. 19, 2008 Sheet 7 of8
`
`US 2008/0148167 A1
`
`635:8?was.
`SE,»3gauge9.Eirggfi.&.;.3:
`
`,.
`
`$52:5
`
`
`
`
`
`
`
`i.Mggwflgggfififl,
`
`
`
`
`
`Sun309.?mint—Eating22:.23duu-En2D,
`
`8
`
`
`
`
`Patent Application Publication
`
`Jun. 19, 2008 Sheet 8 0f 8
`
`US 2008/0148167 A1
`
`Start — Making another
`
`wind“ Topmost
`
`61 0
`
`Input control handle to
`bring to front, Into
`
`v
`
`Use GotParent WlnAPl command. to get the handle of
`
`the wlndow that contains the
`control. Store the handle in
`_WindowPtr
`
`625
`heck if vvlndow is minimized. using
`Vl?ndows API lsloonic method
`
`627
`
`
`
`Use the WlnAPl method GetWlndowThreadProoessld to get the thread handle of _windowPtr, and of
`
`i
`
`_toregmundwlndowPtr.
`Store those values in:
`_l‘oregroundThreedld, Mmwrmmw
`
`t
`
`Use Wln32 Method AttachThreadlnput to ettadt _wlndowThreadld to _foregrounclThreadld
`
`This method may tell on some versions 01
`Microsoft Windows. Failure of this method is
`handled beiow
`
`previous method suooed =
`(returned true)
`
`Restore window, using
`showwimow wlnAP| No
`command‘
`
`New?)
`
`Get the foreground wlndow handle.
`using WlnAPl GetForwardWindow
`command. Store it in
`Joregmundwmdm
`
`'
`
`l
`
`665
`
`v.7
`
`7
`5 We have suocessfullyldegulsed our
`thread as the target window thread.
`Use BringToFronl and
`SetForegroundWlndow Methods to try
`
`to bring the window to hem
`l
`.
`.
`gmm'g’g‘gme the
`.
`.
`attaching of the window thread.
`,_..._..__......._...________l
`
`Is _windowPtr Equals to
`Forward Window Handle?
`
`s _wlndowPtr is the topmost windo
`(Use GetForegroundwlnow method
`
`Use Vl?nAPl method:
`SystemParemeterslnfo(SPl_GETFOREGROUNDLO
`CKTIMEOUT, 0, &_timeout. 0)
`To store the window timeout value to _timeout
`variable
`
`i
`
`Use WinAPI method:
`de?ne integer _to = 0;
`SystemParam tersinfo(SPl_SETFOREGROUNDLO
`CKTIMEOUT, D, &_to, SPIF_SENDCHANGE)T0 set
`the window timeout value to 0
`
`l
`
`Use WinAPl commends BrlngWlndowToTop and
`SetForegroundVWndow to bring the window to front
`
`m
`
`.
`
`i
`
`Use WinAPI method:
`SystemParameterslnMSPLSETFOREGROUNDLO
`CKTIMEOUT. 0. Glimeout. $P|F_SENDCHANGE)
`' To restore the window timeout value to _tlmeout
`
`Window ls Topmost, END
`
`l
`
`Figure 6
`
`9
`
`
`
`US 2008/0148167 A1
`
`Jun. 19, 2008
`
`METHOD FOR COPYING IMAGES
`
`FIELD AND BACKGROUND OF THE
`INVENTION
`
`[0001] The present invention relates to computer user inter
`faces and, more particularly, but not exclusively to a system
`and apparatus for copying images betWeen computer appli
`cations.
`[0002] In human-computer interaction, cut and paste or
`copy and paste is a user interface paradigm for transferring
`text, data, ?les or objects from a source to a destination. Most
`ubiquitous is the ability to cut and paste sections of plain text.
`[0003] The term “cut andpaste” derives from the traditional
`practice in manuscript editing in Which paragraphs Were lit
`erally cut from a page With scissors and physically pasted
`onto another page.
`[0004] This traditional practice Was standard practice as
`late as the 1980s. Editing scissors With blades long enough to
`cut an 81/2"-Wide page Were available at stationery stores. The
`advent of photocopiers made the practice easier and more
`?exible.
`[0005] The cut-and-paste paradigm Was Widely popular
`iZed by AppleTM in the LisaTM and MacintoshTM operating
`systems and applications. It Was mapped to a key combina
`tion consisting of a special control key held doWn While
`typing the letters X (for cut), C (for copy), and V (for paste).
`[0006] The above key combinations Were later adopted by
`Microsoft in WindoWsTM. Common User Access (in Win
`doWsTM and OS/2TM) also uses combinations of the Insert,
`Del, Shift and Control keys.
`[0007] Some environments alloW cutting and pasting With a
`computer mouse (by drag and drop, for example).
`[0008] The ?rst multiple clipboard utility Copy-Paste
`appeared on the Macintosh in 1989 and extended the key
`board concept for each clipboard so that holding doWn the
`command key +c+ any number (0-9) Would copy to a separate
`clipboard. CopyPaste later displayed and alloWed editing
`hundreds of clipboards and added a clipboard recorder or
`stack of the most recently made cuts or copies.
`[0009] Copy-and-paste refers to the popular, simple
`method of reproducing data from a source application to a
`destination application, Which is only different from cut and
`paste in that the original source data is not deleted or removed
`as it is With the latter process.
`[0010] Copying can be performed on most graphical user
`interface systems using the key combinations such as Ctrl+C
`or Ctrl+Ins, or by using some other method, such as a context
`menu or a toolbar button.
`[0011] Once data have been copied into the area of memory
`referred to as the clipboard, they can be pasted into a desti
`nation using the key combinations Ctrl+V or Shift+Insert, or
`methods dependent on the system.
`[0012] Macintosh computers use the key combinations
`Command+C and Command+V. In the X WindoW System,
`selecting text copies it to a clipboard, While middle-clicking
`pastes.
`[0013] The popularity of this method stems from its sim
`plicity and the ease With Which data can be moved betWeen
`various applications Without resorting to permanent storage.
`[0014] By noW, the cut-and-paste paradigm (or copy-and
`paste) is a universal paradigm, used on a daily basis by most
`computer users.
`
`[0015] Currently, there are many computer applications,
`Which implement the cut-and-paste (or copy-and-paste) para
`digm, as described in further detail hereinabove.
`[0016] For example, TechSmith Inc. offers the Snag-ItTM
`product. The Snag-ItTM product alloWs a computer user to
`capture screen images of objects or entire screens, and copy
`the images from one computer document to another.
`[0017] HoWever With current products, the copy-and-paste
`operation is a multi step semiautomatic process. The user has
`to select the image in an application, as Well as a target
`application that the image data is copied to.
`[0018] Furthermore, the image data is temporarily stored in
`a ?le (or a clipboard), before the image is copied to the target
`application, and the access to the ?le (or a clipboard) has to be
`appropriately managed.
`[0019] On most systems there is only one location in the
`clipboard, hence another cut operation overWrites the previ
`ously stored information. Multiple clipboard entries are pro
`vided by many UNIX text editors and some WindoWsTM
`clipboard manager programs that are available over the Inter
`net.
`[0020] With current systems, only When the user selects the
`target application, for the speci?c copy-and-paste operation,
`is the image data copied to the target application.
`[0021] For example, US. Pat. No. 6,269,389, to Ashe, ?led
`on May 5, 1995, entitled “Method and system for controlling
`the copying and insertion of contents of documents”,
`describes a clipboard manager. The clipboard manager
`employs preemptive scheduling for access to contents of a
`clipboard region of memory in a computer.
`[0022] There is thus a Widely recogniZed need for, and it
`Would be highly advantageous to have, a system devoid of the
`above limitations.
`
`SUMMARY OF THE INVENTION
`
`[0023] According to one aspect of the present invention,
`there is provided an apparatus for copying image data
`betWeen computer applications running under at least one
`operating system, the apparatus comprising: a) a selector,
`operable by a user, for selecting an object from a computer
`application; and b) an image data importer, associated With
`the selector, and con?gured to automatically import image
`data of the selected object into a predetermined target com
`puter application, upon the selecting.
`[0024] According to a second aspect of the present inven
`tion, there is provided a method for copying image data
`betWeen computer a applications running under at least one
`operating system, the method comprising: alloWing a user to
`select an object from a computer application; and upon the
`selecting, automatically importing image data of the selected
`object into a predetermined target computer application.
`[0025] Unless otherWise de?ned, all technical and scien
`ti?c terms used herein have the same meaning as commonly
`understood by one of ordinary skill in the art to Which this
`invention belongs. The materials, methods, and examples
`provided herein are illustrative only and not intended to be
`limiting.
`[0026] Implementation of the method and system of the
`present invention involves performing or completing certain
`selected tasks or steps manually, automatically, or a combi
`nation thereof.
`[0027] Moreover, according to actual instrumentation and
`equipment of preferred embodiments of the method and sys
`tem of the present invention, several selected steps could be
`
`10
`
`
`
`US 2008/0148167 A1
`
`Jun. 19, 2008
`
`implemented by hardware or by software on any operating
`system of any ?rmware or a combination thereof.
`[0028] For example, as hardware, selected steps of the
`invention could be implemented as a chip or a circuit. As
`software, selected steps of the invention could be imple
`mented as a plurality of software instructions being executed
`by a computer using any suitable operating system. In any
`case, selected steps of the method and system of the invention
`could be described as being performed by a data processor,
`such as a computing platform for executing a plurality of
`instructions.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0029] The invention is herein described, by way of
`example only, with reference to the accompanying drawings.
`[0030] With speci?c reference now to the drawings in
`detail, it is stressed that the particulars shown are by way of
`example and for purposes of illustrative discussion of the
`preferred embodiments of the present invention only, and are
`presented in order to provide what is believed to be the most
`useful and readily understood description of the principles
`and conceptual aspects of the invention. The description
`taken with the drawings making apparent to those skilled in
`the art how the several forms of the invention may be embod
`ied in practice.
`[0031] In the drawings:
`[0032] FIG. 1 is a block diagram illustrating an apparatus
`for copying image data between computer applications,
`according to a preferred embodiment of the present invention;
`[0033] FIG. 2 is a ?owchart illustrating a ?rst method for
`copying image data between computer applications, accord
`ing to a preferred embodiment of the present invention;
`[0034] FIG. 3 shows an exemplary marker, for selecting an
`object, according to a preferred embodiment of the present
`invention;
`[0035] FIG. 4 shows an exemplary image of the object
`selected in FIG. 3, after import to a target application, accord
`ing to a preferred embodiment of the present invention;
`[0036] FIG. 5a is a ?owchart illustrating a second method
`for copying image data between computer applications,
`according to a preferred embodiment of the present invention;
`[0037] FIG. 5b shows an exemplary image of an object in
`one application, imported to a target application, according to
`a preferred embodiment of the present invention; and
`[0038] FIG. 6 is a ?owchart illustrating a method for mak
`ing an object topmost, according to a preferred embodiment
`of the present invention.
`
`DESCRIPTION OF THE PREFERRED
`EMBODIMENTS
`
`[0039] The present embodiments comprise a method and
`apparatus for importing image data from one computer appli
`cation to a target computer application.
`[0040] A computer application is a de?ned subclass of
`computer software that employs the capabilities of a com
`puter directly to a task that the user wishes to perform. This
`should be contrasted with operating systems which are
`involved in integrating a computer’s various capabilities, but
`typically does not directly apply them in the performance of
`tasks that bene?t the user. An application generally runs
`within or under an operating system.
`
`[0041] Typical computer applications, used on a daily
`basis, include a word processor (such as WordTM), a spread
`sheet editor (such as ExcelTM), etc.
`[0042] There are also computer applications used in spe
`ci?c industries.
`[0043] For example, in medical imaging, Picture Archiving
`and Communication Systems (PACS) are computer applica
`tions dedicated to storage, retrieval, distribution and presen
`tation of medical images.
`[0044] With a method according to a preferred embodiment
`of the present invention, a user may select an object appearing
`in a window of a computer application (say, a PACS applica
`tion), and the image data of the selected object is automati
`cally imported to a prede?ned target computer application.
`[0045] The prede?ned target computer application may be
`prede?ned by an administrator of a system, prede?ned by the
`user, or simply be an application the method is implemented
`by (say, a medical image calibration software installed with a
`functionality for implementing the method, as described in
`further detail hereinbelow).
`[0046] That is to say, according to a preferred embodiment
`of the present invention, the user merely has to choose the
`object, for having the image data of the object automatically
`imported to the target application.
`[0047] Unlike current methods, the user does not have to
`engage in a multi-step process, where the user selects an
`object (say, by performing a Copy or Cut operation), the
`image data of the object as held by the operating system is
`temporarily placed in a ?le (or in a clipboard), the user
`chooses the target application, and the image is pasted on the
`target application’s window.
`[0048] For example, a user uses propriety PACS software,
`to examine a radiographic image of a human organ, or bone.
`The user also uses a computer application for calibrating the
`radiographic image.
`[0049] In accordance with a preferred embodiment of the
`present invention, the user chooses the radiographic image in
`the PACS software. Consequently, the image data of the
`radiographic image is automatically imported from the oper
`ating system to the target computer application used for cali
`brating the image.
`[0050] The radiographic image may be presented, edited,
`and calibrated by the targeted computer application used for
`calibrating the image.
`[0051] The principles and operation of an apparatus and
`method according to the present invention may be better
`understood with reference to the drawings and accompanying
`description.
`[0052] Before explaining at least one embodiment of the
`invention in detail, it is to be understood that the invention is
`not limited in its application to the details of construction and
`the arrangement of the components set forth in the following
`description or illustrated in the drawings.
`[0053] The invention is capable of other embodiments or of
`being practiced or carried out in various ways. Also, it is to be
`understood that the phraseology and terminology employed
`herein is for the purpose of description and should not be
`regarded as limiting.
`[0054] Reference is now made to FIG. 1, which is a block
`diagram illustrating an apparatus for copying image data
`between computer applications, according to a preferred
`embodiment of the present invention.
`[0055] Apparatus 1000 includes a selector 110.
`
`11
`
`
`
`US 2008/0148167 A1
`
`Jun. 19, 2008
`
`[0056] The selector 110 may be used by a user, to select an
`object in a computer application, say a radiographic image in
`a Picture Archiving and Communication Systems (PACS).
`[0057] Preferably, the selector 110 presents a marker to the
`user, and alloWs the user to drag the marker onto an image of
`the object, thereby to select the object, as described in further
`detail hereinbeloW.
`[0058] The apparatus further includes an image data
`importer 120, connected to the selector 110.
`[0059] An operating system, such as WindoWsTM has
`access to image data of each object presented to a user in a
`computer screen by the operating system.
`[0060] The image data importer 120 automatically imports
`image data of the selected object from the operating system
`into a predetermined target computer application, upon the
`selection of the object by the user.
`[0061] That is to say, once the user selects the object from
`the PACS, or other computer application, the image data of
`the selected object is imported from the operating system to a
`target application, as described in further detail hereinbeloW.
`[0062] Preferably, the target application is an application
`preinstalled With an apparatus 1000, such as a Word proces
`sor, spreadsheet software, softWare for calibrating medical
`digital images, etc.
`[0063] Optionally, the target application is a target applica
`tion chosen by an administrator of the apparatus 1000, or a
`target application chosen by the user. Once the user or admin
`istrator selects the target application, image data of any object
`selected by the user is automatically imported from the oper
`ating system to the selected target application.
`[0064] Preferably, the image data importer 120 ?nds if the
`selected object belongs to the target application, and thereby
`avoids importing the image data of an object belonging to the
`target application.
`[0065] Optionally, apparatus 1000 also includes an image
`capturer, connected to the selector 110.
`[0066] The image capturer captures the image data of the
`object selected by the user, from an operating system prior to
`the importing of the image data of the object to the target
`application.
`[0067] For example, the image capturer may be imple
`mented using a WindoW spy. A WindoW spy is softWare that is
`used for capturing the handle of the WindoW Where the image
`of the object is displayed, and the handle is used to import the
`graphic object data from the operating system, as described in
`further detail hereinbeloW. An example of a WindoW spy is
`WindoWsTM Spy.
`[0068] One problem With the WindoWsTM operating system
`is that the WindoWsTM operating system does not provide for
`capturing of image data from a WindoW Which is not topmost
`of the WindoWs presented to the user, as explained in further
`detail hereinbeloW.
`[0069] That is to say, When a user of a target application
`selects an object While using the target application, the Win
`doW of the target application is topmost. HoWever, the Win
`doWsTM operating system does not provide for capturing
`image data of the selected object’s WindoW, as the object’s
`WindoW is not topmost among WindoWs managed by the
`operating system.
`[0070] In order to alloW the capturing the image data of the
`object selected by the user, the selected object’s WindoW is
`made topmost.
`[0071] Preferably, apparatus 1000 further includes a top
`most maker, connected With the selector.
`
`[0072] The topmost maker makes the selected object top
`most. Consequently, the image data of the selected object may
`be captured from the operating system. For example, the
`image capturer may capture the image data from the Win
`doWsTM operating system, as described in further detail here
`inbeloW.
`[0073] The target application may be used to present the
`image data, process the image data, edit the image data, etc, as
`knoWn in the art.
`[0074] Optionally, apparatus 1000 includes an image pre
`senter 160, connected to the image data importer 120.
`[0075] The image presenter 160 presents an image of the
`selected object in a WindoW of the target application, using the
`imported image data.
`[0076] Preferably, the image presenter presents an image of
`the selected object in a WindoW of the target application, using
`the imported image data, according to a policy prede?ned by
`a user or an administrator of the apparatus 1000.
`[0077] For example, an administrator of the apparatus 1000
`may de?ne a policy that all images are to be aligned With the
`upper border of a WindoW, presented in a certain position in
`the WindoW, presented in a certain siZe, etc.
`[0078] Preferably, the apparatus also comprises an image
`data processor 170 connected to the image data importer 120.
`[0079] The image data processor 170 may process the
`image data, according to a prede?ned policy. The policy may
`be de?ned by a user, an administrator of the apparatus 1000,
`etc.
`[0080] An example of such a policy Wouldbe that the image
`data processor 170 may process the color images to a grey
`scale, improve the quality of the image, etc, as knoWn in the
`art.
`[0081] Reference is noW made to FIG. 2, Which is a How
`chart illustrating a method for copying image data betWeen
`computer applications, according to a preferred embodiment
`of the present invention.
`[0082] According to method 2000, a user is alloWed 210 to
`select an object from a computer application, say using a
`selector 110, as described in further detail hereinabove.
`[0083] For example, a user may select a radiographic image
`in a Picture Archiving and Communication Systems (PACS).
`[0084] Reference is noW made to FIG. 3, Which shoWs an
`exemplary marker, for selecting an object, according to a
`preferred embodiment of the present invention.
`[0085] Preferably, the user is presented a marker 310, and
`alloWed to drag the marker 310 onto an image of the object
`320, thereby to select the object 320.
`[0086] Upon the selection 310 of the object by the user (say
`by dragging the marker 310 into the image of the object, as
`described hereinabove) the image data of the selected object
`is automatically imported 320 from the operating system into
`a predetermined target computer application.
`[0087] That is to say, once the user selects 310 the object
`from the PACS, or other computer application, the image data
`of the selected object is imported 320 into a target application,
`say using an image data importer 120, as described in further
`detail hereinbeloW.
`[0088] Preferably, the method 2000 is implemented by an
`application preinstalled Within an apparatus 1000, such as a
`Word processor, spreadsheet softWare, softWare for calibrat
`ing medical digital images, etc.
`[0089] Optionally, the target application is a target applica
`tion chosen by an administrator of the apparatus 1000, or a
`target application chosen by the user in advance.
`
`12
`
`
`
`US 2008/0148167 A1
`
`Jun. 19, 2008
`
`[0090] Once the user or administrator selects the target
`application, image data of any object selected by the user is
`automatically imported to the selected target application.
`[0091] Preferably, there is veri?ed that the object, selected
`by the user, does not belong to the target application itself, say
`using the image data importer 120. If the selected object
`belongs to the target application, the image data of the object,
`Which belongs to the target application, is not imported to the
`target application.
`[0092] Optionally, the image data of the object is retrieved
`from the operating system prior to the importing of the image
`data of the object to the target application, say using the image
`capturer described hereinabove.
`[0093] One problem With the WindoWsTM operating system
`is that the WindoWsTM operating system does not alloW cap
`turing of image data from a WindoW Which is not topmost of
`the WindoWs presented to the user.
`[0094] For example, When a user of a target application
`selects an object While using the target application, the Win
`doW of the target application is topmost. HoWever, the Win
`doWsTM operating system does not provide for capturing
`image data of the selected object’s WindoW, as the object’s
`WindoW is not topmost among WindoWs managed by the
`operating system.
`[0095] In order to alloW the capturing the image data of the
`object selected by the user, the selected object’s WindoW is
`made topmost.
`[0096] In order to overcome the problem With the Win
`doWsTM operating system, the selected object is made top
`most, say using the methods described in further detail here
`inbeloW. Consequently, the image data of an object may be
`captured from the WindoWTM operating system.
`[0097] The target application may be used to present the
`image data, process the image data, edit the image data, etc, as
`knoWn in the art.
`[0098] Preferably, the image data is used to present the
`image in a WindoW already used by the target application, in
`a neW WindoW, etc.
`[0099] Preferably, the image of the selected object is pre
`sented in the WindoW of the target application, using the
`imported image data, according to a policy prede?ned by a
`user or an administrator of the apparatus 1 000, as described in
`further detail hereinabove.
`[0100] Reference is noW made to FIG. 4, Which shoWs an
`exemplary image of the object selected in FIG. 3, after import
`to a target application, according to a preferred embodiment
`of the present invention.
`[0101] An administrator of the apparatus 1000 may de?ne
`a policy that all images are to be aligned With the upper border
`of a WindoW, presented in a certain position 410 in the Win
`doW, presented in a certain siZe, etc.
`[0102] Preferably, the image data imported to the target
`application is processed, according to a prede?ned policy.
`The policy may be de?ned by a user, an administrator of the
`apparatus 1000, etc.
`[0103] For example, the image data processor may present
`color images in grey scale, improve the quality of the image,
`etc, as knoWn in the art.
`[0104] Reference is noW made to FIG. 5a, Which is a How
`chart illustrating a second method for copying image data
`betWeen computer applications, according to a preferred
`embodiment of the present invention.
`
`[0105] Method 5000 may be implemented in the Win
`doWsTM operating system environment. In the method the
`user is presented 510 a grabber WindoW 300 With a marker
`310, as illustrated in FIG. 3.
`[0106] The grabber WindoW 300 presents the user With
`instructions for selecting the object, and With a marker 310,
`usable for selecting the object, by dragging the marker onto
`the object, as described in further detail hereinabove.
`[0107] The user is alloWed 520 to drag the marker 310 onto
`an image of an object 320 that the user Wishes to import into
`a prede?ned target application, as described in further detail
`hereinabove.
`[0108] Next, there is found 530, the handle of the WindoW
`of the object selected by the user, say by the image data
`imported 120. The handle is a unique number assigned by the
`WindoWsTM Operating system to each WindoW.
`[0109] Next, there is veri?ed 535 that the handle does not
`belong to a WindoW of the target application.
`[0110] If the handle belongs to the WindoW of the target
`application, the selection is disabled, and no image data of the
`object, Which appears to be mistakenly selected by the user, is
`imported to the target application.
`[0111] If the handle does not belong to a WindoW of the
`target application, the object is made 530 topmost (say, by
`making the WindoW of the selected object topmost, as
`described in further detail hereinbeloW), and the image data
`of the selected object is fetched 540 from the Operating
`System, say as a bitmap ?le, as knoWn in the art.
`[0112] Finally, the image data (say, the bitmap ?le) is
`imported 550 to a target application.
`[0113] The target application may be an application, such
`as a Word processor or a spreadsheet editor, selected in
`advance by the user or administrator of the apparatus 1000, a
`target application implementing the method 5000, etc, as
`described in further detail hereinabove.
`[0114] Reference is noW made to FIG. 5b, Which shoWs an
`exemplary image of an object in one application, imported to
`a target application, according to a preferred embodiment of
`the present invention.
`[0115] The target application 580 may process the image
`data of an object presented in an application 590, present an
`image of the object to the user in minimized or maximiZed
`form, using the image data of the object, etc, as described in
`further detail hereinabove.
`[0116] Reference is noW made to FIG. 6, Which is a How
`chart illustrating a method for making an object topmost,
`according to a preferred embodiment of the present invention.
`[0117] As explained hereinabove, one problem With the
`WindoWsTM operating system is that WindoWsTM operating
`system does not alloW capturing of image data of a WindoW
`Which is not topmost of the WindoWs presented to the user
`from the operating system, as explained in further detail here
`inbeloW.
`[0118] Optionally, the user manually sWitches to the Win
`doW of the object the user Wishes to select, say using the
`WindoWsTM Alt+Tab functionality, as knoWn in the art, thus
`making the WindoW of the object selected by the user topmost
`[0119] Preferably, the object selected by the user in a Win
`doWsTM operating system application is made topmost, say
`using method 6000.
`[0120] In method 6000, the handle of an object’s WindoW,
`Which needs to be made topmost, is received 610, say by the
`topmost maker described in further detail hereinabove.
`
`13
`
`
`
`US 2008/0148167 A1
`
`Jun. 19, 2008
`
`[0121] Next, there is used 620 the GetParent WindoWsTM
`Application Programming Interface (API) Function, to
`retrieve the handle of a WindoW Which contains the object
`selected by the user, and the handle is stored 620.
`[0122] Next, there is checked 625 if the WindoW, Which
`contains the object selected by the user, is minimized. If the
`WindoW Which contains the object selected by the user is
`minimized, the WindoW is restored to normal siZe, using the
`ShoWWindoW API command, as knoWn in the art.
`[0123] Next, the handle of the foreground WindoW is
`retrieved 630 from the operating system, using the GetFor
`WardWindoW API command, as knoWn in the art.
`[0124] If the handle of the foreground WindoW is different
`than the handle of the WindoW hosting the object 635, then
`there are performed the folloWing steps:
`[0125] TheAPI GetWindoWThreadProcessID is used to get
`640 the handle of the WindoW, Which contains the object
`selected by the user.
`[0126] The API method GetWindoWThreadProcessID is
`also used to get the handle of the foreground WindoW, and the
`tWo handles are stored.
`[0127] Next, the Win32 AttachThreadInput method is used
`645, in order to attach the thread of the WindoW of