TW200807948A - Dragging and dropping objects between local and remote modules - Google Patents

Dragging and dropping objects between local and remote modules Download PDF

Info

Publication number
TW200807948A
TW200807948A TW096112370A TW96112370A TW200807948A TW 200807948 A TW200807948 A TW 200807948A TW 096112370 A TW096112370 A TW 096112370A TW 96112370 A TW96112370 A TW 96112370A TW 200807948 A TW200807948 A TW 200807948A
Authority
TW
Taiwan
Prior art keywords
drop
drag
application
component
server
Prior art date
Application number
TW096112370A
Other languages
English (en)
Inventor
Nadim Y Abdo
Elton Saul
Carl M Carter-Schwendler
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of TW200807948A publication Critical patent/TW200807948A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet

Description

200807948 九、發明說明: 【發明所屬之技術領域】 本發明係有關於在本地及遠端模組間拖放物件的方 法0 【先前技術】
電腦系統與相關科技會影響社會的許多層面。實際 上,電腦系統處理資訊的能力已經轉變了我們生活及工作 的方式。現在電腦系統經常執行在電腦系統發展之前人工 執行的多種工作(例如文字處理、排程及資料庫管理)。基 本上,為了執行這些多種工作,一電腦系統包括一些對應 的應用。例如,為了執行文字處理,——電腦系統可以包括 一文字處理應用程式,為了進行試算,一電腦系統可包括 一試算表應用等等。 在一獨立的運算環境中,其通常可以在一電腦系統中 執行不同工作之間的應用程式之間移動物件。例如,有用 的是移動在一文字處理應用程式中產生的一部份文字到一 簡報程式中做為一圖像或圖形之描述文字。為了能夠在應 用程式之間移動物件,一些電腦系統包括一部份記憶體(例 如剪貼薄),成為一種常用方法在電腦系統上的應用程式之 間構成介面。因此,——應用程式可與該部份的記憶體聯繫, 以儲存一物件,然後另一個應用程式可與該部份的記憶體 聯繫來取得該物件。 因此,應用程式(甚至那些不能夠直接相容性地交換物 件)可經由該部份的記憶體交換物件。 許多獨立的運算環境亦可包括更方便的能力來使用輸 5
200807948 入裝置結合視覺提示來直接地在相容的應用程式之丨 物件。一種直接在應用程式之間直接轉移的常用機制 曳與放下_1。為了進行拖矣與放下,一使用者可辨識巧 用程式中的一物件(例如一部份文字、圖像或一試算4 格)。例如,該使用者可利用滑鼠來反白一部份文字, 覺提示,例如背光,即可用於指示出給該使用者該3 被選擇β 該使用者操縱輸入裝置來選擇所辨識的物件。例 該使用者操縱滑鼠移動一游標到所辨識的文字上,然 下滑鼠左鍵。然後使用者再操縱輸入裝置移動該物件 一個應用程式。例如,當保持滑鼠左鍵被按下時,該 者可操縱滑鼠移動(拖曳)游標到其它應用程式的上方 旦位於其它應用程式上方,該使用者可以釋放滑鼠左 釋放滑鼠按鍵的動作造成該物件被轉移(或放下 應用程式。 以 形成有線及無線電腦網路,在其中書 裳置可傳遞電子資料。因此,可在一 工作(例如語音通信、存取電子郵件 及列印文件)包括透過有線及/或無矣 系統及/或其它電子裝置之間的通信 化%境中,其通常有用地是能夠在㈣ 式之間移動物件,其中一些應用程3 用程式則在遠端執行,例如在一終多 服器為一種電腦系統,其能夠維持1 3轉移 為「拖 :一應 -儲存 一視 字已 如, 後按 到另 使用 Ο — 鍵。 其它 電子 腦系 腦系 制家 腦網 如交 不同 本地 服器 客戶 裝置,以同時 統與其它電子 統執行的許多 電、網頁瀏覽 路在一些電腦 換電子訊息)。 在一網路 工作之應用程 執行,其它應 中。一終蠕伺 6 200807948 端電腦系統在遠端執行的應用程式。輸入係在 ^ ^ 一'客戶 山 腦系統處輸入,並在一網路上(使用基於1Τυ τ τ % 端電 •1 2 〇系列 協定之通信協定,例如像是遠端桌面通訊協定” 1的
Remote Desktop Protocol),傳送到位於該終敏义 ^ %伺服器之虛 用程式。該應用程式即處理該輸入’如同該輪 b 應 端伺服器輸入一般。該應用程式回應於所接吹 W終 a的輪' t 生輸出,且該輸出於網路上傳遞(例如亦為、 屋 • z U為主 定)到該客戶端電腦系統。該客戶端電腦系统 呵協 玉現該輪Φ 料。因此,當處理實際上是發生在該終端伺 。 ®貝 翁時,齡· λ 之接收與輸出之呈現都在客戶端電腦系統β 物入 為了能夠在本地與遠端應用程式之間蒋 物件,此 網路化電腦系統包括了類似用於獨立環境 些 能。在電腦系統中由應用程式以一常用的方式配、薄功 的記憶體(或剪貼簿)並可進行聯繫。因此,一本置 4份 式可與該部份的記憶體聯繫,以儲存_物彳,鈇:應:程 應用程式可與該部份的記憶體聯繫來取得該物2〗,—遠端 然。因此’應用程式(甚至那些在不同電 反之亦 可透過該部份的記憶體交換物件。 《統上執行者) 但是’許多網路化的電腦系統缺乏 在本地與遠端雍田和j 乃使的犯力來 說,客戶拖放物件’反之亦然。也就是 碥/、伺服器終端伺服器組件基本上 器會期上轉移拖…下物件,…二: :器组二=來進行一拖…下轉移1如,-伺 端系統)中…::決定超過一遠端桌面視窗(在-客户 作,或是⑺乳標的移動是否關連於一拖髮與放下操 果使用者為了其它的原因而移動滑鼠。 7 200807948 【發明内容】 本發明提供用於在本地及遠端模組之間拖放物 法、系統及電腦程式產品,在一些具體實施例中, 由本地應用程式拖放到一遠端應用程式。一客戶 偵測到一桌面視窗游標已經由一遠端應用程式之一 式視窗的邊界之外側移動到其内部。該客戶端組件 放下通知,代表一等待中的拖放操作。該放下通知 拖放物件要被轉移到該遠端的應用程式。該客戶端 終端伺服器會期當中傳送一請求來轉移該拖放物 及該桌面視窗游標的座標位置到一伺服器電腦系統 一伺服器組件接收該請求,並轉送一拖放物件 知到該遠端的應用程式。該伺服器組件代表該本地 式回應於接收到轉移一拖放物件之請求而做為一代 放下來源,其中包括接收來自該遠端應用程式之拖 之請求。該伺服器組件於該終端伺服器會期中轉送 物件之請求到該客戶端組件。 該客戶端組件於該終端伺服器會期中接收來自 器電腦系統之拖放物件之請求。該客戶端組件代表 的應用程式做為一代理主機放下目標,其中包括轉 放物件之請求到該本地應用程式,並接收來自該本 程式之拖放物件。該客戶端組件於該終端伺服器會 送該拖放物件到該伺服器電腦系統。 該伺服器組件於該終端伺服器會期中接收來自 端組件之拖放物件。該伺服器組件代表該本地應用 為-代理主機玫下來源,其中包括傳送該拖放物件 件之方 一物件 端組件 應用程 接收一 代表一 組件於 件,以 〇 轉移通 應用程 理主機 放物件 該拖放 該伺服 該遠端 送該拖 地應用 期中傳 該客戶 程式做 到該遠 8 200807948 端的應用程式。 在其它具體實施例中,一物件由一遠端的應用程式 放到一本地應用程式。一客戶端組件偵測到一桌面視窗 標已經一遠端應用程式之邊界内部移動到其外側。該客 端組件在該終端伺服器會期中傳送一訊息到該伺服器 件。該訊息指示該伺服器組件該桌面視窗游標已經由該 端的應用程式之應用程式視窗的邊界内部移動到其外側 該伺服器組件在該終端伺服器會期中接收來自該客 端組件之訊息。該伺服器組件決定了該桌面視窗游標之 動係關連於一等待中的拖放操作。 該客戶端組件代表該遠端應用程式做為一代理主機 下來源’其中包括接收來自該本地應用程式之一拖放物 之查s旬。該查詢代表在該本地應用程式中的一放下通知 以指示該拖放物件被轉移到該本地應用程式。該客戶端 件於該終端伺服器會期中傳送該拖放物件之請求到該伺 器組件。 該伺服器組件接收該請求。該伺服器組件代表該本 應用程式做為一代理主機放下目標,其中包括轉送該拖 物件之請求到該遠端的應用程式,並接收來自該遠端的 用程式之拖放物件。該伺服器組件於該終端伺服器會期 傳送該拖玫物件到該客戶端電腦系統。 θ
該客戶端組件接收該拖放物件。該客戶端組件代表 遠端的應用程式做為一代理主機放下來源,其中包括傳 該拖放物件到該本地應用程式。 I 此内容說明係用來介紹在一簡化型式中選出的觀念 其在以下的詳細說明中會進一步說明。此内容說明並^ 拖 游 戶 組 遠 Ο 戶 移 放 件 , 組 服 地 放 應 中 該 送 要 9 200807948 徵,也並 提出所主張之主題事項的辨識關鍵特徵或基本特 非要做為輔助決定所主張之主題事項的範圍。 附加的特徵與好處將在以下的說明當中提出而部份 將可由說明當中瞭解,或可由實施此處之教示中獲采。I 發明的特徵與好處將藉由在附屬中請專利範圍中=指出 的元件及組合進行瞭解與取得。本發明的特徵將藉由2下 的說明及附屬申請專利範圍更為瞭解,或可由此下提出之
本發明的實施而得知。 【實施方式】 本發明提供了在本地及遠端模組之間拖放物件之方 法、系統與電腦程式產品。在一些具體實施例中,一物件 由一本地的應用程式拖放到一遠端應用程式。一客戶端組 件偵測到一桌面視窗游標已經由一遠端應用程式之一應用 程式視窗的邊界的外側移動到其内部。該客戶端組件接收 一放下通知,代表一等待中的拖放操作。該放下通知代表 一拖放物件要被轉移到該遠端的應用程式^該客戶端組件 於一終端伺服器會期當中傳送一請求來轉移該拖放物件, 以及該桌面視窗游標的座標位置到一伺服器電腦系統。 一伺服器組件接收該請求,並轉送一拖放物件轉移通 知到該遠端的應用程式。該伺服器組件代表該本地應用程 式回應於接收到轉移一拖放物件之請求而做為一代理主機 放下來源’其中包括接收來自該遠端應用程式之拖放物件 之請求。該饲服器組件於該終端伺服器會期中轉送該拖放 物件之請求到該客戶端組件。 該客戶端組件於該終端伺服器會期中接收來自該伺服 10 200807948
物件之請 代理主機 本地應用 該客戶端 伺服器電 於該終端 。該伺服 來源,其 施例中, 式。一客 用程式之 伺服器會 伺服器組 用程式視 在該終端 伺服器組 中的拖放 代表該遠 接收來自 表在該本 被轉移到 會期中傳 接收該請 理主機放 戶端組件 ,其中包 接收來自 終端伺服 期中接收 表該本地 送該拖放 一遠端的 债測到一 1 移動到其 一訊息到 視窗游標 内部移動 期中接收 該桌面視 式做為一 用程式之 式中的一 用程式。 物件之請 服器組件 其中包括 器電腦系 的應用程 放物件之 程式之拖 送該拖放 該伺 端組件之 為一代理 端的應用 在其 放到一本 標已經由 戶端組件 件。該訊 端的應用 該伺 端組件之 動係關連 該客 下來源, 之查詢。 以指示該 件於該終 器組件。 該词 應用程式 統之拖放 式做為一 請求到該 放物件。 物件到該 服器組件 拖放物件 主機放下 程式。 它具體實 地應用程 一遠端應 在該終端 息指示該 程式之應 服器組件 訊息。該 於一等待 戶端組件 其中包括 該查詢代 拖放物件 端伺服器 服器組件 ί故為—代^ 求。該客 玫下目標 程式,並 組件於該 腦系統。 伺服器會 器組件代 中包括傳 ~物件由 戶端組件 邊界内部 期中傳送 件該桌面 窗的邊界 伺服器會 件決定了 操作。 端應用程 該本地應 地應用程 該本地應 送該拖放 求。該伺 下目標, 代表該遠 括轉送該 該本地應 器會期中 來自該客 應用程式 物件到該 應用程式 桌面視窗 外側。該 該伺服器 已經由該 到其外側 來自該客 窗游標之 代理主機 一拖放物 放下通知 該客戶端 求到該伺 代表該本 轉送該拖 端 拖 用 傳 戶 做 遠 拖 游 客 組 遠 〇 戶 移 放 件 , 組 服 地 放 11 200807948 的應用程式’並接收來自該遠端的應 該伺服器組件於該終端甸服器會期中 客戶端電腦系統。 物件之請求到該遠端 用程式之拖放物件。 傳送該拖放物件到該 端組件代表該 其中包括傳送 該客戶端組件接收該拖放物件。該客戶 遠端的應用程式做為一代理主機放下來源, 該拖放物件到該本地應用程式。 本發明的具體實施例可包含一特殃曰从★ 2 Φ , A . A , 特殊目的或通用目的之
味”中i括電腦硬體,如以下的詳細說明。在本發明 :圍内之具體實施例亦包括電腦可讀取媒體,肖於承載或 匕含健存於其中的電腦可執行指令或資料結構。這種電腦 :讀取媒體可為任何可用的媒體,其可由一通用目的或特 殊目的電腦進行存取。藉由範例(而非限制性),電腦可續 取媒體可包含電腦可讀取儲存媒體,例如RAM,r〇m eEPr〇m,cd_r〇m或其它光碟儲存磁碟儲存或其它磁性 儲存裝置,或任何可用電腦可執行指令或資料結構型式儲 存所想要的程式碼手段之其它媒體,並可由—通用目的或 特殊目的電腦進行存取。 在此說明及以下的申請專利範圍中,「網路」係定義為 或夕個資料鏈結,其能夠在電腦系統及/或模組之間傳送 電=資料。當資訊在一網路或其它通信連接(硬體連線、無 線或硬體連線或無線之組合)之上傳送或提供給一電腦 時’該電腦可適當地看待該連接為一電腦可讀取媒體。因 此’籍由範例(並非限制),電腦可讀取媒體可包含一網路 或資料鏈結,其可用於以電腦可執行指令或資料結構的型 气承戴或儲存所想要的程式碼手段,並可由一通用目的或 特殊目的電腦進行存取。 12 200807948 電腦可執行指令包含例如指令 用目的電腦、特殊目的電腦目二:,其可使得^通 個功能或功能群組。該 —’ 的處理裝置來執行某 中間格式指令,例如組厶达I執仃扣T例如可為二元化、 〇 言或甚至条 事項已經以特定於結構化特徵及/或方:蝎。$然該主 描述,其應瞭解到在附屬申笋 性動作的語言來 件並不必要地限制於上述2定義的主題事 的特徵與動作係以實施 —飞動作。而是所描述 示。 〜4申請專利範固之範例型式來揭 本技藝專業人士將可瞭解本發 腦系統組態之網路運算俨产 實施於具有多種電 腦、膝上型電腦、掌上=個人電腦、桌上型電 理器或可程式化消費電早"夕埯理器系統、應用微處 電腦、行動電話、。D:子: = :Γ、微電腦 '主機型 施於分散式系統環境中,其中透過—:路者所鏈本:…實 鏈結之組合)之本地及、土破1 或硬體連線及無線資料 散式系統環地程及 體健存裝置中 模組可以同時位於本地及遠端記憶 在本說明及以下的申請專利範圍中,—「放 係定==拖放操作的内容中用於接收一物件的模:。」 在本說明及以下的申請專利範圍中,— 係定義成在一拖放操作的内容中用於產生-物件的模:/ 下目下的申請專利範圍中,-「代理主機放 係疋義成關連於與放下來源相同會期之—模组, 並做為該放下來源與該放下目標之間的中介。一代理主機 13 200807948 放下目標可模擬一實際放下目標之功能,以在一終端伺服 器會期中進行一拖放操作。在一些具體實施例中,一代理 主機放下目標為一終端伺服器會期組件,其可模擬放下目 標功能,並參與一終端伺服器會期之管理。
在本說明及以下的申請專利範圍中,一「代理主機放 下來源」係定義成關連於與放下目標相同會期之一模組, 並做為該放下來源與該放下目標之間的中介。一代理主機 放下來源可模擬一實際放下來源之功能,以在一終端伺服 器會期中進行一拖放操作。在一些具體實施例中,一代理 主機放下來源為一終端伺服器會期組件,其可模擬放下來 源功能,並參與一終端伺服器會期之管理。 在本說明及以下的申請專利範圍中,透過網路通信進 行拖放操作而交換的訊息通常定義如下: START一DRAG一DROP訊息:代表由一代理主機放下目 標到一代理主機放下來源以啟始一拖放模組迴圈。該訊息 可包括所提供之格式資料的名稱及ID。 START一DRAG一DROP一RESPONSE 訊息:來自一代理 主機放下來源表示該拖放模組迴圈已經對該放下目標開始 進行。 UPDATE一DROP一EFFECT訊息:代表一放下目標之更 新的放下效應。也就是說,該放下目標將要對該資料進行 什麼處理。 STOP —DRAG—DROP訊息··代表由該代理主機放下目 標到該代理主機放下來源以停止該拖放操作。 DO —DRAG-DROP訊息··代表由該代理主機放下目標 到該代理主機放下來源以啟始一放下操作。Drop訊息代表 14 200807948 了透過網路通信傳送之一 D〇 —DRAG —DROP钒息,可經由 物件鏈結及嵌入(0LE; Object Linking And Embedding) 轉送到該放下目標。該放下目標回應於一 D r 〇 p訊息即請 求 代理主機資料物件,並呼叫一 GetData方法。 DO一DRAG一DROP —RESPONSE訊息:來自該代理主機 放下來源而代表該拖放操作已經完成(例如回應於 DO一DRAG一DROP訊息而已傳送)。 FORMAT一DATA一REQUEST訊息:當資料由該放下目
標請求時,由一代理主機資料物件傳送到該代理主機放下 目標。 FORMAT-DATA-RESPONSE訊息:由一代理主機放下 目標傳送到該代理主機資料物件,並包含任何所請求的資 料。 其它訊息亦可透過一網路交換,以進行拖放操作。 第1 A圖為可進行由一本地模組拖放一物件到一遠端 模組之範例性電腦架構100。電腦系統1 〇 1 (如一客戶端) 及電腦系統111 (例如一伺服器)。電腦系統1 ο 1與u i可連 接到一網路,例如像是一區域網路(LAN)、一廣域網路 (WAN)或甚至網際網路。因此,於電腦系統ιοί與111處 多種組件以及其它連接到該網路之組件皆可彼此接收資料 及傳送資料。藉此,該等組件可產生訊息相關的資料,旅 在網路上交換訊息相關的資料(例如網際網路協定(ZP)數 據(datagram)及其它利用IP數據之較高層協定,像是傳輸 控制通訊協定(TCP; Transmission Control Protocol),遠端 桌面通訊協定(RDP ; Remote Desktop Protocol),超文字傳 輸通訊協定(HTTP ;Hypertext Transfer Protocol),簡易郵 15 200807948 件傳輸通訊協定(SMTP ; Simple Mail Transfer Protocol), 獨立計算結構(ICA ; Independent Computing Architecture) 等。
如上所述,電腦系統101包括應用程式102、客戶端 模組1 06、及使用者介面1 04,而電腦系統1 1 1包括應用程 式11 2、及伺服器模組11 6。電腦系統1 〇 1與電腦系統111 彼此透過在一網路上建立的一終端伺服器會期 1 3 1通信 (例如一 RDP會期)。客戶端組件106與伺服器組件1 16可 交互運作來進行終端伺服器1 3 1之管理。例如,傳送在使 用者介面1 04接收的使用者輸入由電腦系統1 0 1到電腦系 統Π 1、轉送使用者輸入到電腦系統1 1 1處適當的遠端應 用程式、接收來自電腦系統i丨丨上遠端應用程式之輸出、 傳送來自電腦系統111之遠端應用程式輸出到電腦系統 101’並於使用者介面104處輸出遠端應用程式輸出。因 此’對於遠端應用程式(由使用者介面104之角度),輸入 係在電腦系統1 〇 1處被接收及呈現輸出,而其處理實際上 係發生在電腦系統111。 虛擬頻道可用於外部的終端伺服器會期功能(例如藉 由延伸RDP協定),其允許應用程式在一終端伺服器會期 上傳送應用程式特定的資料(例如RDP連接)。因此,除了 輸入及輸出資料,其它種類的資料亦可在虛擬頻道上交 換。例如’虛擬頻道1 2 1可為一種頻道用於由電腦系統1 0 1 傳送拖放物件到電腦系統11 1。虛擬頻道1 2 1町連接在客 戶端組件1 〇 6處之一拖放執行緒到位在客戶端伺服器組件 11 6處之一拖放執行緒,反之亦然。藉此,客戶端組件1 〇 6 與飼服器組件11 6可在位於電腦系統1 〇 1與電腦系統111 16 200807948 處適當的應用程式之間的虛擬頻道121上交互運作來拖放 資料。 第1 B圖為由一本地模組拖放一物件到一遠端模組之 操作的範例性桌面視窗123。如所示,桌面視窗為使 用者介面104的一部份,並包括應用程式視窗i〇2W及遠 端桌面113。應用程式視窗102冒對應於應用程式1〇2,並 用於接收應用程式102之使用者輸入,並呈現來自應用程 式102的輪出給一使用者。遠端桌面113包括應用程式視 窗,其用於位於電腦系統1U遠處的任何應用程式。例如, 應用程式視f 112W對應於應用㈣112,並用於接收應 用程式Π2之使用者輸入,並呈現來自應用程式ιΐ2之輸 出給一使用者。 第2A-2C圖為用於由一本地模組拖放_物件到一遠端 :級之範例性方法200之流程圖。該方法2〇〇將參考電腦 架構1 0 0中的組件及資料加以說明。 方法200包括由一本地應用程式視窗中選擇一拖放物 牛之動作(動作201)。例如,電腦系統1〇1的—使用者可 在應用程式視窗1G2W内選擇物件126。物件126虛擬地 可為電腦系統處任何可選擇的物件’例如像是文字的一部 份、圖形、或聲音資料,試算表儲存格、冑料庫輸入項、 一電子訊息等。 :法200包括修正一桌面視窗游標的動作以視覺上代 表…-拖放物件(動作202)。例如,在選擇物件126 ,後’游#⑴可被修正來包括放下效果指標”4。放下 效果可包括任何的移動、複製、鏈社 盡本 ^ y 繾、、Ό 產生一超鏈結,並 產生一捷判該選擇的物件。游#⑴用不同方式修正或 17
200807948 補充來代表不同的放下效應。例如,放下效 顯示來代表該放下效果為複製。 一放下效果可由一應用程式可用之放下 當游標133於桌面視窗123之不同視窗之間 現的放下效果指標可以改變。例如,當游標 程式視窗102 W之邊界内時,可以顯示應用 預設的放下效果(例如複製)。當游標1 3 3於 視窗的邊界之外時,可以顯示桌面視窗123 下效果(例如該作業系統)。以桌面視窗1 2 3 能可能根本不支援,因此游標1 3 3在當位在福 之此區域内時即轉換成「不允許」之符號。 式視窗112W時,可以顯示應用程式1 12之 效果(例如複製)。 方法200包括一個動作,其中一客戶端 桌面視窗游標已經由一遠端應用程式的一應 邊界的外側移動到其内部(動作 203)。例如 1 〇6可偵測到游標1 3 3已經由應用程式視窗 的外側移動到其内部。(第1 B圖中的虛線代 應用程式視窗102W經由桌面視窗123與遠 應用程式視窗112W之路徑)。 動作201,202, 203可包含在設定一拖龙 由一本地應用程式轉移一物件到一遠端應用 1 3 4停留在應用程式視窗n 2 W時,客戶端 起一 DragEnter 方法。透過一 DragEnter 方 件1〇6(做為一放下目標代理主機)可指示 1〇2如果其可接受物件126。一 DragEnter方 果指標134 < 效果中選出。 轉換時,所呈 1 3 3位在應用 程式102之〆 任何應用輕式 之一預設的放 為例,拖放功 L用者介面1 04 於進入應用程 一預設的放下 經件偵測到該 用程式視窗之 ,客戶端組件 112W之邊界 表游標1 3 3由 端桌面1 1 3到 I操作當中,以 程式。當游標 組件106可引 法’客戶端組 回給應用程式 法之參數可為 18 200807948 以下的格式: HRESULT DragEnter( IDataObject* pDataObject, // 來源資料物件(例如 物件126) DWORD POINTL DWORD* dwKeyState, "鍵盤及滑鼠狀態 //游標位置 pdwDropEffect //所得到的放下效果
經由一 DragEnter方法,一目標(或代理主機目標)可 代表是否其藉由更新該pdwDropEffect參數將可接受一可 能的放下。此參數初始時可包含該來源所允許之放下效果 的組合。所得到的放下效果係部份基於由該資料物件所供 應的格式,並亦可受到目前鍵盤及滑鼠狀態的影響,且可 能甚至是滑鼠位置。 然後’客戶端組件1 06可在虛擬頻道i 2 1 (如一剪貼薄 虛擬頻道)上傳送一 START一DRAG一DROP訊息到伺服器組 件116。該START —DRAG —DROP訊息可包括描述物件126 之内容的格式名稱,及應用程式1〇2所允許的放下效杲。 在已經傳送此訊息之後,位在電腦系統1 〇丨處的一輸入處 理程式即被通知(例如透過一作業系統事件)已經開始了一 拖放操作。該輸入處理程式回應於此事件即停止鍵盤掛鉤 及輸入同步化。為了確定格式化資料的請求可於發生放下 之刖滿足’該物件1 2 6可被儲存。 當START一DRAG一DROP訊息於伺服器組件1 16處接收 19 200807948
時’描述物件126之内容的袼式名稱與應用程式1〇2可允 許的放下效果皆被擷取出來。依照回應即產生一代理主機 資料物件1 3 6及伺服器組件1 1 6的一個視窗。該視窗可為 透明(或是隱藏),並可為很小的尺寸(例如1 X 1像素大 小)。該視窗被給定焦點,並提高到z-順序的最上方。因此, 輸入可被導引(剪切)到該視窗來指示該輸入到伺服器組件 1 1 6。因此,輸入可被導引到伺服器組件1 1 6,而不會明顯 地改變桌面視窗1 2 3。例如1 X 1透明視窗可能無法為一使 用者察覺到。 為了回應所接收到的滑鼠向下事件,伺服器組件 116(該代理主機放下來源)即引起一 DoDragDrop方法。 DoDragDrop方法之參數可為以下的格式: HRESULT DoDragDrop( IDataObj ect* pDataObject, //來源資料物件 IDropSource* pDropSource, //放下來源介面 DWORD dwAllowedDropEffects,//所允許的放下效果 DWORD* pdwFinalDropEffect "最後的放下效果 一 DoDragDrop方法可包含在用於進行一拖放操作之 模式迴圈中❹概言之,為了開始該拖放操作,一組件利用 適當的參數呼叫 DoDragDrop。DoDragDrop使用一 SetCapture API補捉該滑鼠,然後進入一迴圈。 為了轉送輸入到伺服器組件11 6,一輸入處理程式傳 送一滑鼠向下事件到客戶端組件i 06,且因為該滑鼠已經 20 200807948 被剪切到伺服器組件丨丨6之視窗(可能是小型及透明的), 該α乳向下事件在傳送到伺服器組件11 6的输入狩列後結 束。接收到該滑鼠向下事件可用於設置一物件鏈結及嵌入 (〇LE ; 〇bjeet Linking and Embedding)隱藏視窗來接收系 統内滑鼠事件訊息。接收該START_DRAG_DR〇p_ RESPONSE亦會觸發切換到一布林旗標,其中客戶端組件 1 06之方法在執行之前會檢查。此即當伺服器組件丨丨6為 啟動時傳送訊息之可能性。 當游標1 3 3被拖曳到應用程式視窗1丨2 w之上時,即 呼叫一 DragOver方法。DoDragDrop方法之參數可為以下 的格式: HRESULT Drag0ver( DWORD dwKeyState, "鍵盤及滑鼠狀態 POINTL pt, "游標位置 DWORD* pdwDropEffect "所得到的放下效果
於呼叫DragOver目前的滑鼠位置期間,可檢查滑鼠按 鍵狀態及鍵盤狀態的變化。如果偵測到變化,客戶端組件 1 06之輸入處理程式傳送一適當的滑鼠移動,滑鼠按紐上 或下,或是鍵盤按鈕上或下的訊息到伺服器組件Η 6。 伺服器組件1 66(該代理主機放下來源)可連續地呼叫 一 QueryContinueDrag 方法。QueryC〇ntinueDrag 方法之參 數可為以下的格式: 21 200807948 HRESULT QueryContinueDrag( BOOL fEscapePressed,"如果按下ESC鍵時為真 DWORD dwKeyState "鍵盤及滑鼠狀態
QueryContinueDrag方法可用於通知目前鍵盤及滑鼠 狀態的該放下來源(或代理主機放下來源)。根據此輸入, 該放下來源(或代理主機放下來源)可決定繼續拖戈、取消 拖曳、或允許進行放下。該放下來源透過HRESULT回傳 值來指示其決定。例如,S — OK 可代表繼續, DRAGDROP — S —CANCEL 可代 表取消 ,而 DRAGDROP一S — DROP可代表允許該放下。當游標133停留 在應用程式視窗112W之上時,因為尚未發生一取消或放 下操作,QueryContinueDrag 可回傳 S — OK。 伺服器組件116亦可引起一 GiveFeedback方法來傳回 應用程式1 12之放下效果(移動、複製、鏈結等)到客戶端 組件106。一 GiveFeedback方法之參數可為以下的格式:
HRESULT GiveFeedback( DWORD dwDropEffect "目前目標(例如應用 程式112) //放下效果 概言之,一 GiveFeedback方法通知目前放下效果之一 放下來源(或代理主機放下來源),所以其可提供適當的視 覺回授。該視覺回授透過HRESULT回傳值來表示。s 〇κ 22 200807948 數值代表該來源適當地設定游標,而 DRAGDROP一S —USEDEFAULTCURSORS 代表該來源可滿足 於使用OLE所提供的預設游標。
當祠服器組件116呼叫GiveFeedback時,應用程式 112 之放下效果係由伺服器組件 116 在一 UPDATE-DROP一EFFECT訊息中於虛擬頻道121上傳送到 客戶端組件1 0 6。客戶端組件1 〇 6儲存該放下效果,並傳 回該放下效果到應用程式1 02(例如藉由引起·一 DragOver 方法)。 基於位在電腦系統1 〇 1之滑鼠與鍵盤狀態,應用程式 102最終可決定取消該拖曳操作或允許發生一放下。因此 在一些具體實施例中,即取消一拖曳操作(且因此不會發生 放下)。如果發生一取消,客戶端組件1〇6(該代理主機放 下目標)即透過0^§1^&乂6方法來通知,例如其格式為: HRESULT DragLeave(); 伺服器組件116之一事件處理程式可儲存在一 STOP一DRAG —DROP訊息中所代表的該取消結果。因此, 下一次呼叫 QueryC〇ntinueDrag 時其傳回 dragdr〇P —§ — CANCEL ’造成該拖曳操作在電腦系統丨丨丨中結束。 在其它具體實施例中,發生一放下。因此,方法2〇〇 包括啟始一放下操作的動作(動作2〇4)。例如,應用程式 1 02可啟始一放下操作以轉移物件丨26到應用程式丨1 2。一 使用者可操縱一輸入裝置來造成啟始一放下。例如,一使 用者在當游標133停留在應用程式視窗n2W之上時釋放 23 200807948 一滑鼠的滑鼠左鍵》 万法谓㈣—動作來接收-放下通知,π表-拖放 物件要被轉移到一遠端應用程式(動作2〇5卜例如, 端組件1 06可接收一放下通知,Α 八代表物件1 26要轉移到 應用程式112做為等待中拖夷與放下操作的一部份。方法 2〇〇包括-動#,其傳送—請求來轉移該拖故物件以及該 桌面游標視窗的座標位置(動作2〇6)。例如,關於接收該 放下通知,客戶端組件106可傳送一 d〇_DRag DR〇p訊
息到伺服器組件116,以請求轉移物件126到應用程式 112。該DO_DRAG_DR〇P訊息可在虛擬頻冑121上傳送, 並可包括游標1 3 3的座標位置。 ' 方法200包括一動作,#接收一請求來轉移該拖放物 件以及該桌面視窗游標的座標位置(動作2〇7)。例如,伺 服器組件m可接收該DO—DRAG-DR〇p訊息以請求轉移 物件126到應用程式112e t D〇—DRAG—DR〇p訊息抵達 飼服器組# 116時,於事件處理程式處儲存_表示有發生 一放下。因此’當接著呼叫QueryC〇ntinueD^g時, QueryContinueDirag 傳回 DRAGDR〇P s — DR〇p (代表發生一 放下)。但是,於傳回此數值之前,一 GIVE_F〇cus訊声、 可被傳送到客戶端組件1 〇6。 w 在接收該GIVE —FOCUS訊息時,客戶端組件1〇6可藉 由呼叫SetForegroundWindow API來取得輸入焦點。 曰 伺服崙組件116亦可在虛擬頻道121上傳送 DO—DRAG一DROP—RESP〇NSe 訊息到客戶端組件 1〇6。 ^ 方法200包括一動作來轉送該拖放物件轉移通知到該 相對應應用程式(動作2〇8)。例如,伺服器組件丨丨6可轉送 24 200807948 =座椤位詈Γ放下通知到應用程式112,其係基於游標13 3 200 :括列如停留在應用寿呈式視W mw之上)。方法 如,應用程,作來接收一拖放物件轉移通知(動作209)。例 下通知。式112可由伺服器組件116接收物件126之放
方法200白to A 包括一動作來請求該拖放物件(動作21 例如,應用鞋,Η 0 π 工可向祠服器組件1 1 6請求物件1 2 6。 方法200包括一私冼七
枝、枯動作來由相對應的應用程式接收該拖放物 之味求(動作211)。例如,伺服器組件116可由應用程式 11 2接收一物件1 26的請求。伺服器組件1 1 6可偵測在代 理主機物件1 q k μ 干i36上的〇etData呼叫。 方法200包括一動作來傳送該拖放物件之請求到該客 戶端組件(動作212)。例如,伺服器組件116可在虛擬頻道 121上傳送一 F〇RMAT —data — request訊息到客戶端組 件106。該F0RMAT一Data—request訊息請求應用程式 102之物件126。方法2〇〇包括一動作以由該伺服器組件接 收該拖放物件的請求(動作213)。例如,客戶端組件ι〇6 可由伺服器組件116於虛擬頻道121上接收該 FORMAT—DATA—REQUEST 訊息。 方法2 0 〇包括一動作來轉送該拖放物件之請求到該本 地應用程式(動作214)。例如,客戶端組件1 06可轉送該 物件126的請求到應用程式1〇2。方法200包括一動作來 接收該拖放物件之請求(動作2 1 5)。例如,應用程式1 〇 2 可接收該物件1 2 6的請求。 在一些具體實施例中,該FORMAT一DATA一REQUEST 訊息之事件處理程式使用儲存在DragEnter方法中的一拖 25 200807948 放物件之參考以執行一 GetData呼叫。當已經取得該格式 資料時,其被適當地編碼。 方法200包括一動作來傳送該拖放物件(動作216)。 例如,於收到傳回的袼式及放下效果之後,應用程式1 〇2 可傳送物件126到客戶端組件1〇6。方法2〇〇包括一動作 以由該本地應用程式接收該拖放物件(動作2丨7)。例如, 客戶端組件2 1 7可由應用程式i 〇2接收物件1 26。 方法200包括一動作來傳送該拖放物件到該伺服器組 件(動作218)。例如,客戶端組件1〇6可於虛擬頻道i2i 之上傳送一 FORM AT —DATA —RESPONSE訊息(包括來自物 件1 26之資料)到伺服器組件丨丨6。方法2〇〇包括一動作來 接收來自該客戶端應用程式之拖放物件(動作2〗9)。例如, 伺服器組件11 6可由客戶端組件丨〇 6於虛擬頻道j 2 i上接 收該FORMAT一DATA —RESPONSE訊息(包括來自物件126 之資料)。 方法200包括一動作來轉送該拖放物件到該遠端應用 程式(動作220)。例如,伺服器組件116可轉送來自物件 126之資料到應用程式112。方法2〇〇包括一動作來接收該 拖放物件(動作221)。例如,應用程式112可接收來自物件 126之資料。因此,根據所選擇的放下效果,來自物件丄26 之資料由應用程式102被移動、複製、鏈結、超鏈結、或 捷徑化到應用程式Π 2。 — 在些具體實施例中’適當編褐的資料後續於雙線上 在FORMAT一DATA一RESPONSE訊息中被傳送。於伺服器組 件116處接收到此FORMAT一DATA一RESPONSE訊息時,即 呼叫一適當的事件處理程式,並擷取及解碼該格式化的^ 26 200807948 料。一旦該事件處理程式完成執行,該格式化的資料即傳 回到該放下目標,即完成該本地放下目標之Drop方法之 呼叫。
當Drop呼叫結束時,該DoDragDrop迴圈即終止,並 傳回該放下效果(例如到伺服器組件1 1 6)。該拖放物件即被 查 詢 PerformedDropEffect 及 LogicalPerformance DropEffect。這兩種格式以及最後放下效果與DoDragDrop HRESULT 於 DO__DRAG_DROP —RESPONSE 訊息中被本地 傳送到客戶端組件1 06。客戶端組件11 6傳回這些結果到 其代理程式 Drop方法。在接收到 d〇_DRAG一DROP_ RESPONSE訊息時,在客戶端组件ι〇6處的一事件處理程 式即储存該專結果。客戶端組件116之代理程式Drop方 法繼續執行,以傳回的格式啟始該物件1 2 6,並傳回該放 下效果及HRESULT到OLE子系統。 客戶端組件1 〇6(該代理主機放下目標)及伺服器組件 1 1 6 (該代理主機放下來源)可用多種不同方式設置以進行 實施方法2 0 0。 例如’客戶端組件丨〇6(該代理主機放下目標)可被設 置成代表何時一拖放模式迴圈要開始。客戶端組件〗〇6可 在虛擬頻道121上傳送一 STArT —draG__DROP訊息到伺服 器組件116。當處理START — DRAG_DR〇p時,伺服器組件 1 1 6(該代理主機放下來源)可開始應用程式u 2之一拖放模 式迴圈(該放下目標)。 客戶端組件106亦可設置成傳送應用程式102(該放下 來源)可以支援之格式的表列。對於一 DragEnter方法之參 數之為對該資料物件的一指標,其中包含應用程式120 27 200807948 能夠提供的資料。使用一格式列舉集合,該等格式 此資料物件中擷取出來,被編碼,然後當做一參數傳送到 一 START —DRAG —DROP訊息,所以一代理主機資料物件可 由伺服器組件11 6產生。
客戶端組件1 06亦可設置來更新該遠端滑鼠位置、鍵 的狀態及鍵盤狀態。就在開始該拖放模式迴圖之前,伺月民 器組件 116 可於虛擬頻道 121 上傳送— START一DRAG一DROP一RESPONSE訊息。當此訊息被客戶端 組件106接收時,客戶端組件1〇6之Drag Over方法即自由 地開始傳送目前滑鼠位置、滑鼠鍵狀態及鍵盤狀態的更新 到伺服器組件11 6。該滑鼠與鍵盤之鍵的狀態皆由傳送到 一 DragOver方法之參數中取得。這些更新可補償具有輸入 焦點及滑鼠補捉之應用程式1 02。 客戶端組件1 06亦可被設置來傳回自伺服器組件11 6 接收的最新放下效果。伺服器組件1 1 6在每當應用程式11 2 改變該放下效果時即傳送UPDATE —DROP —EFFECT訊息到 該客戶端組件1 0 6。做為D r a g O v e r處理的一部份,更新的 放下效果即被傳回到電腦系統1 0 1之OLE子系統來通知目 前放下效果之應用程式102。 客戶端組件1 06亦可設置來更新關於目前拖曳搡作之 狀態的Ί司服器組件11 6。如果已經呼叫一 D r a g L e a v e方法, 則應用程式1 02決定取消該拖放操作。因此,該應用程式 11 2必須做相同的工作,並呼叫其Dt a g L e a v e方法。客戶 端組件1 0 6可轉達適當的資訊到伺服器組件1丨6以造成應 用程式112呼叫其DragLeave方法。 客戶端組件1 0 6亦可被設置成在當發生一放下時儲存 28 200807948 一指標到物件126 〇如罢恭士 4 ^ #上 如果發生一放下時,則應用程式112 可”月、、物件1 26。為了協助保證物件ι %可被傳回,該客 戶端組件1G6可儲存_指標到於D卿啤叫令接收的物件 126 °藉此’當該物件的一請求以_ F〇RMAT_DATA_REqUEST訊息之型式被接收時,該客戶 端組件116可藉由對所儲存的物件126執行_ GetDatat 叫來供應適當的格式資料,並在 FORMAT一DATA一RESPONSE訊息中傳回該資料。
伺服器組件11 6可設置來產生一代理主機資料物件, 以宣揚正確的格式名稱。STArT 一 drag 一 DROP訊息參數中 之一為應用程式11 2能夠提供之格式的表列。在開始該遠 端模式迴圈之前,產生一代理主機資料物件,並植入這些 袼式名稱。然後所產生的資料物件即在該D 〇 D r a g D r ο p呼 叫中當作一參數傳送到電腦系統n〗之OLE子系統。因 此’在該遠端會期内放下目標將能夠查詢該等格式,並當 發生一放下時取得該資料。 伺服器組件11 6亦可用於傳達目前的放下效果到該客 戶端組件1 06。該由應用程式11 2傳回到電腦系統111之 〇LE子系統之放下效果即被當作一 GiveFeedback呼叫的 一部份傳送到該客戶端組件 106。此放下效果在一 UPDATE —DROP一EFFET訊息中於虛擬頻道121上被傳送到 該電腦系統101,所以客戶端組件1 06可在當其Drag〇ver 方法被呼叫時傳回此放下效果。 伺服器組件11 6亦可用於當由客戶端組件1 06指示時 來啟始一取消或一放下。當一放下或取消操作發生在電腦 系統1 01上時,客戶端組件1 06之Drop或DragLeave方法 29 200807948
可被呼叫。當此發生時,一訊息被傳送到飼服器組件ιΐ6, 所以田接者呼叫QueryContinueDrag時,正確的HRESULT 可被傳回到電腦系統i丨丨之〇LE子系統。如果接收到 STOP一DRAG一DROP 訊息時,即傳回 DRAGDR〇p s_ CANCEL。如果接收到D〇 DRAG_DR〇p訊息時即傳回 DRAGDR〇P_S_DROP。否則,傳回s 〇K,並繼續該模式 迴圈。 代理主機物件136可在當接收到START_DRAG_DROP 訊息時來產生。代理主機物件丨3 6基本上可藉由傳回物件 126所宣揚的相同格式來模仿物件126。當資料向代理主機 物件136請求時,其傳送一 FORMAT —DATA—REQUEST訊 息到電腦系統1 0 1。然後客戶端組件i 〇6可甴物件i 26取 得該資料,並在一 FORMAT-DATA一RESPONSE訊息中傳回 該資料。 因此’本發明的具體實施例可由一遠端模組進行拖放 物件到一本地模組。 第3 A圖為可進行由一遠端桌面模組拖放一物件到一 本地桌面模組之範例性電腦架構300。電腦系統3〇1 (如一 客戶端)及電腦系統3 11 (例如一伺服器)。電腦系統3 〇 1與 3 11可連接到一網路,例如像是一區域網路(Lan)、一廣域 網路(WAN)或甚至網際網路。因此,於電腦系統3〇1與311 處多種組件以及其它連接到該網路之組件皆可彼此接收資 料及傳送資料。藉此’該等組件可產生訊息相關的資料, 並在網路上父換訊息相關的資料(例如網際網路協定(I p) 數據(datagram)及其它利用IP數據之較高層協定,像是傳 輸控制通訊協定(TCP ; Transmission Control pr〇t〇c〇l),遠 30 200807948 端桌面通訊協定(RDP ; Rem〇te Desktop Protocol),超文字 傳輸通訊協定(HTTP ; Hypertext Transfer Protocol),簡易 郵件傳輸通訊協定(SMTP ; Simple Mail Transfer Protocol),獨立計算結構(ICA ; Independent Computing Architecture)等。 如上所述,電腦系統3 〇 1包括應用程式3 〇2、客戶端 模組306、及使用者介面304,而電腦系統1 1 1包括應用程 式3 1 2、及祠服器模組3 j 6。電腦系統3 〇丨與電腦系統3 i ! 彼此透過在該網路上建立的一終端伺服器會期3 3 1通信 (例如一 RDP會期p客戶端組件3〇6與伺服器組件316可 交互運作來進行終端伺服器3 3丨之管理D例如,傳送在使 用者介面3 04接收的使用者輸入由電腦系統3 〇丨到電腦系 統3 11、轉送使用者輸入到電腦系統3 1 1處適當的遠端應 用程式、接收來自電腦系統3 11上遠端應用程式之輸出、 傳送來自電腦系統3丨丨之遠端應用程式輸出到電腦系統 301 ’並於使用者介面3〇4處輸出遠端應用程式輸出。因 此’對於遠端應用程式(由使用者介面3 〇4之機角度),輸 入係在電腦系統3 0 1處被接收及呈現輸出,而其處理實際 上係發生在電腦系統311。 虛擬頻道321可為一種頻道用於由電腦系統311傳送 拖放物件到電腦系統3 0 1。虛擬頻道3 2 1可連接在客戶端 、组件3 06處之一拖放執行緒到位在客戶端伺服器組件3 i 6 處之一拖放執行緒,反之亦然。藉此,客戶端組件3 〇 6與 伺服益組件3 1 6可在位於電腦系統3 0 1與電腦系統3 1 1處 適當的應用程式之間的虛擬頻道3 2丨上交互運作來轉移拖 放資料。 31 200807948
第3B圖為由一本地模組拖放一物件到—遠端模組之 知作的範例性桌面視窗323。如所示,桌面視冑⑵為使 用者介面304的一部份’並包括應用程式視窗3〇2w及遠 端桌面3U。應用程式視窗3〇2冒對應於應用程式3〇2,姐 :於接收應用程式3G2之使用者輸人,並呈現來自應用程 :3〇2的輸出給一使用者。遠端桌面313包括應用程式視 由,其用於位於電腦系統311遠處的任何應用程式。例如, 應用程式視窗312W對應於應用程式312,並用於接收應 :程式312之使用者輸入,並呈現來自應用程式312之輸 出給一使用者。 第4A-4C圖為用於由一遠端模組拖放一物件到一本地 模組之範例性方法400之流程圖。該方法4〇〇將參考電腦 架構3 0 0中的組件及資料加以說明。 方法400包括由一遠端應用程式視窗中選擇一拖放物 件之動作(動作401)。例如,電腦系統3〇1的一使用者可 在應用程式視窗312W内選擇物件326。物件&虛擬地 可為電腦系統處任何可選擇的物件,例如像是文字的一部 伤、圖形或聲音資料,試算表儲存格、資料庫輸入項、一 電子訊息等。 ' 方法400包括修正一桌面視窗游標的動作以視覺上代 表選擇了一拖放物件(動作402卜例如,在選擇物件326 之後,游標333可被修正來包括放下效果指標334。放下 效果可包括任何的移動、複製、鏈結、產生_超鏈結,並 產生一捷徑到該選擇的物件。游標333用不同方式修正或 補充來代表不同的放下效應。例如,放下效果指標g34可 顯示來代表該放下效果為移動。 32 200807948 一放下效果可由一應用程式可用之放下玫果中選 當游標3 3 3於桌面視窗323之不同視窗之間樽換時, 現的放下效果指標可以改變。例如,當游標3 3 3位在 程式視窗312W之邊界内時,可以顯示應用程式312 預設的放下效果(例如移動)。當游標3 3 3於任何應用 視窗的邊界之外時,可以顯示桌面視窗323之一預設 下效果(例如該作業系統)。以桌面視窗3 2 3烏例,拖 忐可能根本不支援’因此游標3 3 3在當位在使用者介违 之此區域内時即轉換成「不允許」之符號。於進入應 式視窗302W時,可以顯示應用程式3〇2之一預設的 效果(例如移動)。 方法400包括一個動作,其中一客戶端絚件偵測 桌面視窗游標已經由一遠端應用程式視窗之邊界的外 動到其内部(動作403)。例如,客戶端組件3〇6可偵 游標3 3 3已經由應用程式視窗3〇2w之邊界的外側移 其内部。(第3B圖中的虛線代表游標3 3 3由應用程式 312W經由遠端桌面313與桌面視窗323到應用程式 302W之路徑)。 方法400包括一動作來傳送一訊息以代表該桌面 游標已經移動(動作404)。例如,客戶端組件3〇6可 擬頻道321上傳送一 M0USE—HAS —LEFT訊息到伺服 件316。該MOUSE一HAS —LEFT訊息代表游標333已 出應用程式視窗312W(及/或離開遠端桌面313)。方法 包括一動作來接收一訊息以代表該桌面視窗游標已經 (動作405)。例如,伺服器組件316可由客戶端組件 於虛擬頻道321上接收該MOUSE —HAS一LEFT訊息。 出。 所呈 應用 之一 程式 的放 放功 r 304 用程 放下 到該 側移 測到 動到 視窗 視窗 視窗 在虛 器組 經移 400 移動 306 33 200807948 方法400包括 動作以決金过吾;& 4目#,从冰^』
動作 401,402, 403, 404 果該滑鼠為了其它理由正在移動。 ,404及405可被包含成設定由一遠
上。如果該滑鼠並未停留在該輪入處理程式視窗之上,則 可能已經開始由一遠端模組拖良到一本地模組。在其已經 偵測到該滑鼠已經離開該遠端模組,一 M〇USE_HAS___LEFT 訊息即在該虛擬頻道上傳送到伺服器組件3 i 6。 在接收此訊息時,該伺服器組件3丨6即被轉換到成為 一代理主機放下目標。轉換到代理主機放下目標可使用至 少兩個不同機制來完成。一種機制包括最大化該混合alpha 之拖放視窗來填滿整個會期螢幕的空間,然後強迫該混合 alpha之拖放視窗到ζ·順序的最上方。另一種機制包括呼 叫 OLE API。 在轉換到一代理主機放下目標伺服器,組件3〗6在該 遠端會期中可做為一代理主機玫下目標。例如,在成為一 代理主機放下目標時,可呼叫伺服器組件3 16之DragEnter 方法。該DragEnter方法造成物件326被儲存,且 START一DRAG一DROP訊息被傳送到客戶端組件3〇6。 34 200807948 START一DRAG一DROP訊息可由在客戶端組件3〇6上一 事件處理程式來處理。該事件處理程式可擷取該格式名 稱,即所允許的放下效果。在回應上,客戶蠕組件3〇6可 啟始一 DO一MODAL一LOOP事件來通知電腦系統 一 j 〇 1 之 輸入處理程式要開始一本地拖放迴圈。在接收到 DO —MODAL一LOOP事件時’該輸入處理程式建構代理主機 物件328,並重新導引拖放通知事件到客戶端組件3〇6。因 此,造成客戶端組件306要轉換成一代理主機放下來源。
拖放通知事件可由除能在一拖放執行緒上的事件沉入 而重新導向,並致能客戶端組件306之特別產生的事件沉 入。在開始該DoDragDrop模式迴圈之前,該拖放執行緒 可被發信來通知它該迴圈將要開始。在回應上,客戶端組 件 306 可傳送一 START —DRAG-DROP— rESP〇Nse 訊息到 伺 服 器 組 件 3 16 。 在 接 收 到 START一DRAG一DROP一RESPONSE 訊息時,飼服器組件 316 即可自由傳送拖放訊息到客戶端組件306,例如像是 DO一DRAG一DROP 及 STOP DRAG —DROP 訊息。 但疋’ 月鼠在應用程式視窗302W當中四處拖矣 時,可有多種滑鼠及鍵盤按鈕事件受到注意。對應用程式 312(該遠端的應用程式)之QueryC〇ntinueDrag可被用於取 得對此資訊的更新。為了更新該伺服器組件3 1 6之目前輸 入狀態,一輸入處理程式傳送一適當的滑鼠按鈕上或下, 及鍵盤按钮上或下。一 GiveFeedback方法於客戶端組件 3 06上被呼叫來更新伺服器組件3〗6之由應用程式3 02傳 回的放下效果,其係藉由利用了 UPDATE-DROP一EFFECT 訊息。在電腦系統3 1 1處,該放下效果被儲存,並稍後在 35 200807948 由伺服器組件316引發的Drag0ver方法傳回。 基於位在電腦系統3 01之滑鼠與鍵盤狀態,應用程式 312最終可決定取消該拖髮操作或允許發生一放下。因此 在二具體實施例中,即取消一拖曳操作(且因此不會發生 放下)。如果發生一取消,伺服器組件3 16 (該代理主機放 下目標)即透過DragLeave方法來通知。
伺服器組件316回應於一取消亦會傳送一 STOP一DRAG一DROP訊息到客戶端组件3〇6。在已經傳送一 STOP一DRAG一DROP訊息之後,物件326可被釋放。客戶 端組件306之一事件處理程式可儲存在一 ST〇p_DRAG DROP訊息中所代表的該取消結果。因此,下一次呼叫
QueryContinueDrag 時,其傳回 DRAGDROP — S — CANCEL·, 造成該拖曳操作在電腦系統3 0 1中結束。 在其它具體實施例中,發生一放下。因為一使用者在 本地應用程式視窗3 02 W上四處移動一滑鼠,該使用者可 释放一滑鼠按鈕。當釋放該滑鼠按鈕時,客戶端組件306 於虛擬頻道3 2 1上指示該釋放到伺服器組件3 1 6。伺服器 組件316在回應上可傳送一 DO —DRAG 一 DROP訊息到客戶 端組件306,以請求轉換物件326到應用程式302。伺服器 組件3 16可傳送該DO一DRAG —DROP訊息之代表到應用程 式302。客戶端組件3〇6可在虛擬頻道321上傳送一 DO DRAG DROP —RESPONSE訊息到伺服器組件316。 方法400包括一動作來傳送一拖放物件的查詢(動作 407)。例如,應用程式302回應於該DO一DRAG —DROP訊 息之表示可查詢代理主機物件328。方法400包括一動作 來由一本地應用程式接收一拖放物件之查詢(動作408)。 36 200807948 例如,客戶端組件306可由應用程式3〇2接怃 詢。 方法400包括一動作來傳送該拖放物件之笮求 服器組件(動作409)。例如,客戶端組件3〇6可在 道321上傳送一叩謂<〇八丁八一11叫1^丁钒息到 組件 316。該 F0RMAT DATA-REQUEST 訊息請求 式3 12之物件326。方法4〇〇包括一動作以白該客 件接收一拖放物件的請求(動作41〇)。例如,伺服 316可由客戶端組件3〇6於虛擬頻道上 FORMAT —DATA一REQUEST 訊息。 方法400包括一動作來轉送該拖放物件之請求 端應用程式(動作4 11 )。例如,伺服器組件3】6可轉 件326的請求到應用程式312。方法4〇〇包括一動 收一拖放物件之請求(動作412)。例如,應用程式 由伺服器組件3 1 6接收物件3 26之請求。 方法400包括一動作來傳送該拖放物件(動作 例如,應用程式312可傳送物件326到伺服器組件 方法400包括一動作來由遠端應用程式接收該拖 (動作414)。例如,伺服器組件316可由應用程式 收物件326。 方法400包括一動作來傳送該拖放物件到該客 件(動作4 1 5)。例如,伺服器組件3〗6可於虛擬頻 之上傳送一 FORMAT〜DATA一RESPONSE訊息(包括 件326之資料)到客戶端組件3〇6。方法400包括一 接收來自該伺服器組件之拖放物件(動作4丨6)。例 戶端組件306可由伺服器組件3〇6於虛擬頻道32} * 3 2 6 查 到該伺 虛擬頻 伺服器 應用程 戶端組 器組件 捿收該 到該遠 送該物 作來接 312可 413)〇 316 〇 放物件 312接 戶端組 道321 來自物 動作來 如,客 上接收 37 200807948 該FORMAT 一 D ΑΤΑ—RESPONSE訊息(包括來自物件326之 資料)。
方法400包括一動作來轉送該拖放物件到該本地應用 程式(動作417)。例如,客戶端組件306可轉送來自物件 326之資料到應用程式312。方法400包括一動作來接收該 拖放物件(動作418)。例如,應用程式302可由客戶端組 件3 06接收來自物件306之資料。因此,根據所選擇的放 下效果,來自物件326之資料由應用程式312被移動、複 製、鏈結、超鏈結、或捷徑化到應用程式3 02。 客戶端組件306(該代理主機放下來源)及伺服器組件 316(該代理主機放下目標)可用多種不同方式設置以進行 實施方法400。 例如,客戶端組件306(該代理主機放下來源)可用於 產生一代理主機資料物件,用於宣揚正確的格式名稱、轉 達目前放下效果到伺服器組件3〗6、當由伺服器組件3 j 6 指示時表示一取消或放下,並更新在應用程式視窗3uw 内滑鼠按鈕狀態及鍵盤狀態。一 QueryC〇ntinueDrag方法 y用於接收包含鍵盤按鍵及滑鼠按鈕狀態之一按鍵狀態向 量。該等鍵盤按鍵與滑鼠按鈕狀態可經由虛擬頻道3 12傳 送到伺服器組件3 1 6。 内肌益組什316(該代理主機放下目標)可用於指示何 時要開始該拖放模式迴圈,傳$應用程< 312能夠提供的 格式表列,傳回由客戶端組件306接收的最新放下效果到 :用程式312’更新關於一等待中拖放操作之狀態的客戶 端組件’並當發生—放下時健存_指標物件以。 代理主機資料物件328可在當接收到 38 200807948 START一DRAG一DROP訊息時來產生。代理主機資料物件 3 28基本上可藉由傳回物件3 26所宣揚的相同格式來模仿 物件326。當資料向代理主機資料物件328請求時,其傳 送一 FORMAT — DATA — REQUEST訊息到電腦系統3ιι。然 後飼服器組件316可由物件326取得該資料,並在一 , FORMAT一DATA—RESPONSE訊息中傳回該資料。 • 因此,本發明的具體實施例可由一遠端模組進行拖放 物件到一本地模組。 * 本發明可實施成其它特定的型式,其皆不背離本發明 之精神或基本特性。上述的具體實施例在各個態樣中皆應 視為例示性而非限制性。因此本發明的範圍係由附屬申請 專利範圍所指示,而非由前述的說明。所有在申請專利範 圍之同等性下的意義與範圍内之改變皆要涵蓋在其範圍之 内。 【圖式簡單說明】 為了說明可以取得上述及其它好處與特徵的方法,上 =短說明之主題事項的更為特定之說明項參考在附屬圖 面中所例示的特定具體實施例來呈現。請瞭解這些圖面所 :僅為典型的具體實㈣,因&不應視為發明範圍的限 J,具體實施例將藉由使用附屬圖面利用額外 細節來加以描述與解釋。 奋 第1A圖為可進行由一本地模組拖放—物件到一遠端 杈組之範例性電腦架構。 第」B圖為由一本地模組拖放一物件到—遠端模組之 麵作的範例性桌面視窗。 39 200807948 第2A-2C圖為用於由一本地模組拖放一物件到一 模組之範例性方法之流程圖。 第3 A圖為可進行由一遠端模組拖放一物件到一 模組之範例性電腦架構。 第3 B圖為由一遠端模組拖放一物件到一本地模 操作的範例性桌面視窗。 第4A_2C圖為用於由一遠端模組拖放一物件到一 模組之範例性方法之流程圖。
遠端 本地 組之 本地 【主要 元 件 符號說明】 100 電 腦 架構 主 機 放 下 來 源 ) 101 電 腦 系統 121 虛 擬 頻 道 102 應 用 程式(放下 來 123 桌 面 視 窗 源 ) 126 物 件 102W 應 用 程式視窗 131 終 端 伺 服 器 會 期 104 使 用 者介面 133 游 標 106 客 戶 端組件(代 理 134 放 下 效 果 指 標 主 機 放下目標) 136 代 理 主 機 物 件 111 電 腦 系統 200 方 法 112 應 用 程式(放下 目 300 電 腦 架 構 標 ) 301 電 腦 系 統 112W 應 用 程式視窗 302 應 用 程 式 ‘(放 下 113 遠 端 桌面 標 ) 116 伺 服 器組件(代 理 302W 應 用 程 式 視 窗 40 200807948
304 使 用 者 介面 主 機 放 下 g 標) 306 客 戶 端 組件(代 理 321 虛 擬 頻 遒 主 機 放 下來源) 323 桌 面 視 窗 311 電 腦 系 統 326 物 件 312 應 用 程 式(放下 來 328 代 理 主 機 物 件 源 ) 33 1 終 端 伺 服 器 會期 312W 應 用 程 式視窗 33 3 游 標 313 遠 端 桌 面 334 放 下 效 果 指 標 316 伺 服 器 .組件(代 理
41

Claims (1)

  1. 200807948 十、申請專利範圍: 1. _ t Λ / τ 1之用挹放來由一本地應用 :一土)轉#物件到值在該伺服器電腦系統。〇1) 的:运端模組之方法,該電腦系統包括在…系 、、, 仃的該本地應用程式(1〇2)與一客戶端組件 (1〇6)’該客戶端組件參與在與該伺服器電腦系統(⑴)
    司服器組件⑴6)的一終端伺服器會期。3 ”當 中,該方法包含: 該客戶端組件(106)之一偵測動作,其偵測到一 桌面視窗游標(133)已經由一遠端應用程式(112)之一 應用程式視窗(112W)的邊界之外側移動到其内部; 該客戶端組件(106)的一接收動作,其接收代表一 等待中之拖放操作之一放下(drop)通知,該放下通知 代表一拖放物件(丨26)被轉移到該遠端的應用程式 (126 ; 該客戶端組件(106)之一傳送動作,其因應於接 收到該放下通知之動作,而傳送一請求以在該終端伺 服器會期(131)中轉移該拖放物件(126)以及該桌面視 窗游標(1 3 3)之一座標位置到該伺服器電腦系統(111); 該客戶端組件(106)的一接收動作’其於該終端 伺服器會期(1 3 1)中接收來自該伺服器電腦系統(1 Π ) 之拖放物件之請求; 該客戶端組件(106)因應於接收該拖放物件(126) 之請求而如一代理主機放下目標般動作以代表該遠端 42 200807948 的應用程式(112),其包含: 一轉送(forwarding)動作,其轉送該拖放物件(126) 之請求到該本地應用程式(102);及 一接收動作,其從該本地應用程式(1 02)處接收因 應於該拖放物件(1 2 6)之請求所傳送的該拖放物件 (126);及 碌各尸踹組仵(1 06)
    2.
    飼服器會期(1 3 1)内傳送該拖放物件(J 2 6 )到該伺服器 電腦系統(111)以傳遞到該遠端應用程式(1 1 2)。 如申請專利範圍第1項所述之方法,另包含: 一设置動作,其將該客戶端組件設置成一代理主 機放下目標,使得該客戶端組件可接收來自該本地應 用程式之拖放物件。 如申請專利範圍第丨項所述之方法,另包含: -接收動作,其從一本地應用程式視窗内接收用 於選擇一拖放物件之俊用去於 之使用者輸入,該本地應用程式視 窗代表該本地應用程式之一使用者介面;及 一修正動作,其修正一桌面視窗游標以在視覺上 代表已經選出的一拖放物件。 如申睛專利範園第1頂所’ 第項所述之方法,其中偵測-桌面 ^ ^應用程式之一應用程式視窗的 邊界外側移動到i内部 、 之該偵測動作包含一偵測動 乍,其係4貞測該桌面顏兹 之嗪w ^ 自游軚由一本地應用程式視窗 邊界内部移動到該遠端 您用程式之應用程式視窗的 43 200807948 邊界内部。 5. 如申晴專利截in楚1 = 圍第1項所述之方法,其和客戶端組件 接收代表一Μ. ϋ 1A. 矛付T拖放操作之一放下通知的該接收動 隹測動作’其偵測一輸入裝置上按鈕狀態之 改變。 6. 如申請專利範圍第丨項所述之方法,其令客戶端組件 在ι ρ端伺服器會期内傳送一請求來轉移該拖放物件 乂及該桌面視窗游標之座標位置到該伺服器電腦系統 。傳動作包含一傳送動作,其在該終端伺服器會 期之一虛擬頻道上傳送一訊息。 如申#專利範圍第丨項所述之方法,其中客戶端組件 在該、、、;端伺服裔會期内傳送一請求來轉移該拖放物件 以及該桌面視窗游標之座標位置到該伺服器電腦系統 之該傳送動作包含一傳送動作,其在一遠端桌面協定 (Reomte Desktop Protocol)會期内傳送一訊息。 8· 一種於一電腦系統(111)中使用拖放方式從在該客戶 端電腦系統(1 0 1)之一模組處轉移一物件到該一或多 個运端應用程式(11 2)之一的方法,該電腦系統(〗1 ^ ) 包括一或多個在該電腦系統(ill)上執行的遠端應用 程式(1 1 2)及一伺服器組件(11 6 ),該伺服器組件(i i 6) 參與在與位在一客戶端電腦系統(1 〇 上一客戶端組 件(106)的一終端伺服器會期(131),該一或多個在該 電腦系統(111)上執行的遠端應用程式(112)配置於在 44 200807948 該終端伺服器會期(131)内由該客戶端電腦系統(1〇1) 遠端地存取,該方法包含: 該伺服器組件(116)之一接收動作,其接收一請 求以轉移一拖放物件(126)到該電腦系統(m),並接收 一座標位置,其代表在該客戶端電腦系統(11〇)處之桌 面視窗游標(13 3)的位置,該請求及座標位置係在該終 端伺服器會期(1 3 1)内傳送; g 該伺服器組件(11 6)之一轉送動作,其轉送一拖 放物件轉移通知到對應於該座標位置之一遠端的應用 程式之一動作; 該飼服器組件(116)因應於接收到轉移一拖放物 件(126)之請求而如一代理主機放下來源般動作以代 表在該客戶端電腦系統處(1()1)之一應用程式(1〇2), 其中包括該伺服器組件(i 1 6)的一接收動作,其係接 收來自該遠端應用程式(112)之拖放物件(126)之一請 求; 該伺服器組件(116)的一轉送動作,其於該終端 飼服器會期(131)中轉送該拖放物件(126)之請求到該 客戶端组件(106); 該伺服器組件(11 6)的一接收動作,其於該終端 飼服器會期(131)中接收來自該客戶端組件(1〇6)之該 拖放物件(126);及 該伺服器組件(11 6)因應於接收到該拖放物件 (126)而如一代理主機放下來源般動作以代表該客戶 45 200807948 端電腦系統處(101)之該應用程式(1〇2),其中 服益組件(116)之一傳送動作,其傳送該拖放物 遠端應用程式。 9如申明專利範園第8項所述之方法,其_該伺 件接收凊求來轉移一拖放物件到該電腦系統 收座私位置,其代表在該客戶端電腦象統處 視窗游標之位置的該接收動作包含一接從動作 φ 在該終端飼服器會期之一虛擬頻道上接收一訊 10·如申請專利範圍第8項所述之方法,另包含: 一產生動作,其產生一代理主機物件以模 拖放物件所宣揚的該等格式。 11·如申請專利範圍第8項所述之方法,另包含 置動作,其將該伺服器組件設置為一 機放下來源,使得該伺服器組件可提供拖放物 遠端應用程式。 12·如申請專利範圍第8項所述之方法,另包含: • 一啟始動作,其係該伺服器組件啟始一拖放模: 13. —種於一電腦系統(3〇1)中使用拖放方式來由· 服器電腦系統上一遠端模組轉移一物件到一本 程式(2)的方法,該電腦系統(301)包括在該 統(3〇1)上執行的該本地應用程式(3 02)與一客 件(306),該客戶端組件(3〇6)參與在與該伺服 系統(3 11)處一词服器組件(316)的一終端飼服 (331)當中,該方法包含: 包括飼 件到該 服器組 ’並接 之桌面 ,其係 息。 仿由該 代理主 件到該 t迴圈。 在一祠 地應用 電腦系 戶端組 器電腦 器會期 46 200807948 該客戶端組件(306)之一偵測動作,其偵測到一 桌面視窗游標(3 3 3)已經由一遠端應用程式(3 i 2)之一 應用程式視窗(3 1 2 W)的邊界之外側移動到其内部; 該客戶端組件(306)的一傳送動作,其於該終端 飼服器會期(3 3 1)内傳送一訊息到該飼服器組件 (3 1 6) ’該訊息指示給該伺服器組件(3丨6 )關於該桌面 視窗游標(3 33)已經由該遠端應用程式(3 i 2)之應用程 式視窗(3 1 2 W)的邊界之内部移動到其外侧; 該客戶端組件(306)因應於接收該拖放物件(326) 之請求而如一代理主機放下來源般動作以代表該遠端 應用程式(3 1 2),其包括該客戶端組件的一接收動作, 其從該本地應用程式(3 〇2)接收一拖放物件之一查 詢,該查詢指示在該本地應用程式(3 〇2)處之一放下通 知以代表該拖放物件(326)要被轉移到該本地應用程 式(302); 該客戶端組件(306)的一傳送動作,其傳送該拖 放物件(326)的一請求到該伺服器組件(3 16),該請求 因應於該查詢在該終端伺服器會期(3 3 1)内傳送,該請 求指示給該伺服器組件(3 1 6)關於該本地應用程式 (302)正在請求該拖放物件(326); 該客戶端組件(306)的一接收動作,其於該終端 伺服器連接(3 11)中接收來自該伺服器電腦系統(3 11) 之該拖放物件(326);及 該客戶端組件(306)因應於接收到該拖放物件 47 200807948 (3 2 6)而如一代理主機放下來源般動作以代表該遠蠕 應用程式(312), 送動作,其傳送 (302) 〇
    一傳 該拖放物件(3 2 6)到該本地應用程式 14·如申請專利範圍第13項所述之方法,其护該客戶端組 件倘測一桌面視窗游標已經由一遠端應用程式之一應 用程式視窗的邊界内部移動到其外側之该偵測動作,
    其包含一偵測動作,其偵測該桌面視窗游標由一遠端 應用程式之應用程式移動到該本地應用程式之一本地 應用程式視窗。 15·如申請專利範圍第13項所述之方法,另包含: 一產生動作’其產生一代理主機物件以模仿由該 拖放物件所宣揚的該等格式。 16·如申請專利範圍第13項所述之方法,另包含: 一設置動作,其將該客戶端組件設置為一代理主 機放下來源,.渡兮旁 使传該客戶端組件可提供拖放物件到該 客戶端組件。 1 7 ·如申清專利範園第丨3 啤矛υ項所述之方法,另包含: 一接收動作,盆您田从 ^ 、、 ^ /、從用於一返端應用程式之一應用 程式視窗内接# ;登@ _ 擇一拖放物件的使用者輸入,該應 用程式視窗代矣#、音# @ 一本代表該逡端應用程式之一使用者介面;及 18. C正動作,其修正·'桌面視窗游標以在視覺上 代表已經選择—拖放物件。 -種於-電腦系統(311)中使用拖放方式從一遠端應 48 200807948
    用程式(3 1 2)轉移一物件到位在該客戶端電腦系統 (3 〇1)處之一模組的方法,該電腦系統(311 )包括一或多 個在該電腦系統(3 11)上執行的一或多個遠端應用程 式(3U)及一伺服器組件(316),該伺服器組件(316)參 與位在一客戶端電腦系統(301)處一客戶端組件(3 〇6) 的一終端飼服器會期(33 1 ),該一或多個在該電腦系統 (3 11)上執行的遠端應用程式(3 12)經配置以在該終端 飼服器會期(3 3 1)内由該客戶端電腦系統(3 Ο 1)遠端地 存取,該方法包含: 該伺服器組件(3 1 6)之一接收動作,其於該終端 ^司服器會期(331)内接收來自該客戶端組件(306)的一 訊息’該訊息指示給該伺服器組件關於一桌面視窗游 標(3 3 3 )已經由對應於該客戶端電腦系統(3〗〇處一遠 端應用程式(312)之一應用程式視窗(312 W)的邊界之 内部移動到其外側; 該飼服器組件(3 1 6)的一決定動作,其決定了該 桌面視窗游標(3 3 3)之移動係關連於一等待中的拖放 操作; 該伺服器組件(3 1 6)之一接收動作,其接收來自 該客戶端組件(3 06)之一拖放物件(326)的一請求,該 請求因應於來自在該客戶端電腦系統(3 0 1)上一應用 程式(3 02)之該拖放物件(326)的一請求而在該終端伺 服器會期(33 1)上傳送,該請求指示給該伺服器組件 (316)關於位在該客戶端組件(306)之該應用程式㈠〇2) 49 200807948 正在向該遠端應用程式(312)請求該拖放物件(326); 該伺服器組件(3 16)因應於接收該拖放物件(326) 之請求而如一代理主機放下目標般動作以代表位在該 客戶端電腦系統處(31〗)之該應用程式(316),其包含: 一轉送動作,其轉送該拖放物件(326)之請求 到該遠端應用程式(3 12);及 一接收動作,其接收因應於該拖放物件(326) 之請求自該遠端應用程式(3 12)所傳送的該拖放物件 (126);及 該客戶端組件(316)之傳送動作,其於該終端伺服 器會期(33 1)内傳送該拖放物件(326)到該客戶端電腦 系統(3 10)以傳遞到位在該客戶端電腦系統(3〇ι)上之 該應用程式(302)。 19·如申請專利範圍第18項所述之方法,另包含: 一設置動作,其將該伺服器組件設置為一代理主 機放下目標,使得該伺服器組件可接收來自該遠端應 用程式的拖放物件。 ζυ.如申請專 …私穴τ成词服器組 件在該終端飼服器會期内傳送該拖放物件到該客戶端 電腦系統之傳送動作包含該伺服器組件的一傳送動 作,其於-遠端桌面協定會期之一虛擬頻道上傳送該 拖放物件。 ' 50
TW096112370A 2006-06-09 2007-04-09 Dragging and dropping objects between local and remote modules TW200807948A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/423,400 US7533349B2 (en) 2006-06-09 2006-06-09 Dragging and dropping objects between local and remote modules

Publications (1)

Publication Number Publication Date
TW200807948A true TW200807948A (en) 2008-02-01

Family

ID=38801780

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096112370A TW200807948A (en) 2006-06-09 2007-04-09 Dragging and dropping objects between local and remote modules

Country Status (12)

Country Link
US (2) US7533349B2 (zh)
EP (1) EP2033107B1 (zh)
JP (1) JP4482615B2 (zh)
KR (1) KR20090027624A (zh)
CN (1) CN101467139B (zh)
AU (1) AU2007257440A1 (zh)
BR (1) BRPI0712350A2 (zh)
CA (1) CA2654040A1 (zh)
MX (1) MX2008015484A (zh)
RU (1) RU2430405C2 (zh)
TW (1) TW200807948A (zh)
WO (1) WO2007142708A1 (zh)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9715252B2 (en) 2011-08-24 2017-07-25 Z124 Unified desktop docking behavior for window stickiness
US9405459B2 (en) 2011-08-24 2016-08-02 Z124 Unified desktop laptop dock software operation
US20130080143A1 (en) * 2011-09-27 2013-03-28 Paul E. Reeves Unified desktop docking behavior with device as master
US9268518B2 (en) 2011-09-27 2016-02-23 Z124 Unified desktop docking rules
PT1844390E (pt) * 2005-01-31 2012-10-09 Cortado Ag Processo e disposição para imprimir através de um servidor de aplicação assim como um programa de computador correspondente e um meio de armazenamento legível por computador correspondente
US7533349B2 (en) * 2006-06-09 2009-05-12 Microsoft Corporation Dragging and dropping objects between local and remote modules
US10503342B2 (en) 2006-08-04 2019-12-10 Apple Inc. User interface spaces
US8117555B2 (en) * 2006-12-07 2012-02-14 Sap Ag Cooperating widgets
US20080215998A1 (en) * 2006-12-07 2008-09-04 Moore Dennis B Widget launcher and briefcase
US8248636B1 (en) 2006-12-29 2012-08-21 Google Inc. WYSIWYG printing for web based applications
US8612547B1 (en) 2006-12-29 2013-12-17 Google Inc. Container interrupt services
US9391826B1 (en) 2006-12-29 2016-07-12 Google Inc. Collaborative web based applications
US9384346B1 (en) 2006-12-29 2016-07-05 Google Inc. Local service access within a web based application framework
US7895296B1 (en) 2006-12-29 2011-02-22 Google, Inc. Local storage for web based native applications
US8335817B1 (en) * 2006-12-29 2012-12-18 Google Inc. Message passing within a web based application framework
US8539073B1 (en) 2006-12-29 2013-09-17 Google Inc. Startup of container applications
US20090094561A1 (en) * 2007-10-05 2009-04-09 International Business Machines Corporation Displaying Personalized Documents To Users Of A Surface Computer
US9134904B2 (en) * 2007-10-06 2015-09-15 International Business Machines Corporation Displaying documents to a plurality of users of a surface computer
US8139036B2 (en) * 2007-10-07 2012-03-20 International Business Machines Corporation Non-intrusive capture and display of objects based on contact locality
US20090091539A1 (en) * 2007-10-08 2009-04-09 International Business Machines Corporation Sending A Document For Display To A User Of A Surface Computer
US8024185B2 (en) 2007-10-10 2011-09-20 International Business Machines Corporation Vocal command directives to compose dynamic display text
US9619304B2 (en) * 2008-02-05 2017-04-11 Adobe Systems Incorporated Automatic connections between application components
US8370519B2 (en) 2008-02-12 2013-02-05 Microsoft Corporation Copying data onto an expandable memory in a wireless device using a desktop interface
US20090237363A1 (en) * 2008-03-20 2009-09-24 Microsoft Corporation Plural temporally overlapping drag and drop operations
US20140040862A1 (en) * 2008-04-03 2014-02-06 Adobe Systems Incorporated Copying Reusable Components from a Remote Source
US20090300131A1 (en) * 2008-05-27 2009-12-03 Supportspace Ltd. Simultaneous remote and local control of computer desktop
EP2131271A1 (en) * 2008-06-04 2009-12-09 NEC Corporation Method for enabling a mobile user equipment to drag and drop data objects between distributed applications
US8458363B2 (en) * 2008-06-08 2013-06-04 Apple Inc. System and method for simplified data transfer
US11258652B2 (en) 2008-06-08 2022-02-22 Apple Inc. System and method for placeshifting media playback
US9626363B2 (en) * 2008-06-08 2017-04-18 Apple Inc. System and method for placeshifting media playback
US8656293B1 (en) 2008-07-29 2014-02-18 Adobe Systems Incorporated Configuring mobile devices
EP2184679A1 (en) * 2008-10-30 2010-05-12 Alcatel Lucent Method for operating an ending web-widget with data retrieved from a starting web-widget
TW201020901A (en) 2008-11-20 2010-06-01 Ibm Visual feedback for drag-and-drop operation with gravitational force model
KR20100081577A (ko) * 2009-01-06 2010-07-15 삼성전자주식회사 휴대단말에서 오브젝트의 내비게이션 방법 및 장치
US8650634B2 (en) 2009-01-14 2014-02-11 International Business Machines Corporation Enabling access to a subset of data
US8169904B1 (en) * 2009-02-26 2012-05-01 Sprint Communications Company L.P. Feedback for downlink sensitivity
US8612883B2 (en) 2009-06-08 2013-12-17 Apple Inc. User interface for managing the display of multiple display regions
US9141412B2 (en) * 2009-06-16 2015-09-22 Microsoft Technology Licensing, Llc Terminal services application virtualization for compatibility
US8239781B2 (en) * 2009-06-30 2012-08-07 Sap Ag Drag and drop of an application component to desktop
US9277021B2 (en) 2009-08-21 2016-03-01 Avaya Inc. Sending a user associated telecommunication address
JP5433375B2 (ja) * 2009-10-23 2014-03-05 楽天株式会社 端末装置、機能実行方法、機能実行プログラム及び情報処理システム
US20110119609A1 (en) * 2009-11-16 2011-05-19 Apple Inc. Docking User Interface Elements
US8441702B2 (en) 2009-11-24 2013-05-14 International Business Machines Corporation Scanning and capturing digital images using residue detection
US8610924B2 (en) 2009-11-24 2013-12-17 International Business Machines Corporation Scanning and capturing digital images using layer detection
KR20110064674A (ko) 2009-12-08 2011-06-15 삼성전자주식회사 동적 로컬 기능 결합 장치 및 방법
US20130174062A1 (en) * 2009-12-23 2013-07-04 Nokia Corporation Method and Apparatus for Display Device
US9009219B2 (en) * 2010-01-27 2015-04-14 Vmware, Inc. Native viewer use for service results from a remote desktop
US9274821B2 (en) 2010-01-27 2016-03-01 Vmware, Inc. Independent access to virtual machine desktop content
US8555187B2 (en) * 2010-02-16 2013-10-08 Google Inc. Server-based data sharing in computer applications using a clipboard
CN102262528B (zh) * 2010-05-26 2016-06-22 腾讯科技(深圳)有限公司 即时通讯客户端及其内嵌网页页面实现拖拽的方法
US8335991B2 (en) * 2010-06-11 2012-12-18 Microsoft Corporation Secure application interoperation via user interface gestures
US20120030664A1 (en) * 2010-07-30 2012-02-02 Sap Ag Processing of software objects moved into a dropzone region of an application
US8527891B2 (en) 2010-08-13 2013-09-03 International Business Machines Corporation Enabling user interactions between user interface components
US20120131483A1 (en) * 2010-11-22 2012-05-24 International Business Machines Corporation Drag-and-drop actions for web applications using an overlay and a set of placeholder elements
CN102566983B (zh) * 2010-12-07 2016-04-20 腾讯科技(深圳)有限公司 基于Windows系统的对象拖拽实现方法及其系统
US9811528B2 (en) 2010-12-09 2017-11-07 Yosef Benraz Systems and methods for providing continuing access to a remote computer program
TW201227489A (en) * 2010-12-31 2012-07-01 Hon Hai Prec Ind Co Ltd System and method for processing image
US8554897B2 (en) * 2011-01-24 2013-10-08 Lg Electronics Inc. Data sharing between smart devices
US9367224B2 (en) * 2011-04-29 2016-06-14 Avaya Inc. Method and apparatus for allowing drag-and-drop operations across the shared borders of adjacent touch screen-equipped devices
WO2012160561A1 (en) * 2011-05-23 2012-11-29 Tako Technology Ltd. Computerized system and method for remote accessto a computer program
US8489680B1 (en) 2011-08-18 2013-07-16 Google Inc. Transmission of input values using an unreliable communication link
US20130080932A1 (en) 2011-09-27 2013-03-28 Sanjiv Sirpal Secondary single screen mode activation through user interface toggle
EP2581824A1 (en) * 2011-10-13 2013-04-17 Gface GmbH Smart drag and drop
KR101943987B1 (ko) * 2011-12-06 2019-04-17 삼성전자주식회사 디바이스 간의 페이지 공유 시스템 및 방법
US9164544B2 (en) 2011-12-09 2015-10-20 Z124 Unified desktop: laptop dock, hardware configuration
CN103186430A (zh) * 2011-12-30 2013-07-03 联想(北京)有限公司 文件操作装置及方法,和对应的数字处理设备和数字处理系统
CN103186421A (zh) * 2011-12-31 2013-07-03 联想(北京)有限公司 一种在混合系统远程桌面实现数据交互的方法和装置
WO2013175770A1 (ja) * 2012-05-25 2013-11-28 パナソニック株式会社 情報処理装置、情報処理方法、および情報処理プログラム
US8970492B2 (en) 2012-06-08 2015-03-03 Microsoft Technology Licensing, Llc Remote session control using multi-touch inputs
US8943582B1 (en) * 2012-07-18 2015-01-27 Amazon Technologies, Inc. Transferring information among devices using cameras
US20140047368A1 (en) * 2012-08-13 2014-02-13 Magnet Systems Inc. Application development tool
KR102017631B1 (ko) * 2012-09-03 2019-09-03 삼성전자주식회사 데이터 통신을 위한 단말 장치 및 방법
CN104571782A (zh) * 2013-10-18 2015-04-29 腾讯科技(深圳)有限公司 远程控制方法、系统、操控终端及被控终端
CN103955328B (zh) * 2014-04-29 2017-01-18 广东威创视讯科技股份有限公司 操作端查阅拼接墙中显示内容的方法和系统
US10417247B2 (en) 2014-09-25 2019-09-17 Oracle International Corporation Techniques for semantic searching
US10664488B2 (en) 2014-09-25 2020-05-26 Oracle International Corporation Semantic searches in a business intelligence system
US10516980B2 (en) 2015-10-24 2019-12-24 Oracle International Corporation Automatic redisplay of a user interface including a visualization
US10082941B2 (en) * 2015-05-20 2018-09-25 Vmware, Inc. Optimizing window move actions for remoted applications
CN108139803B (zh) 2015-10-08 2021-04-20 Pcms控股公司 用于动态显示器配置的自动校准的方法及系统
US10088981B2 (en) * 2015-12-29 2018-10-02 Sap Se User engagement application across user interface applications
US10564829B2 (en) 2016-03-25 2020-02-18 Vmware, Inc. Optimizing window resize actions for remoted applications
US10884604B2 (en) 2017-05-16 2021-01-05 Apple Inc. Drag and drop for touchscreen devices
US11614857B2 (en) 2017-06-02 2023-03-28 Oracle International Corporation Importing, interpreting, and presenting data
US10956237B2 (en) * 2017-06-02 2021-03-23 Oracle International Corporation Inter-application sharing of business intelligence data
US10917587B2 (en) 2017-06-02 2021-02-09 Oracle International Corporation Importing and presenting data
JP6961402B2 (ja) 2017-06-22 2021-11-05 キヤノン株式会社 情報処理装置、制御方法、及びプログラム
US11301124B2 (en) * 2017-08-18 2022-04-12 Microsoft Technology Licensing, Llc User interface modification using preview panel
US11237699B2 (en) 2017-08-18 2022-02-01 Microsoft Technology Licensing, Llc Proximal menu generation
US10783012B2 (en) 2018-04-20 2020-09-22 CopyBucket, Inc. Systems and methods for efficient inter-device data exchange
WO2020112900A2 (en) 2018-11-30 2020-06-04 Pcms Holdings, Inc. Method for mirroring 3d objects to light field displays
US20200192539A1 (en) * 2018-12-13 2020-06-18 Vmware, Inc. System and method for operating system event redirection
CN109782976B (zh) * 2019-01-15 2020-12-22 Oppo广东移动通信有限公司 文件处理方法、装置、终端及存储介质
CN114089900A (zh) * 2020-07-29 2022-02-25 华为技术有限公司 一种跨设备的对象拖拽方法及设备
CN111752722A (zh) * 2020-05-28 2020-10-09 西安万像电子科技有限公司 数据传输方法及设备
TWI761056B (zh) * 2021-02-01 2022-04-11 宏正自動科技股份有限公司 資料傳送方法與資料傳送裝置
US11402964B1 (en) * 2021-02-08 2022-08-02 Facebook Technologies, Llc Integrating artificial reality and other computing devices
CN114138145A (zh) * 2021-11-30 2022-03-04 武汉噢易云计算股份有限公司 应用虚拟化的文件拖拽方法、装置、设备及可读存储介质
CN114928524B (zh) * 2022-05-20 2024-03-26 浪潮思科网络科技有限公司 一种web端与交换机的交互方法、设备及介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08272715A (ja) * 1995-03-31 1996-10-18 Canon Inc 情報転送方法および掲示板装置
US5767851A (en) * 1996-01-29 1998-06-16 Sun Microsystems, Inc. Method and apparatus for emulating an environment's drag and drop functionality in a host environment
US6138150A (en) * 1997-09-03 2000-10-24 International Business Machines Corporation Method for remotely controlling computer resources via the internet with a web browser
US6687745B1 (en) 1999-09-14 2004-02-03 Droplet, Inc System and method for delivering a graphical user interface of remote applications over a thin bandwidth connection
TW559699B (en) * 2000-01-12 2003-11-01 Sony Corp Image display device and method
US6941382B1 (en) * 2000-02-07 2005-09-06 Raja Tuli Portable high speed internet or desktop device
US7165239B2 (en) * 2001-07-10 2007-01-16 Microsoft Corporation Application program interface for network software platform
US7117504B2 (en) * 2001-07-10 2006-10-03 Microsoft Corporation Application program interface that enables communication for a network software platform
US7017162B2 (en) * 2001-07-10 2006-03-21 Microsoft Corporation Application program interface for network software platform
US7546602B2 (en) * 2001-07-10 2009-06-09 Microsoft Corporation Application program interface for network software platform
US6920461B2 (en) * 2001-07-10 2005-07-19 Microsoft Corp. Application program interface for network software platform
JP2003091489A (ja) * 2001-09-14 2003-03-28 Sony Corp ネットワーク情報処理システム及び情報処理方法
US20030093466A1 (en) * 2001-11-15 2003-05-15 Jarman James D. Drag and drop technology for remote control tool
US7650575B2 (en) 2003-03-27 2010-01-19 Microsoft Corporation Rich drag drop user interface
US20050091359A1 (en) 2003-10-24 2005-04-28 Microsoft Corporation Systems and methods for projecting content from computing devices
US7721254B2 (en) * 2003-10-24 2010-05-18 Microsoft Corporation Programming interface for a computer platform
US7590750B2 (en) * 2004-09-10 2009-09-15 Microsoft Corporation Systems and methods for multimedia remoting over terminal server connections
KR100611255B1 (ko) * 2004-10-15 2006-08-10 한국과학기술연구원 작업 공간을 공유하는 원격 회의 방법
JP4738805B2 (ja) * 2004-12-16 2011-08-03 株式会社リコー 画面共有システム、画面共有方法、画面共有プログラム
US8769127B2 (en) * 2006-02-10 2014-07-01 Northrop Grumman Systems Corporation Cross-domain solution (CDS) collaborate-access-browse (CAB) and assured file transfer (AFT)
US7533349B2 (en) * 2006-06-09 2009-05-12 Microsoft Corporation Dragging and dropping objects between local and remote modules

Also Published As

Publication number Publication date
US20070288599A1 (en) 2007-12-13
RU2430405C2 (ru) 2011-09-27
EP2033107A1 (en) 2009-03-11
MX2008015484A (es) 2009-03-06
CN101467139A (zh) 2009-06-24
CN101467139B (zh) 2012-05-30
AU2007257440A1 (en) 2007-12-13
JP4482615B2 (ja) 2010-06-16
RU2008148326A (ru) 2010-06-20
EP2033107A4 (en) 2017-03-29
US7802195B2 (en) 2010-09-21
US7533349B2 (en) 2009-05-12
WO2007142708A1 (en) 2007-12-13
JP2009540428A (ja) 2009-11-19
CA2654040A1 (en) 2007-12-13
EP2033107B1 (en) 2019-08-07
US20090210811A1 (en) 2009-08-20
KR20090027624A (ko) 2009-03-17
BRPI0712350A2 (pt) 2012-05-29

Similar Documents

Publication Publication Date Title
TW200807948A (en) Dragging and dropping objects between local and remote modules
CN104995927B (zh) 用于构建和使用混合移动应用的系统和方法
US20140075453A1 (en) Method and device for controlling communication between applications in a web runtime environment
JP2015505102A5 (zh)
US10180944B2 (en) Information processing device, non-transitory computer readable recording medium and information processing method for transferring files from a first server to a second server
JP5743671B2 (ja) 情報処理装置およびその制御方法
CN103562859B (zh) 应用激活框架
JP5801518B2 (ja) 情報伝送方法、装置、システム、および端末
TW200900956A (en) Identifying appropriate client-side script references
JP5680400B2 (ja) 表示装置、画面画像転送方法、及びプログラム
JP2014149829A (ja) ヘルプ情報を検出及び表示するための方法、医療用機器、モバイルアプリケーション及びシステム
JP2005267614A5 (zh)
TW201015342A (en) Asynchronous queued messaging for web applications
US20140063545A1 (en) Server device, information processing method, and computer program product
JP2015148916A (ja) 操作処理装置、情報機器の制御方法およびコンピュータープログラム
JP6424538B2 (ja) 情報処理装置、情報処理システム及びプログラム
JP2011039928A (ja) 文書レビュー作業支援システム
TWI248027B (en) Online firmware-updating system and method thereof
JP3660922B2 (ja) 配信情報表示方法
JP6471439B2 (ja) 情報処理装置、システム及びプログラム
JP2022171366A (ja) 制御プログラム、制御方法、制御システム及びシステム制御方法
WO2017154565A1 (ja) 共同作業システム、編集制御プログラム及び編集制御方法
JP2005190412A (ja) ファイル転送装置、ファイル転送システム、ファイル転送方法及びプログラム
JP2007156956A (ja) 画面表示情報連携方法,画面表示情報連携システム及び画面表示情報連携用プログラム