DE69523593T2 - Vorrichtung und verfahren zur aufteilung der anwendung in einer graphischen benutzerschnittstelle - Google Patents
Vorrichtung und verfahren zur aufteilung der anwendung in einer graphischen benutzerschnittstelleInfo
- Publication number
- DE69523593T2 DE69523593T2 DE69523593T DE69523593T DE69523593T2 DE 69523593 T2 DE69523593 T2 DE 69523593T2 DE 69523593 T DE69523593 T DE 69523593T DE 69523593 T DE69523593 T DE 69523593T DE 69523593 T2 DE69523593 T2 DE 69523593T2
- Authority
- DE
- Germany
- Prior art keywords
- shared
- host system
- client
- application
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Human Computer Interaction (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Operations Research (AREA)
- Economics (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
- Digital Computer Display Output (AREA)
Description
- Die Erfindung bezieht sich auf Computersysteme, die eine graphische Benutzerstellte (GUI) implementieren. Insbesondere bezieht sich die Erfindung auf ein task-basiertes Teilen von Anwendungen (Application Sharing) bei einer graphischen Benutzerschnittstelle, wie beispielsweise Windows®.
- Bei dem heutigen starken Vertrauen auf Personalcomputer bei der Arbeit und zu Hause ist ein Verfahren wünschenswert, das es einem Benutzer ermöglicht, sich die Steuerung oder Kontrolle eines Personalcomputers mit einem Benutzer eines anderen Personalcomputers, der sich in einem fernen Bereich aufhält, zu teilen.
- Ein Verfahren, das einem Benutzer ermöglicht, einen Personalcomputer eines fernen Benutzers zu steuern, geht über ein "traditionelles" Fernsteuerverfahren. Bei einem traditionellen Fernsteuerverfahren wird ein Personalcomputer eines lokalen Benutzers, der als Client-System bezeichnet wird, mit einem Personalcomputer eines fernen Benutzer, der als Host-System bezeichnet wird, verbunden. Der Benutzer des Client-Systems, der als Client-Benutzer bezeichnet wird, übernimmt die Kontrolle über das Host-System. Die Maus- und Tastaturaktivitäten des Client-Benutzers werden dann direkt zu dem Host-System übermittelt. Darüber hinaus wird der normale auf dem Client-System angezeigte Bildschirm durch ein Abbild des Anzeigebildschirms des Host-System ersetzt.
- Ein Nachteil des herkömmlichen Fernsteuerverfahrens besteht darin, daß es das herkömmliche Fernsteuerverfahren nicht gestattet, daß sowohl der Benutzer des Host-Systems, der als Host-Benutzer bezeichnet wird, als auch der Client- Benutzer ihre Personalcomputer gleichzeitig benutzen. Statt dessen werden, während dem Client-Benutzer die vollständige Kontrolle über das Host-System gegeben ist, Host-Benutzereingaben von dem Host-System entweder zurückgewiesen oder akzeptiert, können dann aber zu unvorhersagbaren Ergebnissen führen. Darüber hinaus ist der Client-Benutzer in der Lage, den gesamten Host-Bildschirm zu sehen, und somit ist der Host-Benutzer seiner Privatsphäre bezüglich der auf seinem Host-Bildschirm angezeigten Dinge beraubt.
- Eine andere Art eines Fernsteuerverfahrens (das hier als "Rechteckverfahren" bezeichnet wird) gestattet es dem Host- Benutzer, ein Rechteck auf dem Host-System zu definieren. Ein Client-Benutzer kann nur den speziellen Bereich, der durch das Rechteck auf dem Host-System definiert wird, sehen und diesen bearbeiten. Dieses Verfahren ermöglicht es dem Host-Benutzer, an dem das Rechteck umgebenden Bereich auf dem Host-Systembildschirm zu arbeiten, während es das zuvor beschriebene herkömmliche Fernsteuerverfahren es dem Host- Benutzer nicht ermöglicht, an dem Host-System zu wirken.
- Ein Nachteil des Rechteckverfahrens besteht darin, daß der gemeinsame Bereich innerhalb des Rechtecks willkürlich durch den Host-Benutzer ausgewählt wird und irgendwelche nachfolgenden Bewegungen oder Umdimensionierungen eines Fensters einer geteilten Anwendung zu unvorhersagbaren Ergebnissen führen können. Darüber hinaus hat der Host-Benutzer keine Rückkopplung bezüglich des ausgewählten Bereichs, in welchem der Client-Nutzer die Kontrolle haben könnte. Statt dessen erscheint der Personalcomputerbildschirm des Host-Benutzers als normaler Bildschirm ohne irgendeine rechtwinklige Abgrenzung, um den Bereich anzuzeigen, in welchem der Client-Benutzer die Kontrolle haben kann.
- Typischerweise wünschen Benutzer von Fernsteuerverfahren sich eine oder mehrere Anwendungen auf dem Host-Systembildschirm des Host-Benutzers zu teilen, und zwar unabhängig von der Größe und/oder Positionierung der gemeinsam benutzten Anwendungen. Die oben beschriebenen Fernsteuerverfahren verhindern irgendeine Bewegung oder Umdimensionierung einer geteilten Anwendung. Fig. 1a und 1b veranschaulichen zwei bekannte Verfahren, welche versuchen, einem Benutzer eines Personalcomputers (PC), der als Client-System bezeichnet wird, die Fernsteuerung eines PCs eines anderen Benutzers, der als Host-System bezeichnet wird, zu gestatten.
- Fig. 1a veranschaulicht das herkömmliche Fernsteuerverfahren. Bei dem herkömmlichen Fernsteuerverfahren wird der normale Bildschirm 12 des Client-Systems 11 durch eine exakte Abbildung des Host-Bildschirms 13 ersetzt. Der Client- Benutzer übernimmt die Kontrolle über das Host-System 14, und die Maus- und Tastaturaktionen des Clients werden an das Host-System 14 übermittelt. Während der Client-Benutzer die Kontrolle über das Host-System 14 hat, ist der Host-Benutzer entweder nicht in der Lage, irgendwelche Eingaben in das Host-System 14 zu machen, oder, sofern Eingaben von dem Host-System 14 akzeptiert werden, können derartige Eingaben zu unvorhersagbaren Ergebnissen führen.
- Fig. 1b veranschaulicht ein "Rechteck"-Fernsteuerverfahren. Bei einem "Rechteck"-Verfahren wird ein Rechteck 15 auf dem Host-Anzeigeschirm 13 definiert. Alles innerhalb des Rechtecks 15 kann von dem Client-Benutzer über ein entsprechendes Rechteck 16 auf dem Client-System gesehen werden und kann von dem Client-Benutzer gesteuert werden. Jedoch sind die Größe und Position des Rechtecks 15 willkürlich und unveränderlich, und irgendeine Bewegung oder Umdimensionierung einer Anwendung oder ein Pop-Up-Fenster innerhalb des Rechtecks 15 können zu unvorhersagbaren Ergebnissen führen.
- Das IBM Technical Disclosure Bulletin, Band 36, Nr. 6A, Juni 1993, Armonk, NY, USA, Seiten 407-410, ZP000372474, "Overlay Mechanism for Annotating Sharing and Remote Window- Control" beschreibt einen Mechanismus, der die meisten der Anforderungen für eine Personalkonferenz-Fernanwendungsunterstützung in einem Konzept erfüllen. Das beschriebene Konzept ermöglicht einem lokalen Benutzer, ein Anwendungsfenster, das gespiegelt werden soll, zu identifizieren. Die Aktivierung des Spiegels bewirkt, daß das Anwendungsfenster von einer zusätzlichen Umrandung mit einer Titelliste an der Oberseite und einer Reihe von Funktionsschaltflächen entlang der Seiten eingeschlossen wird. Dies reduziert die Anzahl der für das Anwendungsfenster verfügbaren Bildschirmpixel. Sämtliche Bildschirmdaten aus dem gespiegelten Fenster werden eingefangen und an die Benutzer, die sich das Fenster teilen, übermittelt, wobei diese exakt die gleichen Bildschirmdaten sehen. Der lokale Benutzer kann die Kontrolle über die gespiegelte Anwendung an einen fernen Benutzer weitergeben.
- Es ist ein Verfahren wünschenswert, das die Nachteile der oben beschriebenen Fernsteuerverfahren überwindet und welches darüber hinaus sowohl dem Host-Benutzer als auch dem Client-Benutzer gestattet, sich die Kontrolle des Host-Systems zu teilen und sich ausschließlich die Kontrolle einer oder mehreren Anwendungen, die der Host-Benutzer dafür ausgewählt hat, zu teilen.
- Die Erfindung schafft ein Verfahren, eine Einrichtung und ein System, wie es bzw. sie in den Ansprüchen 1, 3 bzw. 20 angegeben ist, für ein task-basiertes Teilen von Anwendungen in einer graphischen Benutzerschnittstelle, wie beispielsweise Windows®. Ein Benutzer, der als Host-Benutzer bezeichnet wird, kennzeichnet eine Anwendung als zu teilend, die als geteilte Anwendung bezeichnet wird. Ein anderer Benutzer an einem fernen Ort, der als Client-Benutzer bezeichnet wird, teilt sich die Kontrolle über die geteilte Anwendung. Die geteilte oder gemeinsam benutzte Anwendung wird nur auf dem Host-System ausgeführt.
- Das Client-System weist einen rechteckigen Bereich auf dem Anzeigebildschirm auf, in welchem sämtliche geteilten Anwendungen angezeigt werden. Darüber hinaus kann der Client-Benutzer die Fenster einer geteilten Anwendung sehen und steuert die geteilte Anwendung durch Ausführungen von Maus- und Tastaturbewegungen mit der Client-Tastatur und -Maus. Da die geteilte Anwendung auf dem Host-System abgearbeitet wird, werden sämtliche Client-Maus- und Tastatur-Bewegungen zunächst an das Host-System übermittelt und tatsächlich auf dem Host-System ausgeführt.
- Die Merkmale des task-basierten Anwendungsteilungsverfahrens gemäß der vorliegenden Erfindung umfassen Merkmale des Einschränkens des Anzeigetreibers, ein Geteilte-Fonts- Merkmal, ein Merkmal der Erfassung eines Abkömmlings einer geteilten Task, ein Merkmal des automatischen Umdimensionierens des ferngeteilten Rechtecks, ein Merkmal des Erfassens eines geteilten Bereichs, der durch ein nicht geteiltes Fenster bedeckt ist, ein Merkmal des automatischen Umdimensionierens eines ferngeteilten Rechtecks, ein Merkmal eines automatischen Scrollens eines ferngeteilten Rechtecks, ein Merkmal der Client-Maus/Tastaturbewegung-Übermittlung und ein Merkmal der Cursor-Anzeige auf der Client-Anzeigeeinrichtung.
- Bei dem task-basierten Verfahren des Teilens einer Anwendung gemäß der vorliegenden Erfindung werden Anzeigetreiberaufrufe auf dem Host-System abgefangen und die Identifikation der aktuellen ablaufenden Task überprüft. Wenn die gerade ablaufende Task Teil einer geteilten Anwendung ist, wird die Task, welche ein Anzeigetreiberaufruf ist, an das Client-System übermittelt. Darüber hinaus werden Operationen überwacht, und Änderungen in einem Fenster einer geteilten Anwendung werden an das Client-System als Anzeigeinformationen übermittelt. Die Anzeigeinformationen werden dann von dem Client-System benutzt, um irgendwelche Änderungen in dem Fenster, wie es auf dem Host-System angezeigt wird, zu reproduzieren.
- Zusätzlich ermöglicht das task-basierte Anwendungsverfahren des Client-Systems, ein Abbild sämtlicher Fenster einer geteilten Anwendung einschließlich Pop-Up-Dialogen und Menüs wiederzugeben, ohne auch nicht geteilte Anwendungen anzuzeigen. Ferner ermöglicht das Verfahren gemäß der vorliegenden Erfindung es dem Client-Host-Benutzer, mit der Ausführung normaler Operationen außerhalb des geteilten Rechteckbereichs fortzufahren, und ermöglicht es dem Host- Benutzer, diejenigen Tasks zu definieren, welche geteilt werden sollen.
- Im Unterschied zu bekannten Fernsteuerverfahren, welche entweder ein Abbild des gesamten Host-Bildschirms auf dem Client-Bildschirmanzeigegerät wiedergeben oder eine geteilte/gemeinsame rechteckige Fläche, welche nicht an die Bewegung oder Umdimensionierung eines geteilten Fensters angepaßt wird, ermöglicht das tast-basierte Anwendungsverfahren gemäß der vorliegenden Erfindung eine Flexibilität sowohl für den Host- als auch den Client-Benutzer.
- Die vorliegende Erfindung enthält weitere Merkmale und Vorteile, welche aus der nachfolgenden detaillierten Beschreibung, sofern sie in Verbindung mit dem beigefügten Zeichnungen gelesen wird, vollständiger klar werden.
- Fig. 1a und 1b veranschaulichen Computersysteme, die zwei beispielhafte bekannte Fernsteuerverfahren veranschaulichen.
- Fig. 2 veranschaulicht zwei Computersysteme, die das task-basierte Verfahren des Teilens einer Anwendung gemäß der vorliegenden Erfindung benutzen.
- Fig. 3 ist eine Blockdarstellung, die den Informationsfluß zwischen dem Host-System und dem Client-System, die in Fig. 2 veranschaulicht sind, veranschaulicht.
- Fig. 4a und 4b veranschaulichen das task-basierte Anwendungsteilungsverfahren gemäß der vorliegenden Erfindung.
- Fig. 5a und 5b veranschaulichen ein automatisches Umdimensionierungsmerkmal des task-basierten Anwendungsteilungsverfahrens gemäß der vorliegenden Erfindung.
- Fig. 6 veranschaulicht ein Merkmal des automatischen Erfassens und Teilens eines Abkömmlings geteilter Tasks gemäß der vorliegenden Erfindung.
- Fig. 7 veranschaulicht das Merkmal des automatischen Erfassens des Teilens eines Abkömmlings geteilter Tasks gemäß der vorliegenden Erfindung.
- Fig. 8 veranschaulicht das Merkmal des Erfassens verdeckter Abschnitte gemäß der vorliegenden Erfindung.
- Fig. 9a und 9b veranschaulichen das erfindungsgemäße Merkmal des Erfassens verdeckter Abschnitte.
- Fig. 10 veranschaulicht das Merkmal des Anzeigens des Host-Cursors und Client-Cursors auf der Client-Anzeigeeinrichtung gemäß der vorliegenden Erfindung.
- Fig. 11 veranschaulicht das erfindungsgemäße Merkmal des Anzeigens des Host-Cursors und Client-Cursors auf dem Client-Anzeigebildschirm.
- Fig. 12 veranschaulicht das erfindungsgemäße Merkmal des Wiedergebens geteilter Fonts durch den Anzeigetreiber.
- Fig. 13a bis 13d sind allgemeine Ablaufdiagramme, die das oben beschriebene erfindungsgemäße Merkmal des Wiedergebens geteilter Fonts durch den Anzeigetreiber veranschaulichen.
- Fig. 14 veranschaulicht ein allgemeines Ablaufdiagramm für das Merkmal des Einschränkens der Windows-Graphikanzeigeschnittstellenmerkmal der vorliegenden Erfindung.
- Fig. 15 ist ein allgemeines Ablaufdiagramm, das das erfindungsgemäße Merkmal des fernen Ziehens der Maus veranschaulicht.
- Fig. 16 ist ein allgemeines Ablaufdiagramm, das die Übermittlung einer Tastenbetätigungsinformation aus einem Client-System zu einem Host-System während eines task-basierten Anwendungsteilungsprozesses der vorliegenden Erfindung veranschaulicht.
- Fig. 17 ist ein allgemeines Ablaufdiagramm, das die Übermittlung von Mauspositionsinformationen aus einem Host- System zu einem Client-System während eines task-basierten Anwendungsteilungsprozesses der vorliegenden Erfindung veranschaulicht.
- Fig. 18 ist ein allgemeines Ablaufdiagramm, das die Übermittlung von Bewegungsinformationen der eingefangenen Maus aus einem Host-System an ein Client-System während eines task-basierten Anwendungsteilungsprozesses gemäß der vorliegenden Erfindung veranschaulicht.
- Fig. 19a bis 19d sind allgemeine Ablaufdiagramme, die die Übermittlung von Mausereignisinformationen aus einem Client-System an ein Host-System während eines task-basierten Anwendungsteilungsprozesses gemäß der vorliegenden Erfindung veranschaulichen.
- In der folgenden Beschreibung werden Einrichtungen und Verfahren für ein task-basiertes gemeinsames Benutzen (Teilen) von Anwendungen bei einer graphischen Benutzeroberfläche offenbart.
- Fig. 2 veranschaulicht das task-basierte Anwendungsteilungsverfahren gemäß der vorliegenden Erfindung. Bei dem task-basierten Anwendungsteilungsverfahren der vorliegenden Erfindung teilen sich sowohl der Host- als auch der Client- Benutzer die Kontrolle über das Host-System 14. Darüber hinaus teilen sich der Host- und der Client-Benutzer nur die Kontrolle einer oder mehrerer Anwendungen, welche der Host- Benutzer als zu teilend ausgewählt hat. Diese geteilten Anwendungen werden innerhalb des zugehörigen Geteilt-Rechtecks 16 auf dem Client-System 11 angezeigt.
- Die gemeinsame (geteilte) Anwendung läuft auf dem Host- System 14. Auf dem Anzeigebildschirm 12 des Client-Systems 11 erscheint ein Duplikatabbild dessen, was auf dem Anzeigebildschirm 13 des Host-Systems 14 angezeigt wird. Sämtliche Client-Maus- und -Tastatur-Bewegungen der gemeinsamen Anwendungen werden auf dem Host-System 14 ausgeführt, auf welchem die gemeinsame oder geteilte Anwendung tatsächlich abläuft.
- Fig. 3 ist eine Blockdarstellung, die den Fluß der Informationen aus dem Host-System 100 zu dem Client-System 200 veranschaulicht. Eine CPU 109 steuert Anwendungen auf dem Host-System 100. Eine CPU 206 steuert Anwendungen auf dem Client-System 200. Bei dem Host-System 100 bildet eine normale Windows®-Anwendung 101, wie beispielsweise Word®, eine Schnittstelle zu einer graphischen Geräteschnittstelle (GDI- graphical device interace) 102, welche eine Software ist, die Zeichenfähigkeiten zur Verfügung stellt, einschließlich der Zeichenfähigkeiten für das Windows®-System 105. Die Windows®-Anwendung 101 bildet ebenfalls eine Schnittstelle zu dem Benutzer 103. Der hier benutzte Begriff des Benutzers bezieht sich nicht auf den menschlichen Bediener eines PCs, sondern ist ein Begriff von Windows® für einen Teil der Software des Windows®-Systems 105.
- Wenn die Windows®-Anwendung 101 die graphische Geräteschnittstelle 102 aufruft, um ein Zeichnungen auszuführen, ruft die graphische Geräteschnittstelle 102 den Anzeigetreiber 104 auf. Ferner führt der Anzeigetreiber 104 die angeforderten Zeichnungen auf der Anzeigeeinrichtung 106 des Host-Systems 100 aus.
- So erfaßt die Sensoranwendung 107, wenn die graphische Geräteschnittstelle 102 einen Aufruf an den Anzeigetreiber 104 macht. An jedem Punkt, an dem die graphische Geräteschnittstelle 102 einen Aufruf an den Anzeigetreiber 104 macht, fügt die Sensoranwendung 107 einen Sprungbefehl aus dem Gerätetreiber 104 zur Sensoranwendung 107 ein. Sämtliche Informationen, die für einen gegebenen Gerätetreiber erforderlich sind, um die angeforderten Linienzeichnungen und/oder Textzeichnungen auszuführen, werden (gelesen) wiedergewonnen und von der Sensoranwendung zur Verwendung in dem Anwendungsteilungsprozeß zwischen dem Client-System 200 und dem Host-System 100 gesichert.
- Beim Wiedergewinnen und Sichern der erforderlichen Informationen, die es einem gegebenen Anzeigetreiber ermöglichen, die angeforderten Zeichnungen auf einer Anzeigeeinrichtung auszuführen, ruft die Sensoranwendung den Anzeigetreiber 104 auf. Der Anzeigetreiber 104 führt dann tatsächlich die angeforderten Linienzeichnungen und/oder Textzeichnungen auf der Anzeigeeinrichtung 106 des Host-Systems 100 aus. Die Sensoranwendung 107 formatiert dann ein Kommunikationspaket auf der Grundlage der Anzeigeinformationen, die bezüglich der angeforderten Zeichnungen aus der graphischen Geräteschnittstelle 102 gewonnen wurden, und übermittelt das Kommunikationspaket über das Konferenzkommunikationssystem 108, welches das Kommunikationspaket zu dem Konferenzkommunikationssystem 201 des Client-Systems 200 übermittelt.
- Das Kommunikationspaket wird von einer Holodeck-Anwendung 202 des Client-System 200 empfangen, welche die graphische Geräteschnittstelle 203 aufruft. Die graphische Geräteschnittstelle 203 wiederum ruft den Anzeigetreiber 204 auf. Der Anzeigetreiber 204 führt Zeichnungen auf der Anzeigeeinrichtung 205 des Client-Systems 200 so aus, wie sie in dem Kommunikationspaket, das von der Sensoranwendung 107 des Host-Systems 100 übermittelt worden ist, angezeigt sind.
- Fig. 4a und 4b veranschaulichen ein allgemeines Ablaufdiagramm für das task-basierte Anwendungsteilungsverfahren der vorliegenden Erfindung. Dieses allgemeine Ablaufdiagramm wird unter Bezugnahme auf die Komponenten gemäß Fig. 3 beschrieben.
- Fig. 4a veranschaulicht die host-seitige Aktivität. Im Block 301 bildet die Windows®-Anwendung 101 eine Schnittstelle zu der graphischen Windows®-Geräteschnittstelle 102. Im Block 302 gewinnt die Sensoranwendung 107 an jedem Punkt, an dem die graphische Geräteschnittstelle 102 von Windows® ein Aufruf zum Anzeigetreiber 104 macht, sämtliche Informationen, die für einen Anzeigetreiber zum Ausführen der angeforderten Zeichnungen erforderlich sind.
- Im Block 303 ruft die Sensoranwendung 107 den Anzeigetreiber 104 auf. Im Block 304 erzeugt der Anzeigetreiber 104 die lokale Anzeige über die Anzeigeeinrichtung 106. Im Block 305 bestimmt die Sensoranwendung 107, ob die aktuelle Task Teil einer geteilten Anwendung ist. Wenn die gerade ausgeführte aktuelle Task nicht Teil der geteilten Anwendung ist, dann fährt im Block 300 die Sensoranwendung 107 damit fort, die graphische Geräteschnittstelle 102 hinsichtlich jedes Aufrufs, den die graphische Geräteschnittstelle 102 an den Anzeigetreiber 104 macht, zu überwachen.
- Wenn die ausgeführte aktuelle Task Teil der geteilten oder gemeinsamen Anwendung ist, dann baut im Block 306 die Sensoranwendung 107 ein Kommunikationspaket für die spezielle Anzeigeoperation, die von dem Host-System 100 durchgeführt wird, auf. Im Block 307 wird dieses Kommunikationspaket zu dem Client-System 200 übermittelt und von der Holodeck-Anwendung 202 des Client-Systems 200 akzeptiert.
- Fig. 4b veranschaulicht die client-seitige Aktivität des Anwendungsteilungsverfahrens gemäß der vorliegenden Erfindung. Im Block 308 konstruiert die Holodeck-Anwendung 202 aus dem Kommunikationspaket, das von dem Host-System 100 übermittelt wurde, einen Windows®-Aufruf. Der Windows®-Aufruf wird verwendet, um die Aktivität der geteilten Task, die auf dem Host-System 100 ausgeführt wird, anzuzeigen.
- Wenn im Block 309 die auszuführende Anzeige-Task nicht von der graphischen Geräteschnittstelle 203 durchgeführt werden kann, dann wird der Anzeigetreiber 204 im Block 310 aufgerufen, um den Windows®-Aufruf in eine Bitmap wiederzugeben. Dann ruft im Block 311 die Holodeck-Anwendung die graphische Geräteschnittstelle 203 auf, damit diese das Anzeigetreiberergebnis zur Anzeigeeinrichtung 205 bit-blockweise überträgt (bitblt). Bitblt (bit block transfer) bezeichnet das Kopieren des Abschnitts von Bits von einem Ort zu einem anderen.
- Es wird wieder auf Block 309 Bezug genommen; wenn die graphische Geräteschnittstelle 203 des Client-Systems 200 in der Lage ist, die angeforderte und in dem von dem Host-System 100 gesendeten Kommunikationspaket angezeigte Operation auszuführen, ruft die graphische Geräteschnittstelle 203 den Anzeigetreiber 204 auf. Im Block 312 führt der Anzeigetreiber 204 die in dem Windows®-Aufruf, der im Block 308 konstruiert worden ist, angezeigte Operation durch. Die auf dem Host-System 200 ausgeführte Windows®-Operation wird somit auf dem Client-System 100 angezeigt.
- Fig. 5 bis 15 veranschaulichen verschiedene Merkmale des task-basierten Anwendungsteilungsverfahrens gemäß der vorliegenden Erfindung.
- Fig. 5a und 5b veranschaulichen das automatische Umdimensionierungsmerkmal des task-basierten Anwendungsteilungsverfahrens gemäß der vorliegenden Erfindung. Dieses Merkmal ermöglicht die automatische Umdimensionierung des fern gemeinsam benutzten (geteilten) Rechtecks zu aktuellen Anwendungsausdehnungen. Sämtliche geteilten Anwendungen werden innerhalb des fern geteilten Rechtecks auf dem Client- System angezeigt. Immer dann, wenn Fenster in dem Host-System manipuliert werden, wird die aktuelle Liste der Fenster in dem System, die zu den geteilten Tasks gehören, überprüft. Die so gewonnenen Daten werden benutzt, um die Größe des fern geteilten Rechtecks auf dem Client-System zu aktualisieren. Somit wird immer dann, wenn eine geteilte Anwendung umdimensioniert oder minimiert wird oder wenn ein Pop- up auf dem Host-System erscheint, die Größe des fern geteilten Rechtecks des Client-Systems ebenso aktualisiert.
- Im Block 320 gemäß Fig. 5a wird immer dann, wenn eine Fensteränderung auf dem Host-System erfaßt wird, das automatische Umdimensionierungsmerkmal der vorliegenden Erfindung initiiert. Im Block 321 wird eine Fensterverzeichnisprozedur, welche die Anzahl der geteilten Fenster verfolgt, initialisiert. Im Block 322 überprüft die Fensterverzeichnisprozedur das Host-System, um zu bestimmen, ob sämtliche Fenster auf dem Host-System verzeichnet worden sind. Im Block 323 wird jedes Fenster überprüft, ob es zu einer geteilten Anwendung gehört. Jedes Fenster, welches zu einer geteilten Anwendung gehört, wird zu der Liste geteilter Fenster hinzugefügt, welche eine Liste sämtlicher geteilter Fenster, die zu den geteilten Tasks gehören, ist.
- Wenn es keine weiteren Fenster auf dem Host-System gibt und somit die Liste geteilter Fenster aktuell und aktualisiert ist, wird dann im Block 325 ein Kommunikationspaket, das sämtliche geteilten Fenster beschreibt, aus der Liste geteilter Fenster erzeugt. Das Kommunikationspaket enthält die aktualisierte Fenstergröße für jedes geteilte Fenster. Im Block 326 wird das Kommunikationspaket dann zu dem Client-System gesendet.
- Die Holodeck-Anwendung des Client-Systems empfängt das Kommunikationspaket, und eine app/snap-Routine, welche die Umdimensionierung des Geteilt-Rechtecks des Client-Systems ausführt, wird im Block 327 gemäß Fig. 5b initiiert. Ferner wird eine Geteilt-Rechteck-Variable auf Null gesetzt.
- Im Block 328 wird das aus der Liste der geteilten Fenster erzeugte, von dem Host-System übermittelte Kommunikationspaket überprüft. In den Blöcken 329 und 330 wird ein neues fern geteiltes Rechteck für jedes in dem Kommunikationspaket aufgelistete geteilte Fenster berechnet. Das neue fern geteilte Rechteck wird so berechnet, daß es sämtliche geteilten Fenster einschließt.
- Sobald sämtliche zusätzlichen geteilten Fenster in dem Kommunikationspaket überprüft worden sind und ein entsprechendes neues fern geteiltes Rechteck berechnet ist, wird das neue fern geteilte Rechteck im Block 331 überprüft und mit der Größe des alten fern geteilten Rechtecks verglichen. Sofern das neue fern geteilte Rechteck eine Größe hat, die gleich der des alten fern geteilten Rechtecks ist, dann erfordert das aktuelle ferngeteilte Rechteck auf dem Client- System keinerlei Umdimensionierung. Der Zustand tritt dann in den Block 335 ein und das automatische Umdimensionierungsmerkmal der vorliegenden Erfindung schließt seine Phase ab. Wenn anderenfalls das neue fern geteilte Rechteck eine Größe hat, die nicht gleich der des alten fern geteilten Rechtecks ist, dann wird im Block 336 das alte fern geteilte Rechteck so umdimensioniert, daß es der Größe des neuen fern geteilten Rechtecks entspricht, und das automatische Umdimensionieren der vorliegenden Erfindung schließt seine Phase ab.
- Fig. 6 veranschaulicht das Merkmal der automatischen Erfassung und des Teilens von Abkömmlingen (children) geteilter Tasks gemäß der vorliegenden Erfindung. Einige Windows®-Anwendungen können weitere Anwendungen starten. Beispielsweise ist der Programm-Manager eine Windows®-Anwendung mit dem primären Zweck des Startens anderer Anwendungen. Eine Windows®-Anwendung, die eine Windows®-Hilfe-Anwendung auswählt, ist ein weiteres Beispiel einer andere Anwendungen startenden Windows®-Anwendung.
- Das erfindungsgemäße Merkmal des automatischen Erfassens und Teilens von Abkömmlingen geteilter Tasks gestattet die Erfassung einer beliebigen Anwendung, die durch eine geteilte Windows®-Anwendung gestartet worden ist. Jedesmal dann, wenn eine neue Task in das Host-System eingeführt wird, wird deren Eltern-Task, welche diejenige Task ist, die die neue Task startete, überprüft. Sofern die Eltern-Task geteilt ist, dann wird die neue Task, welche als der Abkömmling der Eltern-Task bezeichnet wird, als geteilt markiert. Jegliche Anwendungen, die auf dem Host-System ablaufen und welche als geteilt markiert sind, werden auf dem Client-System in der zuvor in den Beschreibungen der Fig. 4a und 4b beschriebenen Weise angezeigt. Wenn somit eine Windows®- Anwendung, wie beispielsweise Word® geteilt ist, und die Hilfe aus der geteilten Word®-Anwendung auf dem Host-System ausgewählt wird, ist der Client-Benutzer in der Lage, die Hilfe ebenfalls auf seinem Anzeigebildschirm des Client-Systems zu sehen.
- Fig. 6 veranschaulicht, wie das Anwendungsteilungsverfahren der vorliegenden Erfindung erfaßt, welchen neuen, auf dem Host-System ablaufenden Tasks/Anwendungen geteilt sind.
- Im Block 340 des allgemeinen Ablaufdiagramms gemäß Fig. 6 überwacht die Sensoranwendung 107 das Windows®-System 105, um zu bestimmen, ob es irgendeine neu erzeugte Task gibt. Wenn es eine neu erzeugte Task gibt, dann überprüft die Sensoranwendung im Block 341 die Task, um zu bestimmen, ob die Task ein Abkömmling irgendeiner geteilten Task ist. Im Block 342 wird die neue Task dann, wenn die neu erzeugte Task ein Abkömmling einer geteilten Task ist, zu der Liste geteilter Tasks hinzugefügt. Im Block 343 schließt das Merkmal des automatischen Erfassens und Teilens der Abkömmlinge geteilter Tasks seiner Phase ab.
- Es wird wieder auf Block 341 Bezug genommen; wenn die neue Task kein Abkömmling irgendeiner geteilten Task ist, dann wird im Block 344 die neue Task überprüft, um zu bestimmen, ob die neue Task eine Eltern-Task aufweist. Sofern die neu erzeugte Task keine Eltern-Task aufweist, dann schließt das Merkmal des automatischen Erfassens des Teilens eines Abkömmlings geteilter Tasks gemäß der vorliegenden Erfindung seine Phase ab; anderenfalls wird die Eltern-Task der neu erzeugten Task im Block 345 überprüft. Wenn die Eltern-Task der neu erzeugten Task ein Abkömmling der geteilten Task ist, dann werden die Eltern-Task und die neu erzeugte Task zu der Liste geteilter Tasks hinzugefügt. Anderenfalls wird die Schleife von den Blöcken 341 zu 345 wiederholt, bis entweder die überprüfte Task ein Abkömmling einer geteilten Task ist und somit zu der Liste geteilter Tasks hinzugefügt wird oder bis sie kein Kind einer geteilten Task ist und keine Eltern-Task aufweist. Wenn die überprüfte Task kein. Kind einer geteilten Task ist und keine Eltern-Task aufweist, dann gibt es keine zu der Liste geteilter Tasks hinzuzufügende neu erzeugte Tasks mehr.
- In Fig. 7 zeigt der Host-PC 14 eine geteilte Task Anwendung 1 (app1) und eine Hilfe-Anwendung 1 (Hilfe1) an, welche durch die Anwendung 1 gestartet wird. Die Anwendungen 2 und 3 (app2 und 3) auf dem Host-System sind Anwendungen, welche nicht geteilt sind. Mit dem Merkmal der automatischen Erfassung des Teilens von Abkömmlingen geteilter Tasks wird eine neu erzeugte Task, die von einer geteilten Task gestartet wird, nämlich Hilfe 1, die durch die Anwendung 1 erzeugt wird, ebenfalls auf dem fern geteilten Rechteck auf dem Anzeigeschirm des Client-Systems 11 angezeigt. Obwohl die neu erzeugte geteilte Task nicht geteilte Tasks Anwendungen 2 und 3 auf dem Host-System 14 überlappt, zeigt zusätzlich das fern geteilte Rechteck nur die geteilte Task Anwendung 1 und die neu erzeugte geteilte Task Hilfe 1 an.
- Fig. 8 veranschaulicht das erfindungsgemäße Merkmal der Erfassung verdeckter Abschnitte. Auf dem Host-System 14 wird eine geteilte Task Anwendung 1 (app1) partiell von einer nicht geteilten Task Anwendung 3 (app3) bedeckt. Die untere rechte Ecke der Anwendung 1, die von der nicht geteilten Task Anwendung 3 überdeckt wird, könnte Daten enthalten. Darüber hinaus aktualisiert Windows® überdeckte Bereiche auf dem Bildschirm nicht und Daten unter verdeckten Bereichen können demzufolge veraltet sein.
- Das erfindungsgemäße Merkmal der Erfassung verdeckter Abschnitte an geteilten Tasks zeichnet eine transparente Schraffur über den möglicherweise veralteten Bereich der geteilten Task auf dem Anzeigeschirm des Client-Systems 11. Da dieser schraffierte Bereich transparent ist, ist der Client- Benutzer noch in der Lage, die in diesem schraffierten Bereich angeordneten Daten zu lesen. Wenn die Anwendung 1 oder die Anwendung 3 bewegt wird oder wenn die Anwendung 1 auf dem Anzeigebildschirm des Host-Systems 14 nach vorn gebracht wird, wird die Schraffur auf dem Client-System 11 entfernt und die zuvor schraffierten Daten werden aktualisiert.
- Fig. 9a ist ein allgemeines Ablaufdiagramm, das die host-seitige Aktivität des erfindungsgemäßen Merkmals der Erfassung verdeckter Abschnitte veranschaulicht. Im Block 350 wird dann, wenn es eine Änderung in der Anzahl oder den Positionen der Fenster auf dem Host-System gibt, das erfindungsgemäße Merkmal der Erfassung eines verdeckten Abschnitts geteilter Tasks initiiert. Im Block 351 wird eine Fensterverzeichnisprozedur initialisiert, welche mit dem Auflisten der Fenster auf einer Anzeigeeinrichtung des Host- Systems von der Oberfläche der Anzeigeeinrichtung bis zum Hintergrund der Anzeigeeinrichtung beginnt. Zusätzlich werden Informationen über jedes Fenster, wie beispielsweise die Fenstergröße und -position gesammelt. Im Block 352 wird dann, wenn noch nicht sämtliche Fenster verarbeitet worden sind, das neue Fenster zu einer Fensterliste im Block 354 hinzugefügt. Im Block 355 wird das neue Fenster dahingehend überprüft, ob es zu einer geteilten Task gehört. Wenn das neue Fenster nicht zu einer geteilten Task gehört, dann wird im Block 356 das neue Fenster in der Fensterliste als ungeteilt markiert.
- Im Block 357 wird das nächste Fenster auf der Anzeige gelesen und überprüft. Kehren wir zum Block 355 zurück; wenn das neue Fenster zu einer geteilten Task gehört, dann wird das Fenster in der Liste im Block 359 als geteilt markiert, und im Block 357 das nächste dahinterliegende Fenster auf der Anzeige zur Überprüfung gelesen bzw. wiedergewonnen (retrieved). Zurück zum Block 352; wenn sämtliche Fenster verarbeitet worden sind, dann wird im Block 360 ein die in den Blöcken 354 bis 359 erzeugte Fensterliste enthaltendes Kommunikationspaket zu dem Client-System im Block 361 gesendet.
- Fig. 9b veranschaulicht die client-seitige Aktivität des erfindungsgemäßen Merkmals der Erfassung verdeckter Abschnitte. Sobald das Kommunikationspaket an das Client-System übermittelt und von diesem empfangen worden ist, wird eine Zensor-Routine im Block 362 initialisiert und ein geteilter Bereich des geteilten Rechtecks und ein verdeckter Bereich des geteilten Rechtecks wird auf leer gesetzt. "Bereiche" sind willkürlich geformte Flächen. Im Block 363 wird das letzte Fenster in dem Kommunikationspaket, welches das am weitesten unten bzw. hinten liegende Fenster auf der Host-Anzeige ist, überprüft. Im Block 365 wird das Fenster überprüft, um nachzusehen, ob es zu einer geteilten Task gehört. Wenn das Fenster nicht zu einer geteilten Task gehört, dann werden im Block 367 das verdeckte Gebiet und das Fenstergebiet ODER-verknüpft (addiert). Dann wird im Block 367 das nächsthöhere Fenster auf der Liste des Kommunikationspakets im Block 364 zur Überprüfung gewonnen bzw. gelesen.
- Wenn im Block 365 das Fenster in dem Kommunikationspaket, das überprüft wird, zu einer geteilten Task gehört, dann wird im Block 370 der Fensterbereich zu dem geteilten Bereich hinzugefügt. Dann wird im Block 371 der Fensterbereich von dem verdeckten Bereich subtrahiert. Schließlich wird im Block 367 das nächsthöhere (-vordere) Fenster, das in dem Kommunikationspaket gelistet ist, überprüft, und der oben beschriebene Prozeß zwischen den Blöcken 364 und 371 wird wiederholt, bis es keine weiteren Fenster in dem Kommunikationspaket gibt. Im Block 368 wird, nachdem sämtliche Fenster in dem Paket überprüft worden sind, ein "Zensorbereich" erzeugt, indem der geteilte Bereich mit dem verdeckten Bereich geschnitten wird. Dann wird im Block 369 die Graphikgeräteschnittstelle von der Zensor-Routine der Holodeck-Anwendung aufgerufen, um den Zensorbereich auf der Anzeigeeinrichtung des Client-Systems zu zeichnen.
- Fig. 10 veranschaulicht das erfindungsgemäße Merkmal der Host-Cursor- und Client-Cursor-Anzeigen auf der Client- Anzeigeeinrichtung. Auf dem Host-System 14 zeigt die geteilte oder gemeinsame Anwendung Anwendung 1 (app 1) den Host-Cursor in weiß. Bei dem Client-System 11 zeigt genau dieselbe geteilte Anwendung, Anwendung 1 (app 1), die in dem geteilten Rechteck 16 angezeigt wird, den Host-Cursor in schwarz. Darüber hinaus wird der Client-Cursor in der Client-Anwendung 4 (client app 4) in weiß angezeigt.
- Ein Client-Benutzer kann seinen eigenen weißen Cursor außerhalb des geteilten Rechtecks 16 benutzen, während der Host-Benutzer seinen Cursor manipuliert, wie er in schwarz auf dem geteilten Rechteck 16 auf dem Anzeigebildschirm des Client-Systems 11 angezeigt wird. Wenn der Client-Cursor in das geteilte Rechteck 16 bewegt wird, verschmelzen der schwarze Host-Cursor und der weiße Client-Cursor, und es wird ein weißer Cursor angezeigt. An diesem Punkt teilen sich sowohl der Host-Benutzer als auch der Client-Benutzer die Kontrolle über den Cursor innerhalb des geteilten Rechtecks 16.
- Fig. 11 ist ein allgemeines Ablaufdiagramm, das das erfindungsgemäße Merkmal des Host-Cursors und des Client-Cursors, die auf dem Client-Anzeigebildschirm angezeigt werden, beschreibt. Im Block 600 überwacht die Sensoranwendung des Host-Systems die Cursorbewegungen der Host-System-Windows®- Anwendung. Im Block 601 sendet die Sensoranwendung immer dann, wenn der Cursor (die Maus) bewegt wird, die Bewegungsinformationen zu dem Client-System. Wenn der Cursor des Clients sich gegenwärtig außerhalb des geteilten Rechteck- Fensters befindet, zeichnet dann im Block 602 die Holodeck- Anwendung des Client-Systems ein Abbild des Host-Cursors in dem geteilten Rechteck auf der Client-System-Anzeigeeinrichtung. Somit gibt es zwei Cursor auf dem Anzeigebildschirm des Client-Systems. Um die zwei Cursor voneinander zu unterscheiden, ist der Host-Cursor, der in dem geteilten Rechteck auf der Anzeigeeinrichtung des Client-Systems angezeigt wird, in schwarz und der Cursor des Client-Systems, welcher sich außerhalb des geteilten Rechteckfensters befindet, bleibt in seiner normalen Farbe, welche typischerweise weiß ist. Wenn der Client-System-Cursor, welcher sich außerhalb des geteilten Rechteckfensters befindet, sich in das geteilte Rechteckfenster hineinbewegt, werden im Block 603 der Host-System-Ferncursor in dem geteilten Rechteckfenster und der Client-System-Cursor, die sich beide auf der Anzeigeeinrichtung des Client-Systems befinden, miteinander verschmolzen, um einen einzigen Cursor zu bilden, der auf dem Anzeigebildschirm des Client-Systems angezeigt wird. Dieser einzige Cursor ist in der normalen Cursor-Farbe weiß.
- Fig. 12 veranschaulicht das erfindungsgemäße Merkmal der Anzeigetreiberwiedergabe geteilter Fonts. In einer Windows®-Anwendungsumgebung kann ein Benutzer Fonts in Übereinstimmung mit einem beschreibenden Namen, einer Punktgröße, einem Gewicht etc. auswählen. Windows® wählt einen Fonttyp aus, welcher am besten mit dem angeforderten Fonttyp übereinstimmt. Ein Benutzer einer Windows®-Anwendung kann einen beliebigen Font nach seiner Wahl installieren, und somit können verschiedene Benutzer verschiedene Fontressourcen haben. Es seien zwei verschiedene PCs gegeben und somit gegebenenfalls zwei verschiedene Auswahlen von Fonts. Ein Client-System 11 kann einen Text in anderen Fonts als die eines Host-Systems 14 anzeigen. Darüber hinaus könnte eine Liste von Zeichen auf dem Client-System 11 nicht mit der Liste der Zeichen und dem entsprechenden Fonttyp in dem Host- System 14 übereinstimmen. Zusätzlich kann es sein, daß dann, wenn der Host-Benutzer den Cursor auf dem Host-System 14 bewegt, der Cursor auf dem Client-System infolge der verschiedenen Fonttypen erscheint nicht in derselben Position wie der Cursor des Host-Systems 14. Normalerweise liest die graphische Geräteschnittstelle und die Windows®-Anwendung entweder den ausgewählten Fonttyp oder denjenigen Fonttyp, der unter seinen Font-Ressourcen-Dateien auf seiner Platte am besten übereinstimmt, und speist ihn seinem Anzeigetreiber ein. Um dieses Problem zu lösen, werden die aus dem Host-System 14 gewonnenen Fontinformationen komprimiert und direkt an den Anzeigetreiber des Client-Systems 11 übermittelt, wobei die graphische Geräteschnittstelle des Client-Systems 11 umgangen wird. Der Client-PC 11 ist dann in der Lage, den Font so anzuzeigen, wie er auf dem Host-System 14 ausgewählt worden ist, ohne daß er den ausgewählten Fonttyp in seinen Font-Ressourcen-Dateien auf seiner Platte haben muß.
- Fig. 13a bis 13d sind allgemeine Ablaufdiagramme, die das oben beschriebene erfindungsgemäße Merkmal der Anzeigetreiberwiedergabe geteilter Fonts veranschaulichen. Fig. 13a und 13b veranschaulichen die Host-System-seitigen Aktivitäten. Im Block 380 wird ein Textzeichen mit einem ausgewählten Font auf einer geteilten Anwendung initiiert. Im Block 381 wird eine interne Tabelle, die Informationen bezüglich sämtlicher Anzeigetreiberfähigkeiten enthält, so modifiziert, daß sie anzeigt, daß der Anzeigetreiber nur den erforderlichen Satz minimaler Funktionen aufweist und keine optionalen Funktionen. Im Block 382 ruft die Sensoranwendung des Host-Systems den Anzeigetreiber auf, um die lokale Anzeige zu erzeugen. Im Block 383 wird dann, wenn Zeichenmodusinformationen nicht cache-gespeichert worden sind, ein die Zeichenmodusinformationen enthaltendes Kommunikationspaket erzeugt. Im Block 384 wird dieses Kommunikationspaket, das die Zeichenmodusinformationen enthält, zu dem Client-System übermittelt. Im Block 385 wird dann, wenn textXform-Informationen nicht cache-gespeichert worden sind, ein die textXform-Informationen enthaltendes Kommunikationspaket erzeugt. Im Block 388 wird das textXform-Kommunikationspaket an das Client-System gesendet.
- Im Block 340 wird der ausgewählte Font dahingehend überprüft, ob er ein neuer Font ist, der sich nicht in dem Font- Cache des Host- und Client-Systems befindet. Im Block 341 wird dann, wenn der ausgewählte Font tatsächlich ein neuer Font ist, ein Kommunikationspaket, das die neuen Fontinformationen und die aktuelle Größe des Fonts enthält, erzeugt. Im Block 342 wird das die Fontinformationen und die aktuelle Größe des Fonts enthaltende Kommunikationspaket an das Client-System gesendet.
- Im Block 343 wird jedes Zeichen in der Zeichenkette überprüft, um nachzusehen, ob es zuvor an das Client-System übermittelt worden ist. Einige Fonts werden inkremental erzeugt, wenn neue Zeichen von der Anwendung verwendet werden. In einem solchen Fall reicht es aus, daß nur diese neuen Zeichen übertragen werden, um Zeit zu sparen. Wenn im Block 345 sämtliche Zeichen in der Zeichenkette, die gerade gesendet wird, zuvor übermittelt worden sind, dann wird im Block 346 ein Kommunikationspaket für eine Textausgabeoperation formatiert. Im Block 347 wird ein die Textausgabeinformation enthaltendes Kommunikationspaket an das Client-System gesendet.
- Wenn es im Block 345 irgendein Zeichen in der an das Client-System zu sendenden Zeichenkette gibt, das noch nicht zuvor an das Client-System gesendet worden ist, dann wird im Block 350 ein Leer-Font-Glyphen-Kommunikationspaket initialisiert. Im Block 351 werden für jedes Zeichen, das zuvor noch nicht an das Client-System übermittelt worden ist, die Rasterglypheninformationen des Zeichens zu dem Font-Glyphen- Kommunikationspaket in einem Metafontformat gemäß der vorliegenden Erfindung hinzugefügt. Im Block 352 werden für jedes Zeichen, das noch nicht an das Client-System gesendet worden ist, die Glyphenbits des Zeichens in das Font- Glyphen-Kommunikationspaket kopiert. Im Block 353 wird dann das Font-Glyphen-Kommunikationspaket an das Client-System gesendet.
- Fig. 13c und 13d sind allgemeine Ablaufdiagramme, die die Client-System-Seite des Prozesses veranschaulichen, der in dem erfindungsgemäßen Merkmal der Anzeigetreiberwiedergabe der geteilten Fonts enthalten ist. Im Block 400 empfängt die Holodeck-Anwendung auf der Client-Seite das die Zeichenmodusinformationen enthaltende Kommunikationspaket und speichert die Zeichenmodusinformationen in seinem Cache.
- Im Block 401 empfängt die Holodeck-Anwendung der Client- Seite ein die textXform-Informationen enthaltendes Kommunikationspaket und speichert die textXform-Informationen in seinem Cache. Im Block 402 empfängt die Holodeck-Anwendung der Client-Seite das von dem Host-System gesendete, die Fontinformationen und die aktuelle Größe des Fonts des Texts enthaltende Kommunikationspaket. Dann weist die Holodeck-Anwendung der Clientseite einen Speicherblock zum Speichern der Font- und Glyphen-Informationen zu, die aus dem Host-System übermittelt worden sind. Im Block 403 wird dann eine Kopie der Font-Informationen aus dem Kommunikationspaket in dem in dem Client-System von der Holodeck-Anwendung zugewiesenen Speicherraum gespeichert.
- Im Block 404 wird der Glyphenzeiger für die Font-Informationen so eingestellt, daß er auf den neuen Client-Speicherplatz zeigt, bei dem die Font-Informationen gespeichert sind. Zusätzlich werden im Block 405 ein Glyphen-Offset, Gerätenamen-Offset, ein Typennamen-Offset für eine Metafontsübersetzung auf den neuen Client-Speicherplatz eingestellt, wo die Font-Informationen gespeichert sind. Ferner werden irgendwelche nicht dokumentierten Font-Informationen im Block 406 eingestellt.
- Im Block 410 gemäß Fig. 13d wird das die Font-Glyphen- Informationen enthaltende, aus dem Host-System übermittelte Kommunikationspaket von der Holodeck-Anwendung des Client- Systems empfangen. Im Block 411 werden für jedes Zeichen in dem Kommunikationspaket die Rasterglypheninformationen des Zeichens zu der Kopie der Font-Informationen des Client-Systems hinzugefügt, und Offsets für Metafontübersetzungen werden eingestellt. Zusätzlich werden im Block 412 die Glyphenbits des Zeichens in die Kopie der Font-Informationen des Client-Systems kopiert und die Glyphenbits-Position wird zur Übersetzung eingestellt. Der Prozeß vom Block 410 bis zum Block 412 wird wiederholt, bis sämtliche Zeichen in dem Kommunikationspaket verarbeitet sind.
- Im Block 421 wird ein Aufruf an den Anzeigetreiber zum Reproduzieren des auf der Host-Maschine angezeigten Textes auf der Client-Maschine konstruiert. Der auf der Client-Maschine anzuzeigende Text wird aus den gespeicherten Zeichenmodus-, TextXform-, Font-Informationen und Textausgabeinformationen, die in den entsprechenden Kommunikationspaketen, wie sie von dem Host-System übermittelt worden sind, enthalten sind, konstruiert.
- Wenn im Block 422 das Texthintergrundrechteck gefüllt werden muß und gemäß Block 423 der Client-System-Anzeigetreiber in der Lage ist, das Texthintergrundrechteck zu füllen und gleichzeitig den Text zu zeichnen, dann wird im Block 424 der Anzeigetreiber aufgerufen, um den Text wiederzugeben und das Texthintergrundrechteck in eine Bitmap zu füllen.
- Anderenfalls wird im Block 425 der Anzeigetreiber aufgerufen, nur das gefüllte Rechteck in eine Bitmap zu füllen. Im Block 426 wird der Anzeigetreiber aufgerufen, um nur den Text in dieselbe Bitmap wiederzugeben. Im Block 427 werden die begrenzenden Rechteckmaße für diese Textausgabeoperation berechnet. Im Block 428 wird die graphische Geräteschnittstelle von Windows® des Client-Systems aufgerufen, um den von dem Rechteck begrenzten Bereich aus der Bitmap zu der Anzeigeeinrichtung bit-blockweise wiederzugeben (bitblt). Die graphische Geräteschnittstelle ruft dann den Anzeigetreiber auf, um tatsächlich die Bits zu der Anzeige zu kopieren, welche den von dem Host-System übermittelten Text zeigt.
- Fig. 14 veranschaulicht ein allgemeines Ablaufdiagramm für das erfindungsgemäße Merkmal des Einschränkens des Windows-Graphik-Anzeigeschnittstelle. Gerätetreiber unterstützen sowohl einen geforderten Satz der Funktionalität als auch einen Satz einer optionalen Funktionalität. Die Art und die Anzahl der von einem Anzeigetreiber unterstützten optionalen Funktionen variiert von Anzeigetreiber zu Anzeigetreiber. Anzeigetreiber unterstützen optionale Funktionen, um Zeichenoperationen zu beschleunigen. Immer dann, wenn ein Anzeigetreiber eine optionale Funktion nicht unterstützt, ist die graphische Windows®-Geräteschnittstelle in der Lage, die von dem Anzeigetreiber nicht unterstützte optionale Funktion unter Verwendung der erforderlichen Funktionen des Anzeigetreibers zu simulieren.
- Das Ermöglichen einer Textzeichenoperation über einen Anzeigetreiber kann zu verschiedenen Texten führen, wenn der Anzeigetreiber des Client-Systems und der Anzeigetreiber des Host-Systems sich in der Art der optionalen Funktionalität, die sie jeweils unterstützen, unterscheiden. Nimmt man beispielsweise einen Host-Anzeigetreiber, welcher in der Lage ist, eine Fett-Text-Funktionalität zu unterstützen, so wäre dann, wenn der Client-Anzeigertreiber nicht in der Lage ist, die Fett-Text-Funktionalität zu unterstützen, der Text, welcher auf dem Client-System-Anzeigebildschirm angezeigt wird, nicht fett und würde sich somit von dem Text des Host-Systems und seinem Abbild unterscheiden.
- In dem allgemeinen Ablaufdiagramm gemäß Fig. 14 wird im Block 500 eine Windows®-Anwendung auf dem Host-System initiiert, und die graphische Geräteschnittstelle von Windows® überprüft die Host-System-Anzeigetreiberfähigkeiten und speichert geeignete Informationen in einer internen Tabelle. Im Block 501 gewinnt die Sensoranwendung dann, wenn ein Benutzer auf dem Host-System beschließt, eine Anwendung zu teilen bzw. gemeinsam zu benutzen, die interne Tabelle und modifiziert (patches) sie derart, daß sie anzeigt, daß der Host-Anzeigetreiber nur den minimalen Satz der erforderlichen Funktionalität und keine optionale Funktionalität aufweist. Wenn im Block 502 eine Windows®-Anwendung versucht, eine Textzeichenoperation auszuführen, die eine optionale Anzeigetreiberfunktion erfordert, überprüft die graphische Geräteschnittstelle von Windows® die interne Tabelle, welche die Anzeigetreiberfähigkeiten enthält. Im Block 503 zeigt die interne Tabelle an, daß der Host-Anzeigetreiber die geforderten optionalen Funktionen nicht aufweist. Die Windows®-GDI (Graphical Device Interface - graphische Geräteschnittstelle) schlußfolgert, daß der Host-Anzeigetreiber nicht in der Lage ist, die Operation durchzuführen. Im Block 504 erzeugt dann die Windows®-GDI die Textzeicheninformationen zum Ausführen der angeforderten Textzeichenoperation unter Benutzung des speziellen minimalen Satzes der erforderlichen Funktionalitäten, welche in der internen Tabelle gespeichert sind, und leitet diese Informationen an den Host- Anzeigetreiber weiter. Um beispielsweise fetten Text auf einer Einrichtung ohne Fett-Möglichkeiten zu drucken, kann die GDI den Treiber aufrufen, einen normalen Text zweimal zu drucken. Dann werden die Font-Informationen an das Client- System gesendet. Im Block 505, wenn der Host-Benutzer das Teilen der Anwendungen beendet hat, setzt die Sensor-Anwendung die interne Tabelle der Windows®-Anwendung zurück in ihren ursprünglichen Zustand, der es dem Host-System ermöglicht, die Anzeigetreiberfähigkeiten einschließlich sämtlicher optionalen Funktionen vollständig auszunutzen.
- Fig. 15 ist ein allgemeines Ablaufdiagramm, das das erfindungsgemäße Merkmal des Fern-Ziehens der Maus veranschaulicht. Bei einem "herkömmlichen" Fernsteuerverfahren enthält der Client-Bildschirm außer dem Host-Anzeige-Abbild nichts, und es gibt nur eine Maus/einen Cursor, mit dem man auf dem Client-Bildschirm arbeiten kann. Folglich wird eine einfache Lösung des Übermittelns sämtlicher Mausaktionen auf dem Client-Bildschirm direkt an die Host-Maschine verwendet.
- Bei einem "Rechteck"-Fernsteuerverfahren werden sämtliche Mausaktionen in dem geteilten Rechteck auf der Client- Maschine zu der Host-Maschine übermittelt. Irgendwelche Mausaktionen von dem Client-Benutzer außerhalb des geteilten Rechtecks werden nicht von der Host-Maschine erkannt. Ein Client-Benutzer könnte eine Mausaktion, wie beispielsweise das Klicken der Maus, initiieren, während sich der Cursor innerhalb des geteilten Rechtecks befindet, um das Auswählen eines Menüs zu beginnen. Nachfolgend könnte der Client-Benutzer die Maus aus dem Client-Rechteck herausbewegen, während er kontinuierlich die Maus zieht (d. h. die Maus bewegt, während die Maustaste gedrückt bleibt). Dann werden keine Mausaktionen an die Host-Maschine übermittelt und das geteilte Rechteck erscheint so, als ob sich die Menüauswahloperation in einem ausgesetzten Zustand befindet.
- Wünschenswerter wäre es, wenn bestimmte Client-Maus-Aktionen an die Host-Maschine selbst dann übermittelt würden, wenn sich die Client-Maus aus dem geteilten Rechteck herausbewegt. Bei dem oben beschriebenen Szenarium beispielsweise könnte der Client-Benutzer auf das Menü klicken und das Menü nach unten ziehen. Nachdem die Client-Maus aus dem geteilten Rechteck herausbewegt worden ist, während die Client-Maus gezogen/heruntergeklickt blieb, läßt der Client-Benutzer die Maus los, setzt das Ziehen nicht fort und bewegt die Maus zu einem Fenster einer nicht geteilten Anwendung. Bei diesem Szenarium wäre es anstelle des Belassens eines Menüs eines geteilten Fensters in einem geöffneten ausgesetzten Zustand, der auf eine mögliche Auswahl wartet, wünschenswerter, wenn das Loslassen der Client-Maus außerhalb des geteilten Rechtecks an die Host-Maschine übermittelt würde. Das übermittelte Loslassen der Client-Maus wird dann auf dem Host-System ausgeführt, so daß das in dem geteilten Rechteck geöffnete Menü geschlossen wird.
- Das allgemeine Ablaufdiagramm in Fig. 15 veranschaulicht das erfindungsgemäße Merkmal des fernen Ziehens der Maus einschließlich der Übermittlung der Client-Maus-Aktionen außerhalb des geteilten Rechtecks.
- Mit dem erfindungsgemäßen Merkmal des fernen Ziehens der Maus empfängt das Host-System noch immer sämtliche Client- Maus-Aktionen selbst dann, wenn sich die Client-Maus aus dem geteilten Rechteck herausbewegt. Wenn ein Client-Benutzer eine Mausaktion für die geteilte Anwendung ausführt, wird die tatsächliche Durchführung der Mausaktion nicht auf dem Client-System initiiert, sondern die Mausaktionen des Client werden zunächst auf der Host-Anwendung initiiert, wo die tatsächliche Windows -Anwendung abläuft.
- Wenn ein Menü sichtbar ist, reagiert das Menü auf ein Klicken irgendwo auf dem Anzeigebildschirm, wobei ein Klicken auf das Menü eine Operation auswählt und ein Klicken irgendwo anders das Menü ohne Auswählen einer Operation verwirft. Wenn der Client-Benutzer die Maus außerhalb des Client-Fensters klickt, übermittelt die Holodeck-Anwendung des Client-System ein Ereignis an die Sensoranwendung des Host-Systems, das Menü zu verabschieden, und sendet das Klicken an das richtige Client-Fenster in dem Client-System zurück. So wird immer dann, wenn der Client-Benutzer auf ein Host-Anwendungsmenü klickt und dann auf ein lokales Fenster, das heißt ein nicht geteiltes Fenster, klickt, das Host-Anwendungsmenü verschwinden und ein lokales Fenster wird aktiv.
- Sobald der Client-Benutzer eine Mausaktion für die geteilte Anwendung, die auf dem Host-System abläuft, ausführt, empfängt das Host-System gemäß den Blöcken 700 und 701 die entsprechende Mausaktion in der geteilten Windows®-Anwendung, und die Windows®-Anwendung kann die Maus "einfangen" oder freigeben. Wenn dies der Fall ist, wird das Ereignis an das Client-System im Block 707 gesendet.
- Im Block 703 wird das Host-Ereignis überprüft, um zu bestimmen, ob die Host-Maus eingefangen ist. Wenn das von dem Host-System an das Client-System übermittelte Ereignis ein Maus-Freigabe-Ereignis ist, dann wird im Block 704 die Client-Maus freigegeben. Wenn ein Menü in der geteilten Anwendung eingefangen ist, dann werden im Block 705 die Aktionen zurück zu dem Host-System übermittelt, und das Host-System führt tatsächlich die Task des Freigebens des Menüs aus. Dieses Abbild wird zurück an die Holodeck-Anwendung des Client-Systems von der Sensor-Anwendung des Host-Systems über das Konferenzkommunikationssystem des jeweiligen Systems übermittelt. Gleichzeitig übermittelt die Sensor-Anwendung des Client-Sysytems das Klicken auf das richtige Client-Fenster einer nicht geteilten Anwendung des Client- Systems zurück. Wenn die Host-Maus eingefangen wird, dann fängt im Block 706 das Client-System die Client-Maus ein.
- Wenn im Block 707 die Client-Maus aus dem geteilten Fenster des Client herausgezogen wird, dann wird entweder ein Autoscrollen oder ein Autoanwachsen ausgeführt.
- In der "task-basierten Anwendungsteilungs"-Fernsteuerumgebung der vorliegenden Erfindung kann das geteilte Rechteck des Client kleiner als das Host-Rechteck sein. Der Client- Benutzer könnte steuern, welcher Teil des geteilten Bereichs innerhalb des kleineren Client-Rechtecks sichtbar ist, indem er ein "Panning" oder "Scrolling" durchführt, während die Client-Maus eingefangen ist. Wenn die Client-Maus aus dem Client-Rechteck herausbewegt wird, führt das Client-Rechteck automatisch ein Schwenken oder Scrollen in dieser Richtung aus.
- Wenn ein Client-Rechteck von der Kante des Client-Rechtecks zu der Kante des Host-Rechtecks hin geschwenkt/gescrollt wird, wächst das Client-Rechteck automatisch in dieser Richtung in Richtung auf die Kante des Host- Rechtecks. Wenn somit der Client-Benutzer ein geteiltes Fenster umdimensioniert oder bewegt, ist der Client-Benutzer in der Lage, die visuelle Rückkopplung zu sehen, die das Host- System an das Client-System für eine derartige Operation sendet. Zusätzlich zeichnet die Windows®-Anwendung ein graues Rechteck, welches sich mit der Maus während einer Umdimensionierung oder einer Bewegung eines geteilten Fensters bewegt. Wenn ferner die Client-Maus nicht mehr länger eingefangen ist, wird das fern geteilte Rechteck auf dem Client- System in seiner üblichen Größe wiederhergestellt.
- Fig. 16 bis 19 sind allgemeine Ablaufdiagramme, die die Übertragung von Maus- und Tastaturbewegungsinformationen zwischen einem Client-System und einem Host-System während eines task-basierten Anwendungsteilungsprozesses gemäß der vorliegenden Erfindung veranschaulichen.
- Wenn ein Client-Benutzer eine Maus- oder Tastaturbewegung in dem fern geteilten Rechteck des Clients durchführt, werden Maus- und Tastaturbewegungen tatsächlich auf den geteilten Fenstern auf dem Host-System ausgeführt. Traditionelle Fernsteueranwendungen gestatten es dem Client-Benutzer, die Maus und Tastatur zu benutzen, um das vollständige Host-System zu kontrollieren.
- Das task-basierte Anwendungsteilungsverfahren gemäß der vorliegenden Erfindung schränkt die einem Client gestattete Kontrolle auf nur diejenigen Fenster der Anwendungen ein, die der Host-Benutzer als zu teilend ausgewählt hat.
- Die Sensoranwendung des Host-Systems übermittelt Informationen bezüglich der aktuell geteilten Eingabefenster an die Holodeck-Anwendung des Client-Systems. Die Holodeck-Anwendung des Clients wiederum filtert Maus- und Tastaturereignisse, die von dem Client-Benutzer, der Eingaben in das fern geteilte Client-Rechteck macht, empfangen worden sind. Sämtliche Mausbewegungen werden an das Host-System übermittelt. Mausaktionen ("Klicken") im fern geteilten Rechteck auf dem Client-System auf einem nicht verdeckten geteilten Bereich werden an das Host-System gesendet. Mausaktionen in einem ferngeteilten Rechteck auf dem Client-System, welche auf einem verdeckten Bereich (einer nicht geteilten Anwendung) durchgeführt werden, werden nicht an das Host-System gesendet. Statt dessen signalisiert das Client-System dem Client-Benutzer, daß eine fehlerhafte Eingabe gemacht wurde. Das Client-System könnte den Client-Benutzer beispielsweise durch Erklingenlassen eines Pieptons benachrichtigen. Tastaturbewegungen werden an das Host-System gesendet, wenn das aktuelle Eingabefenster auf dem Host-System geteilt ist. Sämtliche Maus- und Tastaturereignisse, welche an einer nicht geteilten Anwendung ausgeführt werden, werden von der Client-Holodeck-Anwendung zurückgewiesen und nicht an das Host-System gesendet. Sobald das Host-System Maus- und Tastaturbewegungsinformationen aus dem Client-System empfängt, fügt das Host-System einfach die Maus- und Tastaturereignisse in die Ereigniswarteschlange des Host-Systems so ein, als ob der Host-Benutzer die Ereignisse lokal verursacht hätte.
- Fig. 16 ist ein allgemeines Ablaufdiagramm, das die Übermittlung von Tastaturereignissen aus dem Client-System an das Host-System veranschaulicht. Client-Tastaturaktionen werden in der Client-System-Task-Warteschlange im Schritt 800 gespeichert. Im Schritt 801, wenn die Tastenbetätigung durch 202 direkt behandelt werden soll, dann werden im Schritt 802 die Client-Tastaturaktionen lokal auf dem Client-System ausgeführt. Anderenfalls, in Schritt 803, soll die Client-Tastaturaktion an den Host gesendet werden, und wenn das Host-System Tastatureingaben akzeptiert, dann werden die Tastatureingaben an das Host-System zusammen mit einer variablen CapsLock, welche anzeigt, ob die Tastatur des Client ein freigegebenes CapsLock hat, übermittelt.
- Wenn das Host-System keine Tastatureingaben akzeptiert, dann läßt im Schritt 804, wenn eine Tastenbetätigung ein Loslassen einer Nicht-Schrift-Taste ist, das Client-System einen Fehler-Piepton erklingen. Im Schritt 806 werden die von dem Client-System übermittelten Tastenbetätigungen von dem Host-System empfangen.
- Wenn das CapsLock der Client-Tastatur sich von dem CapsLock des Host unterscheidet, dann fügt der Host ein Shift-down in die Host-Systemwarteschlange ein, bevor die Tastenbetätigung eingesetzt wird, und fügt nachfolgend ein Shift-up ein.
- Fig. 17 ist ein allgemeines Ablaufdiagramm, das die Übermittlung der Mauspositionen aus dem Host-System an das Client-System veranschaulicht. Im Schritt 810 werden Host- Mausaktionen in der Host-Systemwarteschlange gespeichert. Im Schritt 811, wenn die aktuelle Mausposition gleich der vorhergehenden Mausfreigabeposition ist, dann wird im Schritt 812 die im Speicher gespeicherte vorhergehende Mausfreigabeposition gelöscht.
- Im Schritt 813 werden die Informationen über die Mausposition aus dem Host-System an das Client-System gesendet. Im Schritt 814 zeichnet das Client-System einen Cursor auf das Fenster der Holodeck-Anwendung 202. Im Schritt 815, wenn die Mausposition sich in einer ignorierten Liste befindet, dann wird die Mausposition aus der ignorierten Liste beseitigt im Schritt 816. Schließlich wird im Schritt 817 der Client-Cursor auf der Client-Anzeige zu der Mausposition, die von dem Host-Benutzer durchgeführt wird, bewegt.
- Fig. 18 ist ein allgemeines Ablaufdiagramm, das die Übermittlung des Mauseinfangens zwischen einem Host-System und einem Client-System veranschaulicht. Wenn im Schritt 821 der Host ein Menü der geteilten Anwendung aufschlägt (pops up), dann wird im Schritt 822 eine Variable SetCapture, die ein Maus-"Einfangen"-Ereignis (d. h. das Greifen der Maus) anzeigt, an das Client-System übermittelt. Im Schritt 823, wenn die Client-Maus gegenwärtig nicht eingefangen ist und das Menü in einer auf dem Host-System angezeigten geteilten Anwendung eingefangen ist, dann wird im Schritt 824 die Client-Maus eingefangen.
- Im Schritt 825, wenn der Host ein Menü der geteilten Anwendung verläßt, dann wird eine Variable ReleaseCapture, die ein Maus-Freigabe-Ereignis anzeigt, an das Client-System übermittelt. Wenn im Schritt 826 die Client-Maus gegenwärtig eingefangen ist, dann wird die Client-Maus freigegeben.
- Fig. 19 ist ein allgemeines Ablaufdiagramm, das die Übermittlung der Mausereignisse aus einem Client-System an ein Host-System veranschaulicht. Im Schritt 830 wird eine Mausaktion von dem Client-Benutzer auf dem Client-System ausgeführt. Wenn im Schritt 831 die Mausaktion ein Maustaste-Herunter-Ereignis ist, dann wird im Schritt 832 die Client-Maus eingefangen. Im Schritt 833, wenn die Mausaktion ein Taste-Hoch-Ereignis ist, dann wird im Schritt 834 die Client-Maus freigegeben.
- Im Schritt 835, wenn die Client-Mausaktion ein Tastenereignis über einer geteilten Fläche ist, dann wird das Mausereignis an das Host-System gesendet. Das Mausereignis wird dann in der Ignoriert-Liste des Client-Systems gespeichert. Im Schritt 836, wenn das Host-System aktuell Operationen an Anwendungen ausführt, dann wird om Scjrott 837 das übermittelte Client-Mausereignis zu dem Puffer hinzugefügt und das Mausereignis wird in den Puffer in die Warteschlange eingereiht.
- Im Schritt 840, wenn die übermittelte Client-Maus nicht gepuffert wird, dann wird in den Schritten 840 und 841, wenn das Mausereignis ein Tasten-Ereignis ist und über einer geteilten Fläche ist, das Maus-Ereignis gepuffert. Im Schritt 842, wenn das von dem Client-System übermittelte Mausereignis ein Taste-hoch-Ereignis ist, dann wird das Mausereignis in dem Host-System gepuffert, bis ein Taste-hoch-Ereignis durchgeführt wird. Im Schritt 843, wenn das Mausereignis ein Doppelklick ist, dann wird das Mausereignis gepuffert, bis ein Maus-herunter-Ereignis ausgeführt wird. Im Schritt 844, wenn der Host-Benutzer eine Maustaste ausgetauscht hat, dann werden die Tasten der Maus ausgetauscht. Im Schritt 845 werden die Mausereignisse dann in der Host-System-Warteschlange gespeichert. Im Schritt 846, wenn der Host-Maustreiber relativ ist, wird die Relativbewegung des Host-Maustreibers bestimmt und die Beschleunigung wird auf Null gesetzt.
- Im Schritt 850, wenn eine Mausaktion für ein Taste-hoch- Ereignis gepuffert wird, und wenn ein Maus-hoch-Ereignis durchgeführt wird, dann wird im Schritt 841 eine Mausnachricht, die anzeigt, daß ein Hoch-Ereignis abgeschlossen ist, an die Systemwarteschlange übermittelt. Im Schritt 852, wenn die aktuelle Mausposition sich an der Loslaßposition befindet, dann wird im Schritt 854 die durchzuführende Loslaßposition abgeschlossen. Im Schritt 853, wenn die aktuelle Mausposition nicht an der Loslaßposition ist, dann wird die Host-Mausposition an das Client-System gesendet. Im Schritt 860, wenn ein Maustaste-herunter-Ereignis gepuffert wird und das aktuelle Mausereignis herunter ist, und im Schritt 861, wenn das Client-Ereignis auch ein Doppelklick ist, dann wird im Schritt 862 das Ereignis in ein Doppelklick-Mausereignis geändert. Im Schritt 863 wird das Maus-herunter-Ereignis aus dem Puffer gelöscht, und im Schritt 864 werden Mausereignisse in den Puffer eingereiht. Im Schritt 866, wenn ein Maus-hoch-Ereignis gepuffert wird und das aktuelle Mausereignis hoch ist, dann wird im Schritt 867 das Maus-hoch-Ereignis aus dem Puffer gelöscht. Im Schritt 865 wird das Mausereignis durchgeführt.
- Beschrieben wurden ein Verfahren und eine Einrichtung für eine Fernsteuerung eines Host-Systems durch ein Client- System mittels eines task-basierten Anwendungsteilungsverfahrens zum Teilen/gemeinsamen Benutzen einer oder mehrerer ausgewählter Anwendungen, die innerhalb eines beim Client ausgewählten Rechtecks sichtbar gemacht werden. Im Unterschied zu dem traditionellen Fernsteuerverfahren und dem "Definiere-ein-Rechteck"-Verfahren gestattet das task-basierte Anwendungsteilungs-Fernsteuerverfahren gemäß der vorliegenden Erfindung, daß sowohl der Host-Benutzer als auch der Client-Benutzer sich die Kontrolle des Host-Systems teilen, und ermöglicht ein Teilen der Kontrolle einer oder mehrerer Anwendungen, welche der Host-Benutzer als zu teilend ausgewählt hat. Merkmale des veranschaulichten task-basierten Anwendungsteilungsverfahrens gemäß der vorliegenden Erfindung umfassen das Merkmal des automatischen Umdimensionierens des fern geteilten Fensters, das Merkmal der automatischen Erfassung von Abkömmlingen der geteilten Tasks, das Merkmal der Erfassung von durch nicht geteilte Fenster verdeckten geteilten Flächen, das Merkmal der Anzeige eines Host-Cursors und Client-Cursors auf der Client-Anzeigeeinrichtung, das Merkmal des Fernziehens der Maus, das Merkmal der geteilten Fonts und das Merkmal des Einschränkens der Windows®-Anzeigetreiberschnittstelle.
- Bestimmte Ausführungsbeispiele wurden im Detail beschrieben und in den beigefügten Zeichnungen gezeigt; es ist klar, daß diese Ausführungsbeispiele nur der Veranschaulichung dienen und nicht die breite Erfindung einschränken sollen und daß diese Erfindung nicht auf die gezeigten und beschriebenen speziellen Anordnungen und Konstruktionen eingeschränkt werden soll, da verschiedene andere Modifikationen Fachleuten auf dem Gebiet in den Sinn kommen können.
Claims (21)
1. Ein Verfahren zum ferngesteuerten gemeinsamen
Benutzen von Anwendungen in einer Umgebung einer graphischen
Benutzeroberfläche, wobei gemeinsam zu benutzende Anwendungen
(15) lediglich durch einen ein Host-System (14) verwendenden
Host-Benutzer ausgewählt werden, wobei das Verfahren
gekennzeichnet ist durch die Schritte:
Geteilte Steuerung der auf dem Host-System (14)
ablaufenden Anwendungen (15), wobei die gemeinsame Benutzung
durch den das Host-System (14) benutzenden Host-Benutzer und
einen ein Client-System (11) benutzenden Client-Benutzer
durchgeführt wird, ohne Operationen zu beeinflussen, die von
dem Host-Benutzer an nicht gemeinsam benutzten Anwendungen
auf dem Host-System (14) ausgeführt werden;
Anzeigen eines Rechtecks (16) auf einer
Anzeigeeinrichtung des Client-Systems (11), in welchem gemeinsam benutzte
Anwendungen (15) angezeigt und durch den Client-Benutzer
bedient werden, wobei die gemeinsam benutzten Anwendungen (15)
auf dem Host-System (14) auf einer Anzeigeeinrichtung des
Host-Systems (14) ohne das Rechteck (16) angezeigt werden,
wobei die Anzeigeeinrichtung des Host-Systems (14) in der
Lage ist, sowohl die gemeinsam benutzten als auch die nicht
gemeinsam benutzten Anwendungen gleichzeitig anzuzeigen;
Bestimmen, ob Benutzereingaben in das Client-System (11)
für eine gemeinsam benutzte oder für eine nicht gemeinsam
benutzte Anwendung vorgesehen sind, wobei die Bestimmung auf
dem Client-System (11) ausgeführt wird; und
Übermitteln der Eingaben, bei denen festgestellt wird,
daß sie für eine gemeinsam benutzte Anwendung vorgesehen
sind, an das Host-System (14), um sie in einer
Ereigniswarteschlange des Host-Systems (14) zur Ausführung so zu
halten, als ob ein Benutzer an dem Host-System (14) die
Eingaben lokal verursacht hätte.
2. Das Verfahren nach Anspruch 1, ferner gekennzeichnet
durch die Schritte:
Verarbeiten einer Anwendung einer graphischen
Benutzeroberfläche durch eine CPU in dem Host-System (14); und
Verarbeiten einer graphischen Benutzeroberfläche durch
eine CPU in dem Client-System (11).
3. Eine Einrichtung zur ferngesteuerten gemeinsamen
Benutzung von Anwendungen in einer Umgebung einer graphischen
Benutzeroberfläche, wobei gemeinsam zu benutzende
Anwendungen (15) lediglich durch einen ein Host-System (14)
benutzenden Host-Benutzer ausgewählt werden, wobei die
Einrichtung gekennzeichnet ist durch:
Mittel zum geteilten Steuern der auf dem Host-System
(14) ablaufenden Anwendungen (15), wobei die gemeinsame
Benutzung durch den das Host-System (14) benutzenden
Host-Benutzer und einen ein Client-System (11) benutzenden Client-
Benutzer ausgeführt wird, ohne Operationen zu beeinflussen,
die von dem Host-Benutzer an nicht gemeinsam benutzten
Anwendungen auf dem Host-System (14) ausgeführt werden;
Mittel zum Anzeigen eines Rechtecks (16) auf einer
Anzeigeeinrichtung des Client-Systems (11), in welchem
gemeinsam benutzte Anwendungen (15) angezeigt und durch den
Client-Benutzer bedient werden, wobei die gemeinsam
benutzten Anwendungen (15) auf dem Host-System (14) auf einer
Anzeigeeinrichtung des Host-Systems (14) ohne das Rechteck
(16) angezeigt werden, wobei die Anzeigeeinrichtung des
Host-Systems (14) in der Lage ist, sowohl die gemeinsam
benutzten als auch die nicht gemeinsam benutzten Anwendungen
gleichzeitig anzuzeigen;
Mittel zum Bestimmen, ob Benutzereingaben für eine
gemeinsam benutzte oder für eine nicht gemeinsam benutzte
Anwendung vorgesehen sind, wobei die Bestimmung auf dem
Client-System (11) ausgeführt wird; und
Mittel zum Übermitteln der Eingaben, bei denen
festgestellt wird, daß sie für eine gemeinsam benutzte Anwendung
(15) vorgesehen sind, an das Host-System (14), um sie in
einer Ereigniswarteschlange des Host-Systems zur Ausführung so
zu halten, als ob ein Benutzer an dem Host-System (14) die
Eingaben lokal verursacht hätte.
4. Die Einrichtung nach Anspruch 3, ferner
gekennzeichnet durch:
Mittel zum Verarbeiten einer Anwendung einer graphischen
Benutzeroberfläche durch eine CPU in dem Host-System (14);
und
Mittel zum Verarbeiten einer Anwendung einer graphischen
Benutzeroberfläche durch eine CPU in dem Client-System (11).
5. Die Einrichtung nach Anspruch 3, ferner
gekennzeichnet durch:
Mittel zum Erzeugen eines Kommunikationspaket, das
Zeichnungsinformationen enthält, die für einen
Anzeigetreiber erforderlich sind, um durch eine Anwendung einer
graphischen Benutzeroberfläche auf dem Host-System (14) veranlaßte
Zeichnungen auszuführen;
Mittel zum Übermitteln des Kommunikationspakets aus dem
Host-System (14) zu dem Client-System (11); und
Mittel zum Anzeigen eines Duplikatbildes der auf dem
Host-System (14) ausgeführten Zeichnungen auf der
Anzeigeeinrichtung des Client-Systems (11).
6. Die Einrichtung nach Anspruch 3, ferner
gekennzeichnet durch Mittel zum Anzeigen von Operationen an den
gemeinsam benutzten Anwendungen (15).
7. Die Einrichtung nach Anspruch 3, ferner
gekennzeichnet durch Mittel zum Umdimensionieren des Rechtecks auf der
Anzeigeeinrichtung des Client-Systems (11), so daß es mit
Änderungen der Größe von Fenstern der gemeinsam benutzten
Anwendungen auf dem Host-System (14) übereinstimmt.
8. Die Einrichtung nach Anspruch 3, ferner
gekennzeichnet durch Mittel zum Erfassen von Kindern der gemeinsam
benutzten Anwendungen (15).
9. Die Einrichtung nach Anspruch 3, ferner
gekennzeichnet durch Mittel zum Erfassen von Fenstern der gemeinsam
benutzten Anwendung, die auf dem Host-System (14) durch ein
Fenster einer nicht gemeinsamen benutzten Anwendung
überdeckt werden.
10. Die Einrichtung nach Anspruch 3, ferner
gekennzeichnet durch Mittel zum Anzeigen eines Host-Cursors und eines
Client-Cursors auf der Anzeigeeinrichtung des Client-Systems
(11).
11. Die Einrichtung nach Anspruch 3, ferner
gekennzeichnet durch Mittel zum Einschränken einer
Anzeigetreiberwiedergabe von Fonts für eine auf den gemeinsam benutzten
Anwendungen (15) ausgeführte Textzeichnung.
12. Die Einrichtung nach Anspruch 3, ferner
gekennzeichnet durch Mittel zum Einschränken der Fähigkeiten eines
Anzeigetreibers des Host-Systems (14).
13. Die Einrichtung nach Anspruch 3, ferner
gekennzeichnet durch Mittel zum Scrollen und Neudimensionieren des
Rechtecks (16).
14. Die Einrichtung nach Anspruch 3, ferner
gekennzeichnet durch Mittel zum Übermitteln von Tastaturbewegungen, die
an den gemeinsam benutzten Anwendungen (15) ausgeführt
werden, aus dem Client-System (11) an das Host-System (14).
15. Die Einrichtung nach Anspruch 3, ferner
gekennzeichnet durch Mittel zum Übermitteln von Mausbewegungen, die an
den gemeinsam benutzten Anwendungen (15) ausgeführt werden,
aus dem Client-System (11) an das Host-System (14).
16. Die Einrichtung nach Anspruch 5, wobei die Mittel
zum Übermitteln ferner gekennzeichnet sind durch:
Mittel zum Konstruieren eines Aufrufs der graphischen
Benutzeroberfläche zum Ausführen des Zeichnens auf dem
Client-System (11); und
Mittel zum Anzeigen des Duplikatbilds der Zeichnungen
auf dem Client-System (11), wobei das Anzeigen von dem
Anzeigetreiber ausgeführt wird.
17. Die Einrichtung nach Anspruch 7, ferner
gekennzeichnet durch:
Mittel zum Bilden einer Schnittstelle einer Anwendung
der graphischen Benutzerschnittstelle zu einer
Graphikeinrichtungsschnittstelle auf dem Host-System (14);
Mittel zum Wiedergewinnen von Zeichnungsinformationen,
die von einem Anzeigetreiber verwendet werden, um
Zeichnungen auszuführen, die von der Anwendung der graphischen
Benutzeroberfläche auf dem Host-System (14) veranlaßt sind;
und
Mittel zum Zeichnen von durch die Anwendung der
graphischen Benutzeroberfläche veranlaßten Zeichnungen auf der
Anzeigeeinrichtung des Host-Systems (14).
18. Die Einrichtung nach Anspruch 7, ferner
gekennzeichnet durch:
Mittel zum Spezifizieren der zu einer gemeinsam
benutzten Anwendung auf dem Host-System (14) gehörenden Fenster;
Mittel zum Bestimmen, ob jedes neue Fenster aus den
Fenstern zu der gemeinsam benutzten Anwendung auf dem
Host-System (14) gehört;
Mittel zum Hinzufügen jedes neuen Fensters zu einer
Liste gemeinsam benutzter Fenster;
Mittel zum Erzeugen eines Kommunikationspakets, das
jedes neue Fenster in der Liste gemeinsam benutzter Fenster
und die Größe des jeweiligen neuen Fensters auflistet;
Mittel zum Übermitteln des Kommunikationspakets aus dem
Host-System (14) an das Client-System (11);
Mittel zum Berechnen einer neuen Rechteckgröße, die eine
alte Rechteckgröße und das jeweilige neue Fenster
umschließt; und
Mittel zum Umdimensionieren des alten Rechtecks (16),
sofern die neue Rechteckgröße ungleich der alten
Rechteckgröße ist.
19. Die Einrichtung nach Anspruch 8, ferner
gekennzeichnet durch:
Mittel zum Bestimmen, ob eine neue Anwendung auf dem
Host-System (14) ein Kind einer gemeinsam benutzten
Anwendung ist;
Mittel zum Hinzufügen der neuen Anwendung zu einer Liste
gemeinsam benutzter Anwendungen, sofern die neue Anwendung
ein Kind einer gemeinsam benutzten Anwendung ist;
Mittel zum Bestimmen, ob die neue Anwendung eine
Elternanwendung aufweist;
Mittel zum Bestimmen, ob die Elternanwendung ein Kind
einer gemeinsam benutzten Anwendung ist;
Mittel zum Hinzufügen der Elternanwendung zu der Liste
gemeinsam benutzter Anwendungen, sofern die Elternanwendung
ein Kind einer gemeinsam benutzten Anwendung ist; und
Mittel zum Bestimmen, ob die Elternanwendung eine
Elternanwendung aufweist.
20. Ein Computersystem für eine ferngesteuerte
gemeinsame Benutzung von Anwendungen in einer Umgebung einer
graphischen Benutzerschnittstelle, wobei gemeinsam zu benutzende
Anwendungen (15) nur durch einen ein Host-System (14)
benutzenden Host-Benutzer ausgewählt werden, wobei das
Computersystem gekennzeichnet ist durch:
Mittel zum Teilen der Steuerung der auf dem Host-System
(14) ablaufenden Anwendungen (15), wobei das Teilen oder
gemeinsame Benutzen von dem das Host-System (14) benutzenden
Host-Benutzer und einem ein Client-System (11) benutzenden
Client-Benutzer ausgeführt wird, ohne Operationen zu
beeinflussen, die von dem Host-Benutzer auf dem Host-System (14)
an nicht gemeinsam benutzten Anwendungen ausgeführt werden;
Mittel zum Anzeigen eines Rechtecks (16) auf einer
Anzeigeeinrichtung des Client-Systems (11), in welchem
gemeinsam benutzte Anwendungen (15) angezeigt werden und durch den
Client-Benutzer bedient werden, wobei die gemeinsam
benutzten Anwendungen (15) auf dem Host-System (14) auf einer
Anzeigeeinrichtung des Host-Systems (14) ohne das Rechteck
(16) angezeigt werden, wobei die Anzeigeeinrichtung des
Host-Systems (14) in der Lage ist, gleichzeitig sowohl die
gemeinsam benutzten als auch die nicht gemeinsam benutzten
Anwendungen anzuzeigen;
Mittel zum Bestimmen, ob Benutzereingaben für eine
gemeinsam benutzte oder für eine nicht gemeinsam benutzte
Anwendung vorgesehen sind, wobei die Bestimmung auf dem
Client-System (11) vorgenommen wird;
Mittel zum Übermitteln der Eingaben, von welchen
festgestellt wird, daß sie für eine gemeinsam benutzte Anwendung
vorgesehen sind, an das Host-System (14), so daß sie in
einer Ereigniswarteschlange des Host-Systems zur Ausführung so
gehalten werden, als ob ein Benutzer an dem Host-System (14)
die Eingaben lokal bewirkt hätte; und
Mittel zum Verarbeiten einer Anwendung der graphischen
Benutzerschnittstelle durch eine CPU.
21. Das Computersystem nach Anspruch 20, ferner
gekennzeichnet durch:
Mittel zum Erzeugen eines Kommunikationspakets, das
Zeichnungsinformationen enthält, die für einen
Anzeigetreiber erforderlich sind, um durch eine Anwendung der graphischen
Benutzeroberfläche auf dem Host-System (14) veranlaßte
Zeichnungen auszuführen;
Mittel zum Übermitteln des Kommunikationspakets aus dem
Host-System (14) an das Client-System (11); und
Mittel zum Anzeigen eines Duplikatbilds der auf dem
Host-System (14) ausgeführten Zeichnungen auf der
Anzeigeeinrichtung des Client-Systems (11).
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US26174094A | 1994-06-17 | 1994-06-17 | |
| PCT/US1995/007488 WO1995035535A1 (en) | 1994-06-17 | 1995-06-13 | Apparatus and method for application sharing in a graphic user interface |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE69523593D1 DE69523593D1 (de) | 2001-12-06 |
| DE69523593T2 true DE69523593T2 (de) | 2002-09-26 |
Family
ID=22994664
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE69523593T Expired - Lifetime DE69523593T2 (de) | 1994-06-17 | 1995-06-13 | Vorrichtung und verfahren zur aufteilung der anwendung in einer graphischen benutzerschnittstelle |
Country Status (5)
| Country | Link |
|---|---|
| US (2) | US5758110A (de) |
| EP (1) | EP0766847B1 (de) |
| AU (1) | AU2902395A (de) |
| DE (1) | DE69523593T2 (de) |
| WO (1) | WO1995035535A1 (de) |
Families Citing this family (231)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
| JPH08228329A (ja) * | 1994-12-20 | 1996-09-03 | Ricoh Co Ltd | 通信会議方法および通信会議端末装置 |
| US6911987B1 (en) | 1995-07-05 | 2005-06-28 | Microsoft Corporation | Method and system for transmitting data for a shared application |
| US6204847B1 (en) | 1995-07-17 | 2001-03-20 | Daniel W. Wright | Shared virtual desktop collaborative application system |
| US6006282A (en) * | 1995-12-01 | 1999-12-21 | Intel Corporation | Blocking host input while a remote guest has input control to a host-executed shared application |
| GB9603582D0 (en) | 1996-02-20 | 1996-04-17 | Hewlett Packard Co | Method of accessing service resource items that are for use in a telecommunications system |
| US7130888B1 (en) * | 1996-02-16 | 2006-10-31 | G&H Nevada-Tek | Method and apparatus for controlling a computer over a TCP/IP protocol network |
| US7100069B1 (en) * | 1996-02-16 | 2006-08-29 | G&H Nevada-Tek | Method and apparatus for controlling a computer over a wide area network |
| US9094384B2 (en) * | 1996-02-16 | 2015-07-28 | Reference Ltd., Limited Liability Company | TCP/IP protocol network with satellite nodes |
| US6173332B1 (en) | 1996-03-06 | 2001-01-09 | Paul L. Hickman | Method and apparatus for computing over a wide area network |
| US7297856B2 (en) * | 1996-07-10 | 2007-11-20 | Sitrick David H | System and methodology for coordinating musical communication and display |
| US7989689B2 (en) | 1996-07-10 | 2011-08-02 | Bassilic Technologies Llc | Electronic music stand performer subsystems and music communication methodologies |
| US6038575A (en) * | 1996-09-11 | 2000-03-14 | Intel Corporation | Method of sharing glyphs between computers having graphical user interfaces |
| US6437776B1 (en) * | 1997-06-30 | 2002-08-20 | Barton A. Walz | Video assisted program environment |
| US6308212B1 (en) * | 1998-05-29 | 2001-10-23 | Hewlett-Packard Company | Web user interface session and sharing of session environment information |
| JP3846666B2 (ja) * | 1998-09-24 | 2006-11-15 | 富士通株式会社 | 共有画面制御装置 |
| US6594819B1 (en) | 1999-01-25 | 2003-07-15 | International Business Machines Corporation | Method and system for establishing collection of hostable applications |
| US6532488B1 (en) | 1999-01-25 | 2003-03-11 | John J. Ciarlante | Method and system for hosting applications |
| US7966078B2 (en) | 1999-02-01 | 2011-06-21 | Steven Hoffberg | Network media appliance system and method |
| US6570590B1 (en) * | 1999-03-02 | 2003-05-27 | Microsoft Corporation | Application sharing in a frame |
| US6850985B1 (en) * | 1999-03-02 | 2005-02-01 | Microsoft Corporation | Security and support for flexible conferencing topologies spanning proxies, firewalls and gateways |
| JP3722194B2 (ja) * | 1999-05-20 | 2005-11-30 | セイコーエプソン株式会社 | 画像表示システム |
| US7284203B1 (en) * | 1999-07-27 | 2007-10-16 | Verizon Laboratories Inc. | Method and apparatus for application sharing interface |
| US7089278B1 (en) * | 1999-09-07 | 2006-08-08 | Fuji Xerox Co., Ltd. | Anchored conversations: adhesive, in-context, virtual discussion forums |
| US20100145794A1 (en) * | 1999-10-21 | 2010-06-10 | Sean Barnes Barger | Media Processing Engine and Ad-Per-View |
| US20060265476A1 (en) * | 1999-10-21 | 2006-11-23 | Sean Barger | Automated media delivery system |
| US6792575B1 (en) * | 1999-10-21 | 2004-09-14 | Equilibrium Technologies | Automated processing and delivery of media to web servers |
| US7068381B1 (en) | 2000-02-02 | 2006-06-27 | Raja Tuli | Portable high speed internet access device |
| US7356570B1 (en) | 2000-08-29 | 2008-04-08 | Raja Tuli | Portable high speed communication device |
| US20020030843A1 (en) * | 2000-02-02 | 2002-03-14 | Tuli Raja Singh | Portable high speed internet access device |
| US7289244B2 (en) * | 2000-02-02 | 2007-10-30 | Raja Singh Tuli | Portable high speed internet access device |
| US6633314B1 (en) | 2000-02-02 | 2003-10-14 | Raja Tuli | Portable high speed internet device integrating cellular telephone and palm top computer |
| US20020115477A1 (en) * | 2001-02-13 | 2002-08-22 | Raja Singh | Portable high speed internet access device with scrolling |
| US7023572B2 (en) * | 2000-02-02 | 2006-04-04 | Raja Singh Tuli | Portable high speed internet access device |
| US6941382B1 (en) | 2000-02-07 | 2005-09-06 | Raja Tuli | Portable high speed internet or desktop device |
| US6874009B1 (en) | 2000-02-16 | 2005-03-29 | Raja Tuli | Portable high speed internet device with user fees |
| US6690403B1 (en) | 2000-02-16 | 2004-02-10 | Raja Tuli | Portable high speed internet device and information on links to web sites |
| US7043697B1 (en) * | 2000-05-15 | 2006-05-09 | Intel Corporation | Virtual display driver |
| FR2809203B1 (fr) * | 2000-05-18 | 2003-10-03 | Cit Alcatel | Procede de gestion d'une interface homme-machine graphique |
| US20020019845A1 (en) | 2000-06-16 | 2002-02-14 | Hariton Nicholas T. | Method and system for distributed scripting of presentations |
| JP3588038B2 (ja) * | 2000-06-28 | 2004-11-10 | シャープ株式会社 | 印刷出力ユーザインタフェース制御方法およびその方法をプログラムとして格納した記録媒体ならびにそのプログラムを実行する印刷データ供給装置と情報処理システム |
| AU2001276219A1 (en) * | 2000-07-25 | 2002-02-05 | Raja Tuli | Portable high speed internet device comprising internal memory for accessing previously seen images and user-capabilities for modifying a sequence of downloading |
| US7274368B1 (en) | 2000-07-31 | 2007-09-25 | Silicon Graphics, Inc. | System method and computer program product for remote graphics processing |
| US6842777B1 (en) | 2000-10-03 | 2005-01-11 | Raja Singh Tuli | Methods and apparatuses for simultaneous access by multiple remote devices |
| US7191211B2 (en) * | 2000-10-03 | 2007-03-13 | Raja Tuli | Portable high speed internet access device priority protocol |
| US6915327B1 (en) | 2000-10-30 | 2005-07-05 | Raja Singh Tuli | Portable high speed communication device peripheral connectivity |
| FI20002759L (fi) * | 2000-12-15 | 2002-06-16 | Nokia Corp | Menetelmä informaation välittämiseksi |
| US6928461B2 (en) | 2001-01-24 | 2005-08-09 | Raja Singh Tuli | Portable high speed internet access device with encryption |
| US6789109B2 (en) * | 2001-02-22 | 2004-09-07 | Sony Corporation | Collaborative computer-based production system including annotation, versioning and remote interaction |
| US20060161623A1 (en) * | 2001-04-13 | 2006-07-20 | Elaine Montgomery | Methods and apparatuses for selectively sharing a portion of a display for application based screen sampling |
| US20020165922A1 (en) * | 2001-04-13 | 2002-11-07 | Songxiang Wei | Application based screen sampling |
| US20030085922A1 (en) * | 2001-04-13 | 2003-05-08 | Songxiang Wei | Sharing DirectDraw applications using application based screen sampling |
| US20060161624A1 (en) * | 2001-04-13 | 2006-07-20 | Elaine Montgomery | Methods and apparatuses for dynamically sharing a portion of a display for application based screen sampling |
| US20060161622A1 (en) * | 2001-04-13 | 2006-07-20 | Elaine Montgomery | Methods and apparatuses for selectively sharing a portion of a display for application based screen sampling using direct draw applications |
| US20020174181A1 (en) * | 2001-04-13 | 2002-11-21 | Songxiang Wei | Sharing OpenGL applications using application based screen sampling |
| US20030061279A1 (en) * | 2001-05-15 | 2003-03-27 | Scot Llewellyn | Application serving apparatus and method |
| ATE439631T1 (de) * | 2001-06-08 | 2009-08-15 | Real Entpr Solutions Dev Bv | Serverbasierte rechnerumgebung |
| GB0117077D0 (en) * | 2001-07-13 | 2001-09-05 | Univ Strathclyde | A generic object-based resource-sharing interface for distance co-working |
| US7379977B2 (en) * | 2001-07-24 | 2008-05-27 | Steve Walrath | System and method for display of multiple electronic pages |
| US7418664B2 (en) * | 2002-04-03 | 2008-08-26 | Microsoft Corporation | Application sharing single document sharing |
| US7028266B2 (en) * | 2002-04-05 | 2006-04-11 | Microsoft Corporation | Processing occluded windows during application sharing |
| US7451457B2 (en) * | 2002-04-15 | 2008-11-11 | Microsoft Corporation | Facilitating interaction between video renderers and graphics device drivers |
| US7219352B2 (en) * | 2002-04-15 | 2007-05-15 | Microsoft Corporation | Methods and apparatuses for facilitating processing of interlaced video images for progressive video displays |
| EP1359773B1 (de) * | 2002-04-15 | 2016-08-24 | Microsoft Technology Licensing, LLC | Erleichterung der Interaction zwischen Videodarstellungen und Treiber einer graphischen Vorrichtung |
| AU2003230946A1 (en) | 2002-04-19 | 2003-11-03 | Walker Digital, Llc | Method and apparatus for linked play gaming with combined outcomes and shared indicia |
| WO2003090103A1 (en) * | 2002-04-22 | 2003-10-30 | Placeware, Inc. | Application sharing security |
| US8756513B1 (en) * | 2002-04-23 | 2014-06-17 | Microsoft Corporation | Document viewing mechanism for document sharing environment |
| US7757001B2 (en) * | 2002-04-26 | 2010-07-13 | Smart Technologies Ulc | System, method and graphical user interface for identifying image from remote site during screen sharing |
| US7293243B1 (en) | 2002-05-22 | 2007-11-06 | Microsoft Corporation | Application sharing viewer presentation |
| US7356563B1 (en) | 2002-06-06 | 2008-04-08 | Microsoft Corporation | Methods of annotating a collaborative application display |
| AU2003247842A1 (en) * | 2002-06-27 | 2004-01-19 | Axeda Systems Operating Company, Inc. | Screen sharing |
| US7140024B2 (en) * | 2002-07-29 | 2006-11-21 | Silicon Graphics, Inc. | System and method for managing graphics applications |
| US6982682B1 (en) | 2002-07-29 | 2006-01-03 | Silicon Graphics, Inc. | System and method for managing graphics applications |
| US20040027373A1 (en) * | 2002-08-07 | 2004-02-12 | Jacquot Bryan Joseph | Linked screen demonstration program for computer application programs |
| US8176428B2 (en) * | 2002-12-03 | 2012-05-08 | Datawind Net Access Corporation | Portable internet access device back page cache |
| US8095409B2 (en) * | 2002-12-06 | 2012-01-10 | Insors Integrated Communications | Methods and program products for organizing virtual meetings |
| US7571210B2 (en) * | 2002-12-06 | 2009-08-04 | Insors Integrated Communications | Methods and systems for linking virtual meeting attendees over a network |
| US7222305B2 (en) * | 2003-03-13 | 2007-05-22 | Oracle International Corp. | Method of sharing a desktop with attendees of a real-time collaboration |
| US20040207723A1 (en) * | 2003-04-15 | 2004-10-21 | Davis Jeffrey Alan | UI remoting with synchronized out-of-band media |
| US7949116B2 (en) * | 2003-05-22 | 2011-05-24 | Insors Integrated Communications | Primary data stream communication |
| US7613137B2 (en) * | 2003-05-22 | 2009-11-03 | Insors Integrated Communications | Data stream communication |
| US8516536B2 (en) * | 2003-05-28 | 2013-08-20 | Alcatel Lucent | Method and system for internet censorship |
| US7640506B2 (en) * | 2003-06-27 | 2009-12-29 | Microsoft Corporation | Method and apparatus for viewing and managing collaboration data from within the context of a shared document |
| US20060208871A1 (en) * | 2003-06-27 | 2006-09-21 | Hansen James R | Screen sharing |
| US20050003330A1 (en) * | 2003-07-02 | 2005-01-06 | Mehdi Asgarinejad | Interactive virtual classroom |
| US7643675B2 (en) * | 2003-08-01 | 2010-01-05 | Microsoft Corporation | Strategies for processing image information using a color information data structure |
| EP1515223A1 (de) * | 2003-09-10 | 2005-03-16 | Siemens Aktiengesellschaft | Generierung einer Objekt-Bearbeitungsplattform zwischen zwei Computern über eine Bildschirmzusammenfügung |
| KR100982511B1 (ko) * | 2003-10-08 | 2010-09-16 | 삼성전자주식회사 | 원격 제어 장치 및 방법 |
| WO2005041029A2 (en) * | 2003-10-24 | 2005-05-06 | Matsushita Electric Industrial Co., Ltd. | Remote operation system, communication apparatus remote control system and document inspection apparatus |
| US7978716B2 (en) | 2003-11-24 | 2011-07-12 | Citrix Systems, Inc. | Systems and methods for providing a VPN solution |
| US10152190B2 (en) | 2003-12-15 | 2018-12-11 | Open Invention Network, Llc | Systems and methods for improved application sharing in a multimedia collaboration session |
| US7835596B2 (en) * | 2003-12-16 | 2010-11-16 | International Business Machines Corporation | Componentized application sharing |
| US20060002315A1 (en) * | 2004-04-15 | 2006-01-05 | Citrix Systems, Inc. | Selectively sharing screen data |
| US7680885B2 (en) * | 2004-04-15 | 2010-03-16 | Citrix Systems, Inc. | Methods and apparatus for synchronization of data set representations in a bandwidth-adaptive manner |
| US7827139B2 (en) * | 2004-04-15 | 2010-11-02 | Citrix Systems, Inc. | Methods and apparatus for sharing graphical screen data in a bandwidth-adaptive manner |
| US20060031779A1 (en) * | 2004-04-15 | 2006-02-09 | Citrix Systems, Inc. | Selectively sharing screen data |
| US7005957B2 (en) * | 2004-05-29 | 2006-02-28 | Tsung-Mou Yu | Mechanism for trip-free of the bimetallic plate of a safety switch device |
| US8739274B2 (en) | 2004-06-30 | 2014-05-27 | Citrix Systems, Inc. | Method and device for performing integrated caching in a data communication network |
| US8495305B2 (en) | 2004-06-30 | 2013-07-23 | Citrix Systems, Inc. | Method and device for performing caching of dynamically generated objects in a data communication network |
| US7757074B2 (en) | 2004-06-30 | 2010-07-13 | Citrix Application Networking, Llc | System and method for establishing a virtual private network |
| JP2008507928A (ja) | 2004-07-23 | 2008-03-13 | サイトリックス システムズ, インコーポレイテッド | ネットワークノード間の通信を最適化するためのシステムおよび方法 |
| KR20070037648A (ko) | 2004-07-23 | 2007-04-05 | 사이트릭스 시스템스, 인크. | 주변장치에서 가상 사설망 게이트웨이로 패킷을 라우팅하기위한 방법 및 시스템 |
| JP2006039919A (ja) * | 2004-07-27 | 2006-02-09 | Pioneer Electronic Corp | 画像共有表示システム、画像共有機能付端末、及びコンピュータプログラム |
| US20060064643A1 (en) | 2004-09-14 | 2006-03-23 | Hariton Nicholas T | Distributed scripting for presentations with touch screen displays |
| GB2421135A (en) * | 2004-12-09 | 2006-06-14 | Sony Uk Ltd | User resizable video display of catalogue entries |
| US8706877B2 (en) | 2004-12-30 | 2014-04-22 | Citrix Systems, Inc. | Systems and methods for providing client-side dynamic redirection to bypass an intermediary |
| US8700695B2 (en) | 2004-12-30 | 2014-04-15 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP pooling |
| US8954595B2 (en) | 2004-12-30 | 2015-02-10 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP buffering |
| US7810089B2 (en) * | 2004-12-30 | 2010-10-05 | Citrix Systems, Inc. | Systems and methods for automatic installation and execution of a client-side acceleration program |
| US20060253605A1 (en) * | 2004-12-30 | 2006-11-09 | Prabakar Sundarrajan | Systems and methods for providing integrated client-side acceleration techniques to access remote applications |
| US8549149B2 (en) | 2004-12-30 | 2013-10-01 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing |
| US8296441B2 (en) | 2005-01-14 | 2012-10-23 | Citrix Systems, Inc. | Methods and systems for joining a real-time session of presentation layer protocol data |
| US8200828B2 (en) | 2005-01-14 | 2012-06-12 | Citrix Systems, Inc. | Systems and methods for single stack shadowing |
| US8340130B2 (en) | 2005-01-14 | 2012-12-25 | Citrix Systems, Inc. | Methods and systems for generating playback instructions for rendering of a recorded computer session |
| US8230096B2 (en) | 2005-01-14 | 2012-07-24 | Citrix Systems, Inc. | Methods and systems for generating playback instructions for playback of a recorded computer session |
| US20060159432A1 (en) | 2005-01-14 | 2006-07-20 | Citrix Systems, Inc. | System and methods for automatic time-warped playback in rendering a recorded computer session |
| US8935316B2 (en) | 2005-01-14 | 2015-01-13 | Citrix Systems, Inc. | Methods and systems for in-session playback on a local machine of remotely-stored and real time presentation layer protocol data |
| US7426697B2 (en) * | 2005-01-18 | 2008-09-16 | Microsoft Corporation | Multi-application tabbing system |
| US7478326B2 (en) * | 2005-01-18 | 2009-01-13 | Microsoft Corporation | Window information switching system |
| US7552397B2 (en) * | 2005-01-18 | 2009-06-23 | Microsoft Corporation | Multiple window behavior system |
| US8341541B2 (en) * | 2005-01-18 | 2012-12-25 | Microsoft Corporation | System and method for visually browsing of open windows |
| US7747965B2 (en) * | 2005-01-18 | 2010-06-29 | Microsoft Corporation | System and method for controlling the opacity of multiple windows while browsing |
| US8255456B2 (en) | 2005-12-30 | 2012-08-28 | Citrix Systems, Inc. | System and method for performing flash caching of dynamically generated objects in a data communication network |
| US20060168533A1 (en) * | 2005-01-27 | 2006-07-27 | Microsoft Corporation | System and method for providing an indication of what part of a screen is being shared |
| DE102005007284B3 (de) * | 2005-02-17 | 2006-02-16 | Dräger Medical AG & Co. KGaA | Beatmungssystem |
| US20060190826A1 (en) * | 2005-02-22 | 2006-08-24 | Elaine Montgomery | Methods and apparatuses for dynamically sharing a portion of a display during a collaboration session |
| US8117560B1 (en) | 2005-02-22 | 2012-02-14 | Cisco Technology, Inc. | Methods and apparatuses for selectively removing sensitive information during a collaboration session |
| US7673255B2 (en) * | 2005-04-22 | 2010-03-02 | Microsoft Corporation | Interface and system for manipulating thumbnails of live windows in a window manager |
| US7847755B1 (en) * | 2005-05-23 | 2010-12-07 | Glance Networks | Method and apparatus for the identification and selective encoding of changed host display information |
| US20060271877A1 (en) * | 2005-05-25 | 2006-11-30 | Citrix Systems, Inc. | A system and methods for selective sharing of an application window |
| US8443040B2 (en) * | 2005-05-26 | 2013-05-14 | Citrix Systems Inc. | Method and system for synchronizing presentation of a dynamic data set to a plurality of nodes |
| US20080115073A1 (en) * | 2005-05-26 | 2008-05-15 | ERICKSON Shawn | Method and Apparatus for Remote Display of Drawn Content |
| US7533189B2 (en) | 2005-06-21 | 2009-05-12 | Microsoft Corporation | Enabling a graphical window modification command to be applied to a remotely generated graphical window |
| US7546374B2 (en) | 2005-08-05 | 2009-06-09 | Global Serv Inc. | Methods and arrangements for managing and maintaining a switch environment |
| US7689704B2 (en) | 2005-08-05 | 2010-03-30 | Global Serv Inc. | Methods and arrangements for managing automated switching |
| US7991916B2 (en) * | 2005-09-01 | 2011-08-02 | Microsoft Corporation | Per-user application rendering in the presence of application sharing |
| US7568005B2 (en) * | 2005-09-01 | 2009-07-28 | Microsoft Corporation | Enhanced application behavior in the presence of application sharing |
| US20070055941A1 (en) * | 2005-09-08 | 2007-03-08 | Bhakta Dharmesh N | Method and apparatus to selectively display portions of a shared desktop in a collaborative environment |
| US8527563B2 (en) * | 2005-09-12 | 2013-09-03 | Microsoft Corporation | Remoting redirection layer for graphics device interface |
| US7765483B2 (en) * | 2005-09-12 | 2010-07-27 | Microsoft Corporation | Filtering obscured data from a remote client display |
| US8191008B2 (en) * | 2005-10-03 | 2012-05-29 | Citrix Systems, Inc. | Simulating multi-monitor functionality in a single monitor environment |
| US20070083821A1 (en) * | 2005-10-07 | 2007-04-12 | International Business Machines Corporation | Creating viewports from selected regions of windows |
| US8146002B2 (en) * | 2005-12-08 | 2012-03-27 | International Business Machines Corporation | Screen sharing session with selective pop-ups |
| US7685238B2 (en) * | 2005-12-12 | 2010-03-23 | Nokia Corporation | Privacy protection on application sharing and data projector connectivity |
| KR100687886B1 (ko) * | 2005-12-28 | 2007-02-27 | 주식회사 알티캐스트 | 텔레비전 환경에서 사용자 화면에 디스플레이되는 팝업창관리 방법 |
| US7921184B2 (en) | 2005-12-30 | 2011-04-05 | Citrix Systems, Inc. | System and method for performing flash crowd caching of dynamically generated objects in a data communication network |
| US8301839B2 (en) | 2005-12-30 | 2012-10-30 | Citrix Systems, Inc. | System and method for performing granular invalidation of cached dynamically generated objects in a data communication network |
| US20070162860A1 (en) * | 2006-01-11 | 2007-07-12 | General Electric Company | Remote console for observing multiple workstations |
| US7768543B2 (en) * | 2006-03-09 | 2010-08-03 | Citrix Online, Llc | System and method for dynamically altering videoconference bit rates and layout based on participant activity |
| US8677252B2 (en) * | 2006-04-14 | 2014-03-18 | Citrix Online Llc | Systems and methods for displaying to a presenter visual feedback corresponding to visual changes received by viewers |
| US20070294626A1 (en) * | 2006-06-15 | 2007-12-20 | Microsoft Corporation | Controlling application sharing |
| US7747953B2 (en) * | 2006-06-15 | 2010-06-29 | Citrix Online, Llc | Methods and systems for receiving feedback from a scalable number of participants of an on-line presentation |
| JP4979281B2 (ja) * | 2006-06-19 | 2012-07-18 | キヤノン株式会社 | 画像処理装置及びその制御方法と画像処理システム |
| US20080010608A1 (en) * | 2006-07-05 | 2008-01-10 | Honeywell International, Inc. | Apparatus and methods for ensuring visibility of display window |
| US8185605B2 (en) * | 2006-07-18 | 2012-05-22 | Cisco Technology, Inc. | Methods and apparatuses for accessing an application on a remote device |
| US7791559B2 (en) * | 2006-09-14 | 2010-09-07 | Citrix Systems, Inc. | System and method for multiple display support in remote access software |
| US8054241B2 (en) | 2006-09-14 | 2011-11-08 | Citrix Systems, Inc. | Systems and methods for multiple display support in remote access software |
| US20080115067A1 (en) * | 2006-11-15 | 2008-05-15 | Mclean James G | Method and system for controlling security of a user interface in a computer system |
| US20080148160A1 (en) * | 2006-12-19 | 2008-06-19 | Holmes Carolyn J | Bitmap based application sharing accessibility framework |
| US20080163101A1 (en) * | 2007-01-03 | 2008-07-03 | Microsoft Corporation | Managing display windows on small screens |
| US8212805B1 (en) | 2007-01-05 | 2012-07-03 | Kenneth Banschick | System and method for parametric display of modular aesthetic designs |
| JP4522423B2 (ja) * | 2007-02-23 | 2010-08-11 | 三菱電機株式会社 | プラントの監視操作画像統合システムおよび監視操作画像統合方法 |
| US8473850B2 (en) * | 2007-05-24 | 2013-06-25 | Cisco Technology, Inc. | Methods and apparatuses for displaying and managing content during a collaboration session |
| US8214452B2 (en) * | 2007-07-30 | 2012-07-03 | Hewlett-Packard Development Company, L.P. | Monitoring of windows on computers |
| AU2008298533A1 (en) * | 2007-09-12 | 2009-03-19 | Citrix Systems, Inc. | Methods and systems for generating desktop environments providing integrated access to remote and local resources |
| US20090089453A1 (en) * | 2007-09-27 | 2009-04-02 | International Business Machines Corporation | Remote visualization of a graphics application |
| US20090096810A1 (en) * | 2007-10-11 | 2009-04-16 | Green Brian D | Method for selectively remoting windows |
| US8407605B2 (en) * | 2009-04-03 | 2013-03-26 | Social Communications Company | Application sharing |
| US8397168B2 (en) | 2008-04-05 | 2013-03-12 | Social Communications Company | Interfacing with a spatial virtual communication environment |
| US9600221B2 (en) * | 2007-11-01 | 2017-03-21 | Adobe Systems Incorporated | Multi-pane display capture, aggregation, and sharing |
| US20090132954A1 (en) * | 2007-11-20 | 2009-05-21 | Honeywell International Inc. | Apparatus and method for isolating problems in content loaded into a human-machine interface application |
| KR101434295B1 (ko) * | 2008-01-07 | 2014-09-25 | 삼성전자주식회사 | 디스플레이 장치에 표시된 화면의 일부분을 전자장치를통해 gui로 제공하는 방법 및 이를 적용한 전자장치 |
| US20090183087A1 (en) * | 2008-01-10 | 2009-07-16 | Binfire Corpoartion | Method and Apparatus for Real Time Image Transfer Between Two or More Computers |
| US7792904B2 (en) * | 2008-01-15 | 2010-09-07 | International Business Machines Corporation | Sharing material in a master-slave configuration using an instant messaging infrastructure |
| CA2700225A1 (en) | 2008-01-27 | 2009-07-30 | Citrix Systems, Inc. | Methods and systems for remoting three dimensional graphics |
| CN101539856B (zh) | 2008-03-17 | 2013-01-16 | 国际商业机器公司 | 在应用共享软件中恢复被遮挡窗口的方法和装置 |
| US8484291B1 (en) | 2008-04-02 | 2013-07-09 | Glance Networks, Inc. | Method and apparatus for selecting commands for transmission from an updated queue |
| KR101527993B1 (ko) | 2008-04-05 | 2015-06-10 | 소우셜 커뮤니케이션즈 컴퍼니 | 가상 환경과의 인터페이스 방법 |
| US20090300131A1 (en) * | 2008-05-27 | 2009-12-03 | Supportspace Ltd. | Simultaneous remote and local control of computer desktop |
| US8312384B2 (en) * | 2008-06-11 | 2012-11-13 | Honeywell International Inc. | Apparatus and method for fault-tolerant presentation of multiple graphical displays in a process control system |
| US8108777B2 (en) | 2008-08-11 | 2012-01-31 | Microsoft Corporation | Sections of a presentation having user-definable properties |
| US8429540B1 (en) * | 2008-10-10 | 2013-04-23 | Adobe Systems Incorporated | End user created collaborative and non-collaborative workspace application container system and method |
| US8661355B1 (en) * | 2008-10-10 | 2014-02-25 | Cisco Technology, Inc. | Distinguishing shared and non-shared applications during collaborative computing sessions |
| US20100131868A1 (en) * | 2008-11-26 | 2010-05-27 | Cisco Technology, Inc. | Limitedly sharing application windows in application sharing sessions |
| US9467518B2 (en) * | 2009-02-16 | 2016-10-11 | Communitake Technologies Ltd. | System, a method and a computer program product for automated remote control |
| US8966374B1 (en) | 2009-03-30 | 2015-02-24 | Glance Networks, Inc. | Method and apparatus for enabling participants to assume control over a presentation in a remote viewing session |
| US8185828B2 (en) * | 2009-04-08 | 2012-05-22 | Cisco Technology, Inc. | Efficiently sharing windows during online collaborative computing sessions |
| US8869239B2 (en) | 2009-04-15 | 2014-10-21 | Wyse Technology L.L.C. | Method and system for rendering composite view of an application |
| US9189124B2 (en) | 2009-04-15 | 2015-11-17 | Wyse Technology L.L.C. | Custom pointer features for touch-screen on remote client devices |
| US9448815B2 (en) | 2009-04-15 | 2016-09-20 | Wyse Technology L.L.C. | Server-side computing from a remote client device |
| US8238538B2 (en) | 2009-05-28 | 2012-08-07 | Comcast Cable Communications, Llc | Stateful home phone service |
| US8356256B2 (en) * | 2009-06-17 | 2013-01-15 | Brigham Young University | Presentation scratch spaces |
| JP2011070511A (ja) * | 2009-09-28 | 2011-04-07 | Sony Corp | 端末装置、サーバ装置、表示制御方法、及びプログラム |
| US8365075B2 (en) * | 2009-11-19 | 2013-01-29 | International Business Machines Corporation | Recording events in a virtual world |
| KR101617208B1 (ko) * | 2009-12-24 | 2016-05-02 | 삼성전자주식회사 | 텍스트 입력 및 편집 작업을 수행하는 입력 디바이스와 디스플레이장치 및 그 방법들 |
| GB201001728D0 (en) * | 2010-02-03 | 2010-03-24 | Skype Ltd | Screen sharing |
| US20110202854A1 (en) | 2010-02-17 | 2011-08-18 | International Business Machines Corporation | Metadata Capture for Screen Sharing |
| US20110219331A1 (en) * | 2010-03-02 | 2011-09-08 | International Business Machines Corporation | Window resize on remote desktops |
| US8677253B2 (en) * | 2010-05-25 | 2014-03-18 | International Business Machines Corporation | Replicating recorded actions across computer systems in a collaborative environment |
| GB2480825B (en) * | 2010-06-02 | 2013-10-09 | Displaylink Uk Ltd | Application windows and display devices |
| WO2011153623A2 (en) * | 2010-06-08 | 2011-12-15 | Aastra Technologies Limited | Method and system for video communication |
| WO2012024205A2 (en) | 2010-08-16 | 2012-02-23 | Social Communications Company | Promoting communicant interactions in a network communications environment |
| US20120066643A1 (en) * | 2010-09-09 | 2012-03-15 | Vizio, Inc. | System, method and apparatus for presenting a user interface |
| US10133361B2 (en) * | 2011-06-06 | 2018-11-20 | International Business Machines Corporation | Device driver-level approach for utilizing a single set of interface input devices for multiple computing devices |
| US8615159B2 (en) | 2011-09-20 | 2013-12-24 | Citrix Systems, Inc. | Methods and systems for cataloging text in a recorded session |
| US9367931B1 (en) | 2011-12-30 | 2016-06-14 | hopTo Inc. | Motion vectors for cross-platform display |
| US9454617B1 (en) | 2011-12-30 | 2016-09-27 | hopTo Inc. | Client rendering |
| CN104020968B (zh) * | 2013-02-28 | 2019-02-26 | 中兴通讯股份有限公司 | 控制共享屏幕显示的方法及装置 |
| KR20180080338A (ko) | 2012-07-19 | 2018-07-11 | 글랜스 네트웍스, 인크 | 다른 형태의 정보 공유를 통한 코브라우징의 통합 |
| US9304784B2 (en) * | 2012-08-09 | 2016-04-05 | Apple Inc. | Positionally informative remote display selection interface |
| EP2835952B1 (de) * | 2012-12-27 | 2026-01-21 | Huawei Technologies Co., Ltd. | Verfahren und vorrichtung zum teilen von informationen |
| US9977413B2 (en) | 2013-03-11 | 2018-05-22 | Honeywell International Inc. | Apparatus and method for managing open windows in a graphical display for a representation of a process system |
| US9430134B1 (en) | 2013-03-15 | 2016-08-30 | hopTo Inc. | Using split windows for cross-platform document views |
| US9292157B1 (en) | 2013-03-15 | 2016-03-22 | hopTo Inc. | Cloud-based usage of split windows for cross-platform document views |
| US20150012831A1 (en) * | 2013-07-08 | 2015-01-08 | Jacoh, Llc | Systems and methods for sharing graphical user interfaces between multiple computers |
| US9377925B2 (en) * | 2013-08-30 | 2016-06-28 | Citrix Systems, Inc. | GUI window with portal region for interacting with hidden interface elements |
| GB2518206B (en) * | 2013-09-13 | 2021-03-31 | Realvnc Ltd | System and method for remote computer control |
| US9813461B2 (en) * | 2013-11-04 | 2017-11-07 | Cisco Technology, Inc. | Viewing full screen applications in a sharing session |
| US9612730B2 (en) * | 2014-01-13 | 2017-04-04 | Cisco Technology, Inc. | Viewing different window content with different attendees in desktop sharing |
| EP3100155A4 (de) * | 2014-01-31 | 2018-06-06 | MultiTouch Oy | Anzeigeverwaltungslösung |
| JP2016053773A (ja) * | 2014-09-03 | 2016-04-14 | コニカミノルタ株式会社 | 共有表示システム及び共有表示制御プログラム並びに共有表示制御方法 |
| US10129313B2 (en) | 2015-02-10 | 2018-11-13 | Cisco Technology, Inc. | System, method, and logic for managing content in a virtual meeting |
| US10462194B2 (en) * | 2015-02-10 | 2019-10-29 | Cisco Technology, Inc. | Minimizing productivity loss in a collaborative sharing environment |
| WO2016200018A1 (en) * | 2015-06-08 | 2016-12-15 | Samsung Electronics Co., Ltd. | Method and apparatus for sharing application |
| US10747418B2 (en) * | 2015-07-24 | 2020-08-18 | Coscreen, Inc. | Frictionless interface for virtual collaboration, communication and cloud computing |
| JP6747025B2 (ja) * | 2016-04-13 | 2020-08-26 | セイコーエプソン株式会社 | 表示システム、表示装置、及び、表示システムの制御方法 |
| CN111163449B (zh) * | 2019-12-26 | 2021-10-12 | 维沃移动通信有限公司 | 一种应用分享方法、第一电子设备及计算机可读存储介质 |
| US11374990B2 (en) * | 2020-09-14 | 2022-06-28 | Box, Inc. | Saving an overlay annotation in association with a shared document |
| CN112559110B (zh) * | 2021-02-22 | 2021-05-25 | 全时云商务服务股份有限公司 | 一种基于windows系统的放大镜穿透窗口的方法 |
| US11507399B1 (en) | 2021-05-25 | 2022-11-22 | Cisco Technology, Inc. | Enabling screen-share in online meeting platform based on virtual desktop |
| CN114840351B (zh) * | 2022-03-18 | 2024-11-29 | 阿里巴巴(中国)有限公司 | 一种按键事件处理方法、装置、控制设备及可读存储介质 |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US554300A (en) | 1896-02-11 | parker | ||
| US5008853A (en) * | 1987-12-02 | 1991-04-16 | Xerox Corporation | Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment |
| US5220657A (en) * | 1987-12-02 | 1993-06-15 | Xerox Corporation | Updating local copy of shared data in a collaborative system |
| US4974173A (en) * | 1987-12-02 | 1990-11-27 | Xerox Corporation | Small-scale workspace representations indicating activities by other users |
| US5107443A (en) * | 1988-09-07 | 1992-04-21 | Xerox Corporation | Private regions within a shared workspace |
| JP3161725B2 (ja) * | 1990-11-21 | 2001-04-25 | 株式会社日立製作所 | ワークステーションおよび共同情報処理システム |
| US5241625A (en) * | 1990-11-27 | 1993-08-31 | Farallon Computing, Inc. | Screen image sharing among heterogeneous computers |
| AU2788692A (en) * | 1991-10-21 | 1993-05-21 | Timesavers Limited | Computer-based drawing apparatus |
| US5745711A (en) * | 1991-10-23 | 1998-04-28 | Hitachi, Ltd. | Display control method and apparatus for an electronic conference |
| JP3200932B2 (ja) * | 1992-03-24 | 2001-08-20 | 株式会社日立製作所 | 電子対話システム |
| US5392400A (en) * | 1992-07-02 | 1995-02-21 | International Business Machines Corporation | Collaborative computing system using pseudo server process to allow input from different server processes individually and sequence number map for maintaining received data sequence |
| US5608872A (en) * | 1993-03-19 | 1997-03-04 | Ncr Corporation | System for allowing all remote computers to perform annotation on an image and replicating the annotated image on the respective displays of other comuters |
| US5649104A (en) * | 1993-03-19 | 1997-07-15 | Ncr Corporation | System for allowing user of any computer to draw image over that generated by the host computer and replicating the drawn image to other computers |
| US5544300A (en) * | 1993-11-12 | 1996-08-06 | Intel Corporation | User interface for dynamically converting between a single top level window and multiple top level windows |
-
1995
- 1995-06-13 EP EP95924585A patent/EP0766847B1/de not_active Expired - Lifetime
- 1995-06-13 DE DE69523593T patent/DE69523593T2/de not_active Expired - Lifetime
- 1995-06-13 WO PCT/US1995/007488 patent/WO1995035535A1/en not_active Ceased
- 1995-06-13 AU AU29023/95A patent/AU2902395A/en not_active Abandoned
-
1997
- 1997-04-30 US US08/846,680 patent/US5758110A/en not_active Expired - Lifetime
- 1997-11-26 US US08/976,443 patent/US6329984B1/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| EP0766847A1 (de) | 1997-04-09 |
| DE69523593D1 (de) | 2001-12-06 |
| US6329984B1 (en) | 2001-12-11 |
| EP0766847B1 (de) | 2001-10-31 |
| US5758110A (en) | 1998-05-26 |
| AU2902395A (en) | 1996-01-15 |
| EP0766847A4 (de) | 1997-09-10 |
| WO1995035535A1 (en) | 1995-12-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69523593T2 (de) | Vorrichtung und verfahren zur aufteilung der anwendung in einer graphischen benutzerschnittstelle | |
| DE69526634T2 (de) | Verschiebungs- und Entladungsoperation in einer graphischen Benutzerschnittstelle | |
| DE3687215T2 (de) | Mehrfachprozessanzeigesystem mit bildfenstern. | |
| DE69620301T2 (de) | Fensterverwaltung | |
| DE69026647T2 (de) | Zoommodusbetriebsarten in einem Anzeigegerät | |
| DE3787127T2 (de) | Datenanzeigesystem. | |
| DE69026417T2 (de) | Hochentwickelte Anwenderschnittstelle | |
| DE69129684T2 (de) | Bildverarbeitung | |
| DE69328522T2 (de) | Verfahren und Vorrichtung zur Benutzung von Browsern für Sammlungen | |
| DE69030862T2 (de) | Automatisches Ikonerzeugungssystem | |
| DE60314563T2 (de) | Überlagerung mit elektronischer Tinte | |
| DE69615470T2 (de) | Darstellung von Beziehungen zwischen graphischen Objekten in einer Rechneranzeigevorrichtung | |
| DE69533568T2 (de) | Virtuelles Desk-Top-System und Verfahren dafür | |
| DE69425017T2 (de) | Verkapselung in Objekten von extrahierten Teilen von Dokumenten | |
| DE69522684T2 (de) | Statusanzeiger einer graphischen benutzerschnittstelle | |
| DE69327632T2 (de) | Mehrere graphische Benutzerschnittstellen auf einer einzigen Anzeige | |
| DE69720015T2 (de) | Emulator zur visualisierung von objektdateien und betriebsverfahren dazu | |
| DE69432698T2 (de) | Verfahren und Vorrichtung zur Aufnahme von Anmerkungen auf einen Anzeigeschirm ohne Überlappung | |
| DE69428647T2 (de) | Verfahren und Gerät zur Erzeugung eines zweiten gemischten Bildsignals im räumlichen Kontext eines ersten Bildsignals | |
| DE60003246T2 (de) | Software Schnittstelle | |
| DE69814155T2 (de) | System und verfahren zur virtuellen eingabe | |
| DE69432579T2 (de) | Verfahren und Vorrichtung zum Bearbeiten von Modell-Datenstrukturen eines Bildes, um ein für Menschen erkennbares Resultat zu erreichen | |
| DE68923492T2 (de) | Verfahren zum Zugriff auf ausgewählte Fenster in einem Mehrprozessbetriebssystem. | |
| DE69531269T2 (de) | Transportieren eines an einen Sichtpunkt innerhalb oder zwischen navigierbaren Arbeitsräumen gekoppelten Anzeigeobjektes | |
| DE69805990T2 (de) | Verfahren und vorrichtungen zum zugriff auf information und einheiten in mehreren arbeitsflächen |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition |