[go: up one dir, main page]

DE69523593T2 - Vorrichtung und verfahren zur aufteilung der anwendung in einer graphischen benutzerschnittstelle - Google Patents

Vorrichtung und verfahren zur aufteilung der anwendung in einer graphischen benutzerschnittstelle

Info

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
Application number
DE69523593T
Other languages
English (en)
Other versions
DE69523593D1 (de
Inventor
W Boss
G Hicks
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE69523593D1 publication Critical patent/DE69523593D1/de
Application granted granted Critical
Publication of DE69523593T2 publication Critical patent/DE69523593T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display 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

    HINTERGRUND DER ERFINDUNG 1. GEBIET DER ERFINDUNG
  • 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®.
  • 2. TECHNISCHER HINTERGRUND
  • 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.
  • KURZE ZUSAMMENFASSENDE DARSTELLUNG DER ERFINDUNG
  • 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.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 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.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • 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).
DE69523593T 1994-06-17 1995-06-13 Vorrichtung und verfahren zur aufteilung der anwendung in einer graphischen benutzerschnittstelle Expired - Lifetime DE69523593T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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