CN101467139A - 在本地和远程模块之间拖放对象 - Google Patents
在本地和远程模块之间拖放对象 Download PDFInfo
- Publication number
- CN101467139A CN101467139A CNA2007800212234A CN200780021223A CN101467139A CN 101467139 A CN101467139 A CN 101467139A CN A2007800212234 A CNA2007800212234 A CN A2007800212234A CN 200780021223 A CN200780021223 A CN 200780021223A CN 101467139 A CN101467139 A CN 101467139A
- Authority
- CN
- China
- Prior art keywords
- drag
- drop
- action
- computer system
- component
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 122
- 230000009471 action Effects 0.000 claims description 134
- 230000004044 response Effects 0.000 claims description 41
- 230000005540 biological transmission Effects 0.000 claims description 15
- 238000004088 simulation Methods 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims 2
- 238000004590 computer program Methods 0.000 abstract description 3
- 230000000694 effects Effects 0.000 description 69
- 241000699666 Mus <mouse, genus> Species 0.000 description 46
- 238000003860 storage Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction 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/0486—Drag-and-drop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/08—Protocols specially adapted for terminal emulation, e.g. Telnet
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及用于在本地和远程模块之间拖放对象的方法、系统和计算机程序产品。终端服务器组件模拟拖放操作中的参与者的功能以便于在本地和远程模块之间以及在远程和本地模块之间拖放对象。终端服务器组件本地交互以便与参与拖放操作的模块通信。终端服务器组件还通过终端服务器会话发送消息以将适当的拖放信息分程传送给终端服务器会话的另一端的相应终端服务器组件。
Description
背景
计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已改变人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执行的各种任务(例如,文字处理、日程安排和数据库管理)。通常,为了执行这各种任务,计算机系统包括多个相应的应用程序。例如,为执行文字处理,计算机系统可包括文字处理应用程序,为操纵电子表格,计算机系统可包括电子表格应用程序,等等。
在独立的计算环境中,能够在计算机系统处执行不同任务的应用程序之间移动对象通常是有用的。例如,将文字处理应用程序中生成的文本的一部分移至演示程序中作为用于图片或绘图的描述性文本可能是有用的。为允许应用程序之间的对象移动,某些计算机系统包括可由计算机处的应用程序以共用的方式接口的一部分存储器(例如,剪贴板)。由此,一个应用程序可以与该部分存储器接口以存储对象,然后另一应用程序可与该部分存储器接口以检索该对象。由此,应用程序(甚至是那些不能兼容地直接交换对象的应用程序)可通过该部分存储器来交换对象。
许多独立计算环境还包括结合视觉提示使用输入设备来直接在兼容应用程序之间传送对象的更为方便的能力。用于应用程序之间的直接传送的一种常见的机制是“拖放”。为便于拖放,用户在一个应用程序内标识对象(例如,一部分文本、图像或电子表格单元格)。例如,用户可用鼠标加亮一部分文本。可使用视觉提示,例如背光,来向用户指示该文本被选中。
用户操纵输入设备来选择所标识的对象。例如,用户操纵鼠标来将光标在所标识的文本上移动,然后可按下鼠标左键。用户然后进一步操纵输入设备以将该对象移至另一应用程序。例如,在保持鼠标左键按下的同时,用户可操纵该鼠标以将光标在另一应用程序上移动(拖曳)。一旦在另一应用程序上,用户可释放鼠标左键。释放鼠标按键的动作使得该对象被传送到(或放到)该另一应用程序。
在其它环境中,计算机系统被彼此耦合并被耦合到其它电子设备,以形成计算机系统和其它电子设备可以在其上传送电子数据的有线和无线计算机网络。结果,在计算机系统处执行的许多任务(例如,语音通信、访问电子邮件、控制家用电子设备、Web浏览、以及打印文档)包括许多计算机系统和/或其他电子设备之间经由有线和/或无线计算机网络的通信(例如,电子消息交换)。
在网络化环境中,能够在执行不同任务的应用程序之间移动对象通常也是有用的,其中某些应用程序本地运行,而其它应用程序例如在终端服务器处远程运行。终端服务器是维护可由客户机计算机系统远程地调用的应用程序的计算机系统。输入被送入客户机计算机系统处,并通过网络(例如,使用基于ITUT.120协议家族的协议,诸如远程桌面协议(“RDP”))传送到终端服务器处的应用程序。该应用程序如同该输入是在终端服务器处送入的那样来处理该输入。该应用程序响应于所接收到的输入生成输出,并且该输出通过网络(例如,还是基于T.120的协议)传送到客户机计算机系统。客户机计算机系统呈现该输出数据。由此,接收输入,并且在客户机计算机系统处呈现输出,而处理实际上是在终端服务器处发生的。
为允许在本地和远程应用程序之间移动对象,某些网络化计算机系统包括类似于在独立环境中所使用的剪贴板功能。分配一部分存储器(或剪贴板),并且该部分存储器可由计算机系统处的应用程序以共用的方式来接口。由此,本地应用程序可以与该部分存储器接口以存储对象,然后远程应用程序可与该部分存储器接口以检索该对象,反之亦然。由此,应用程序(甚至是在不同计算机系统处运行的应用程序)可通过该部分存储器来交换对象。
然而,许多网络化计算机系统缺少在本地和远程应用程序之间以及在远程和本地应用程序之间拖放对象的更方便的能力。即,客户机和服务器终端服务器组件通常未被配置成通过终端服务器会话来拖放对象并与放置源或放置目标交互以便于拖放传送。例如,服务器组件通常没有方法来确定鼠标光标在(客户机系统处的)远程桌面窗口之外的移动是否与拖放操作相关联或用户是否正出于其它原因而移动鼠标。
简要概述
本发明涉及用于在本地和远程模块之间拖放对象的方法、系统和计算机程序产品。在某些实施例中,一对象从本地应用程序拖放到远程应用程序。客户机组件检测到桌面窗口光标已从远程应用程序的应用程序窗口界限外部移至其内部。客户机组件接收指示即将发生的拖放操作的放置通知。该放置通知指示一拖放对象要被传送到该远程应用程序。客户机组件通过终端服务器会话将传送该拖放对象的请求以及桌面窗口光标的坐标位置发送给服务器计算机系统。
服务器组件接收该请求,并将拖放对象传送通知转发给远程应用程序。服务器组件响应于接收到传送拖放对象的请求担当代表本地应用程序的代理放置源,包括从远程应用程序接收到对拖放对象的请求。服务器组件通过终端服务器会话将该对拖放对象的请求转发给客户机组件。
客户机组件通过终端服务器会话从服务器组件接收将该对拖放对象的请求。客户机组件担当代表远程应用程序的代理放置目标,包括将该对拖放对象的请求转发给本地应用程序并从本地应用程序接收拖放对象。客户机组件通过终端服务器会话将将该拖放对象发送给服务器计算机系统。
服务器组件通过终端服务器会话从客户机组件接收该拖放对象。服务器组件担当代表本地应用程序的代理放置源,包括将该拖放对象发送给远程应用程序。
在其它实施例中,一对象从远程应用程序拖放到本地应用程序。客户机组件检测到桌面窗口光标已从远程应用程序的界限内部移至其外部。客户机组件通过终端服务器会话向服务器组件发送消息。该消息向服务器组件指示桌面窗口光标已从远程应用程序的应用程序窗口界限内部移至其外部。
服务器组件通过终端服务器会话从客户机组件接收消息。服务器组件确定桌面窗口光标的移动与即将发生的拖放操作相关联。
客户机组件担当代表远程应用程序的代理放置源,包括从本地应用程序接收对拖放对象的查询。该查询指示本地应用程序处表示该拖放对象将被传送到本地应用程序的放置通知。客户机组件通过终端服务器会话将该对拖放对象的请求发送给服务器组件。
服务器组件接收该请求。服务器组件担当代表本地应用程序的代理放置目标,包括将该对拖放对象的请求转发给远程应用程序并从远程应用程序接收拖放对象。服务器组件通过终端服务器会话将该拖放对象发送给客户机计算机系统。
客户机组件接收该拖放对象。客户机组件担当代表远程应用程序的代理放置源,包括将该拖放对象发送给本地应用程序。
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
另外的特征和优点将在以下的描述中阐述,并且部分可从该描述中显而易见,或者可以从此处的教示实践中习得。本发明的特征和优点可以通过在所附权利要求中特别指出的手段和组合来认识并获取。本发明的特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本发明的实践而获知。
附图简述
为了描述能够获得上述和其它优点和特征的方式,将通过参考附图中示出的各具体实施例来呈现对以上简述的主题的更为具体的描述。应该理解这些附图仅描绘了各典型实施例,因此其不应被认为是对范围的限制。通过使用附图,将会用另外的特征和细节描述并解释各实施例,在附图中:
图1A示出了便于将对象从本地模块拖放到远程模块的示例计算机体系结构。
图1B示出了描绘从本地模块到远程模块的拖放操作的示例桌面窗口。
图2A-2C示出了用于将对象从本地模块拖放到远程模块的示例方法的流程图。
图3A示出了便于将对象从远程模块拖放到本地模块的示例计算机体系结构。
图3B示出了描绘从远程模块到本地模块的拖放操作的示例桌面窗口。
图4A-4C示出了用于将对象从远程模块拖放到本地模块的示例方法的流程图。
详细描述
本发明涉及用于在本地和远程模块之间拖放对象的方法、系统和计算机程序产品。在某些实施例中,一对象从本地应用程序拖放到远程应用程序。客户机组件检测到桌面窗口光标已从远程应用程序的应用程序窗口界限外部移至其内部。客户机组件接收指示即将发生的拖放操作的放置通知。该放置通知指示一拖放对象要被传送到该远程应用程序。客户机组件通过终端服务器会话将传送该拖放对象的请求以及桌面窗口光标的坐标位置发送给服务器计算机系统。
服务器组件接收该请求,并将拖放对象传送通知转发给远程应用程序。服务器组件响应于接收到传送拖放对象的请求担当代表本地应用程序的代理放置源,包括从远程应用程序接收到对拖放对象的请求。服务器组件通过终端服务器会话将该对拖放对象的请求转发给客户机组件。
客户机组件通过终端服务器会话从服务器计算机系统接收该对拖放对象的请求。客户机组件担当代表远程应用程序的代理放置目标,包括将该对拖放对象的请求转发给本地应用程序并从本地应用程序接收拖放对象。客户机组件通过终端服务器会话将将该拖放对象发送给服务器计算机系统。
服务器组件通过终端服务器会话从客户机组件接收该拖放对象。服务器组件担当代表本地应用程序的代理放置源,包括将该拖放对象发送给远程应用程序。
在其它实施例中,一对象从远程应用程序拖放到本地应用程序。客户机组件检测到桌面窗口光标已从远程应用程序的界限内部移至其外部。客户机组件通过终端服务器会话向服务器组件发送消息。该消息向服务器组件指示桌面窗口光标已从远程应用程序的应用程序窗口界限内部移至其外部。
服务器组件通过终端服务器会话从客户机组件接收消息。服务器组件确定桌面窗口光标的移动与即将发生的拖放操作相关联。
客户机组件担当代表远程应用程序的代理放置源,包括从本地应用程序接收对拖放对象的查询。该查询指示本地应用程序处表示该拖放对象将被传送到本地应用程序的放置通知。客户机组件通过终端服务器会话将该对拖放对象的请求发送给服务器组件。
服务器组件接收该请求。服务器组件担当代表本地应用程序的代理放置目标,包括将该对拖放对象的请求转发给远程应用程序并从远程应用程序接收拖放对象。服务器组件通过终端服务器会话将将该拖放对象发送给客户机计算机系统。
客户机组件接收该拖放对象。客户机组件担当代表远程应用程序的代理放置源,包括将该拖放对象发送给本地应用程序。
本发明的各实施例可以包括含有计算机硬件的专用或通用计算机,这将在以下做出进一步讨论。本发明的范围内的各实施例也包括用于承载或其上储存有计算机可执行指令或数据结构的计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,计算机可读介质可包括计算机可读存储介质,如RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其它介质。
在本说明书和所附权利要求书中,“网络”被定义为允许在计算机系统和/或模块之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为计算机可读介质。因此,作为示例而非限制,计算机可读介质可包括可用于承载或存储计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的网络或数据链路。
计算机可执行指令包括例如,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。例如,计算机可执行指令可以是二进制代码、诸如汇编语言等中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,可以在具有许多类型的计算机系统配置的网络计算环境中实践本发明,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机等等。本发明也可以在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备中。
在本说明书和所附权利要求书中,“放置目标”被定义为要接收作为拖放操作的主体的对象的模块。
在本说明书和所附权利要求书中,“放置源”被定义为要发起作为拖放操作的主体的对象的模块。
在本说明书和所附权利要求书中,“代理放置目标”被定义为与放置源和相同的会话相关联且担当放置源和放置目标之间的中介的模块。代理放置目标可以模拟实际放置目标的功能以便于通过终端服务器会话的拖放操作。在某些实施例中,代理放置目标是模拟放置目标功能并参与终端服务器会话的管理的终端服务器会话组件。
在本说明书和所附权利要求书中,“代理放置源”被定义为与放置目标和相同的会话相关联且担当放置源和放置目标之间的中介的模块。代理放置源可以模拟实际放置源的功能以便于通过终端服务器会话的拖放操作。在某些实施例中,代理放置源是模拟放置源功能并参与终端服务器会话的管理的终端服务器会话组件。
在本说明书和所附权利要求书中,经由网络通信交换以便于拖放操作的消息一般定义如下:
开始拖放(START_DRAG_DROP)消息:从代理放置目标到代理放置源的指示,用于发起拖放模态循环。该消息可包括可提供的格式数据的名称和ID。
开始拖放响应(START_DRAG_DROP_RESPONSE)消息:来自代理放置源的指示,指示已对放置目标开始拖放模态循环。
更新放置效果(UPDATE_DROP_EFFECT)消息:指示对放置目标更新的放置效果。即,放置目标可能以该数据做什么。
停止拖放(STOP_DRAG_DROP)消息:从代理放置目标到代理放置源的指示,用于停止拖放操作。
进行拖放(DO_DRAG_DROP)消息:从代理放置目标到代理放置源的指示,用于发起放置操作。指示经由网络通信发送的进行拖放消息的Drop(放置)消息可经由对象链接和嵌入(“OLE”)转发给放置目标。响应于Drop消息,放置目标可以请求代理数据对象并调用GetData(获取数据)方法。
进行拖放响应(DO_DRAG_DROP_RESPONSE)消息:来自代理放置源的指示,指示拖放操作已完成(例如,响应于进行拖放消息发送)。
格式数据请求(FORMAT_DATA_REQUEST)消息:当放置目标请求数据时由代理数据对象发送给代理放置源。
格式数据响应(FORMAT_DATA_RESPONSE)消息:由代理放置目标发送给代理数据对象并包含任何所请求的数据。
其它消息也可经由网络交换以便于拖放操作。
图1A示出了便于将对象从本地模块拖放到远程模块的示例计算机体系结构100。计算机系统101(例如,客户机)和计算机系统111(例如,服务器)。计算机系统101和111可以被连接到诸如局域网(“LAN”)、广域网(“WAN”)或甚至因特网等网络。因此,计算机系统101和111处的各个组件可相互之间,以及向连接至该网络的其他组件收发数据。因此,各组件可以创建消息相关数据并通过网络(例如,网际协议(“IP”)数据报和利用IP数据报的其它更高层协议,诸如传输控制协议(“TCP”)、远程桌面协议(“RDP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)、独立计算体系结构(“ICA”)等)交换消息相关数据。
如图所示,计算机系统101包括应用程序102、客户机模块106以及用户界面104,而计算机系统111包括应用程序112和服务器模块116。计算机系统101和计算机系统111经由通过网络建立的终端服务器会话131(例如,RDP会话)来彼此通信。客户机组件106和服务器组件116可以互操作以便于终端服务器会话131的管理。例如,将在用户界面104处接收到的用户输入从计算机系统101传送到计算机系统111、将用户输入转发到计算机系统111处适当的远程应用程序、接收来自从计算机系统111处的远程应用程序的输出、将远程应用程序输出从计算机系统111传送到计算机系统101、以及在用户界面104处输出远程应用程序输出。由此,对于远程应用程序(从用户界面104的观点来看),在计算机系统101处接收输入并呈现输出,而处理实际上是在计算机系统111处发生的。
可使用虚拟通道来扩展终端服务器会话功能(例如,通过扩展RDP协议),从而允许应用程序通过终端服务器会话(例如,RDP连接)来传送应用程序专用数据。由此,除了输入和输出数据之外,可通过虚拟通道交换其它类型的数据。例如,虚拟通道121可以是被配置成将拖放对象从计算机系统101传送到计算机系统111的通道。虚拟通道121可以将客户机组件106处的拖放线程连接到客户机服务器组件116处的拖放线程,反之亦然。因此,客户机组件106和服务器组件116可以互操作来通过虚拟通道121在计算机系统101和计算机系统111处适当的应用程序之间拖放数据。
图1B示出了描绘从本地模块到远程模块的拖放操作的示例桌面窗口123。如图所示,桌面窗口123是用户界面104的一部分,且包括应用程序窗口102W和远程桌面113。应用程序窗口120W对应于应用程序102,且被配置成接收对应用程序102的用户输入并向用户呈现来自应用程序102的输出。远程桌面113包括用于在计算机系统111的远程的任何应用程序的应用程序窗口。例如,应用程序窗口112W对应于应用程序112,且被配置成接收对应用程序112的用户输入并向用户呈现来自应用程序112的输出。
图2A-2C示出了用于将对象从本地模块拖放到远程模块的示例方法200的流程图。方法200将参考计算机体系结构100中的组件和数据来描述。
方法200包括从本地应用程序窗口中选择拖放对象的动作(动作201)。例如,计算机系统101的用户可从应用程序窗口102W内选择对象126。对象126可以实质上是计算机系统处的任何可选择对象,诸如,例如一部分文本、图形或声音数据、电子表格单元格、数据库条目、电子消息等等。
方法200包括修改桌面窗口光标以可视地表示一拖放对象被选中的动作(动作202)。例如,在选择对象126之后,光标133可被修改为包括放置效果指示符134。放置效果可包括移动、复制、链接、创建到所选对象的超链接、以及创建到所选对象的快捷方式中的任一个。光标133可用不同方式来修改或补充以指示不同的放置效果。例如,可以显示放置效果指示符134以指示放置效果是复制。
放置效果可从对应用程序可用的放置效果中选择。当光标133在桌面窗口123的不同窗口之间转换时,所呈现的放置效果指示符可改变。例如,当光标133在应用程序窗口120W的界限之内时,可显示对应用程序102的默认放置效果(例如,复制效果)。当光标133在任何应用程序窗口的界限之外时,可显示对桌面窗口123的默认放置效果(例如,操作系统)。例如,对于桌面窗口123,可能完全不支持拖放功能,且因此当处于用户界面104的该区域中时光标133被变换为“不允许”符号。当进入应用程序窗口112W时,可显示对应用程序112的默认放置效果(例如,复制效果)。
方法200包括客户机组件检测到对远程应用程序桌面窗口光标已从应用程序窗口的界限外部移至其内部的动作(动作203)。例如,客户机组件106可检测光标133已从应用程序窗口112W的界限外部移至其内部。(图1B中的虚线指示光标133从应用程序窗口102W经过桌面窗口123和远程桌面113到应用程序窗口112W的路径。)
动作201、202和203可被包括在拖放操作设置中,以将对象从本地应用程序传送到远程应用程序。当光标134悬停在应用程序窗口112W上时,客户机组件106可调用DragEnter(拖曳进入)方法。通过DragEnter方法,客户机组件106(担当放置目标代理)可回头向应用程序102指示其是否能接受对象126。DragEnter方法的参数可以是以下格式:
HRESULT DragEnter(
IDataObject* pDataObject,//源数据对象(例如,对象126)。
DWORD dwKeyState,//键盘和鼠标状态。
POINTL pt,//光标位置。
DWORD* pdwDropEffect//所得放置效果。
)
通过DragEnter方法,目标(或代理目标)可通过更新pdwDropEffect参数来指示其是否能接受可能的放置。该参数最初可包含源所允许的一组放置效果。所得放置效果部分地基于由数据对象提供的格式,并且还可受到当前键盘和鼠标状态,以及可能甚至鼠标位置的影响。
随后,客户机组件106可通过虚拟通道121(例如,剪贴板虚拟通道)向服务器组件116发送开始拖放消息。该开始拖放消息可包括描述对象126的内容以及应用程序102的所允许的放置效果的格式名。在发送了该消息之后,通知(例如,通过操作系统事件)计算系统101处的输入处理程序拖放操作已开始。响应于该事件,输入处理程序可禁用键盘挂钩和输入同步。为确保对格式数据的请求可在放置发生之前得到满足,可存储对象126。
当在服务器组件116处接收到开始拖放消息时,提取描述对象126的内容和应用程序102的所允许的放置效果的格式名。作为响应,创建代理数据对象136,并创建用于服务器组件116的窗口。可以使得该窗口透明(或以其它方式隐藏),并且该窗口的大小可以很小(例如,1 x 1像素大小)。该窗口被给予焦点并提升到z次序的顶部。由此,可将输入引导(剪贴)到该窗口以将输入引导到服务器组件116。由此,输入可被引导到服务器组件116而不会显著地更改桌面窗口123。例如,1 x 1的透明窗口可能不会被用户察觉到。
响应于接收到的鼠标按下事件,服务器组件116(代理放置源)调用DoDragDrop(进行拖放)方法。DoDragDrop方法的参数可以是以下格式:
HRESULT DoDragDrop(
IDataObject* pDataObject, //源数据对象。
IDropSource* pDropSource, //放置源接口。
DWORD dwAllowedDropEffects, //允许的放置效果。
DWORD* pdwFinalDropEffect //最终放置效果。
)
DoDragDrop方法可被包括在用于方便拖放操作的模态循环中。一般而言,为开始拖放操作,一组件用适当的参数来调用DoDragDrop。DoDragDrop使用SetCapture(设置捕捉)API来捕捉鼠标,然后进入一循环。
为将输入转发给服务器组件116,输入处理程序将鼠标按下事件发送给客户机组件106,并且由于鼠标已被剪切到用于服务器组件116的(可能小且透明的)窗口,因此鼠标按下事件最终被发送到服务器组件116的输入队列。鼠标按下事件的接收可用于配置对象链接和嵌入(“OLE”)隐藏窗口来接收系统级鼠标事件消息。开始拖放响应的接收还触发客户机组件106处的方法在执行之前检查的布尔标志的切换。这增加了当服务器组件116活动时发送消息的可能性。
当光标133被拖曳到应用程序窗口112W上时,调用DragOver(拖曳到上方)方法。DoDragDrop方法的参数可以是以下格式:
HRESULT DragOver(
DWORD dwKeyState, //键盘和鼠标状态。
POINTL pt, //光标位置。
DWORD* pdwDropEffect //所得放置效果。
)
在调用DragOver期间,可检查当前鼠标位置、鼠标按键状态和键盘状态的改变。如果检测到改变,则客户机组件106的输入处理程序将适当的鼠标移动、鼠标按键抬起或按下、或键盘按键抬起或按下消息发送给服务器组件116。
服务器组件166(代理放置源)可连续地调用QueryContinueDrag(查询连续拖曳)方法。QueryContinueDrag方法的参数可以是以下格式:
HRESULT QueryContinueDrag(
BOOL fEscapePressed, //如果按下ESE则为TRUE。
DWORD dwKeyState //键盘和鼠标状态。
)
QueryContinueDrag方法可用于向放置源(或代理放置源)通知当前键盘和鼠标状态。基于该输入,放置源(或代理放置源)可决定继续拖曳、取消拖曳还是允许放置发生。放置源通过HRESULT返回值来指示其决定。例如,S_OK可指示继续,DRAGDROP_S_CANCEL可指示取消,而DRAGDROP_S_DROP可指示允许放置。当光标133悬停在应用程序窗口112W上时,QueryContinueDrag可返回S_OK,因为取消或放置操作尚未发生。
服务器组件116还可调用GiveFeedback(给出反馈)方法来将应用程序112的放置效果(移动、复制、链接等)返回给客户机组件106。GiveFeedback方法的参数可以是以下格式:
HRESULT GiveFeedback(
DWORD dwDropEffect //当前目标(例如,应用程序112)
//放置效果。
)
一般而言,GiveFeedback方法向放置源(或代理放置源)通知当前放置效果,使得它可给出适当的视觉反馈。视觉反馈通过HRESULT返回值来指示。值S_OK意味着源适当地设置了光标,而DRAGDROP_S_USEDEFAULTCURSORS指示源满足于使用OLE提供的默认光标。
当服务器组件116调用GiveFeedback时,应用程序112的放置效果在更新放置效果消息中通过虚拟通道121从服务器组件116发送到客户机组件106。客户机组件106存储放置效果并将放置效果返回给应用程序102(例如,通过调用DragOver方法)。
基于计算机系统101处的鼠标和键盘状态,应用程序102最终可决定取消拖曳操作或允许放置发生。由此,在某些实施例中,取消拖曳操作(且因此不发生放置)。如果发生取消,则通过DragLeave(拖曳离开)方法通知客户机组件106(代理放置目标),该方法例如可以是以下格式:
HRESULT DragLeave();
服务器组件116的事件处理程序可存储在停止拖放消息中指示的取消结果。由此,下一次调用QueryContinueDrag时,其返回DRAGDROP_S_CANCEL,使得拖曳操作结束于计算机系统111处。
在其它实施例中,发生放置。因此,方法200包括发起放置操作的动作(动作204)。例如,应用程序102可发起放置操作以将对象126传送给应用程序112。用户可操纵输入设备来使得放置发起。例如,用户可在光标133悬停在应用程序窗口112W上时释放鼠标的鼠标左键。
方法200包括接收指示拖放对象要被传送到远程应用程序的放置通知的动作(动作205)。例如,客户机组件106可接收指示对象126要作为即将发生的拖放操作的一部分被传送给应用程序112的放置通知。方法200包括发送将拖放对象连同桌面光标窗口的坐标位置一起传送的请求的动作(动作206)。例如,响应于接收放置通知,客户机组件106可向服务器组件116发送进行拖放消息以请求将对象126传送给应用程序112。进行拖放消息可通过虚拟通道121发送,并且可包括光标133的坐标位置。
方法200包括接收传送拖放对象以及桌面光标窗口的坐标位置的请求的动作(动作207)。例如,服务器组件116可接收请求将对象126传送给应用程序112的进行拖放消息。当进行拖放消息到达服务器组件116处时,事件处理程序存储要发生放置的指示。由此,当下一次调用QueryContinueDrag时,QueryContinueDrag返回DRAGDROP_S_DROP(指示要发生放置)。然而,在返回该值之前,可向客户机组件106发送给予焦点(GIVE_FOCUS)消息。
在接收到给予焦点消息时,客户机组件106可通过调用SetForegroundWindows(设置前台窗口)API来获得输入焦点。
服务器组件116还可通过虚拟通道121向客户机组件106发送进行拖放响应消息。
方法200包括将拖放对象传送通知转发给相应的应用程序的动作(动作208)。例如,服务器组件116可基于光标133的坐标位置(例如,悬停在应用程序窗口112W上),将对于对象126的放置通知转发给应用程序112。方法200包括接收拖放对象传送通知的动作(动作209)。例如,应用程序112可从服务器组件116接收对于对象126的放置通知。
方法200包括请求拖放对象的动作(动作210)。例如,应用程序112可向服务器组件116请求对象126。方法200包括从相应的应用程序接收对拖放对象的请求的动作(动作211)。例如,服务器组件116可从应用程序112接收对于对象126的请求。服务器组件116可检测代理对象136上的GetData(获取数据)调用。
方法200包括向客户机组件发送对拖放对象的请求的动作(动作212)。例如,服务器组件116可通过虚拟通道121向客户机组件106发送格式数据请求消息。格式数据请求消息请求用于应用程序102的对象126。方法200包括从服务器组件接收对拖放对象的请求的动作(动作213)。例如,客户机组件106可通过虚拟通道121从服务器组件116接收格式数据请求消息。
方法200包括向本地应用程序转发对拖放对象的请求的动作(动作214)。例如,客户机组件106可向应用程序102转发对于对象126的请求。方法200包括接收对拖放对象的请求的动作(动作215)。例如,应用程序102可接收对于对象126的请求。
在某些实施例中,用于格式数据请求消息的事件处理程序使用了存储在DragEnter方法中的对拖放对象引用来执行GetData调用。当检索了格式数据时,对其进行适当的编码。
方法200包括发送拖放对象的动作(动作216)。例如,在接收到返回的格式和放置效果之后,应用程序102可将对象126发送给客户机组件106。方法200包括从本地应用程序接收拖放对象的动作(动作217)。例如,客户机组件217可从应用程序102接收对象126。
方法200包括向服务器组件发送拖放对象的动作(动作218)。例如,客户机组件106可通过虚拟通道121向服务器组件116发送格式数据请求消息,包括来自对象126的数据。方法200包括从客户机组件接收拖放对象的动作(动作219)。例如,服务器组件116可通过虚拟通道121从客户机组件106接收格式数据请求消息,包括来自对象126的数据。
方法200包括向远程应用程序转发拖放对象的动作(动作220)。例如,服务器组件116可向应用程序112转发来自对象126的数据。方法200包括接收拖放对象的动作(动作221)。例如,应用程序112可接收来自对象126的数据。因此,取决于所选的放置效果,来自对象126的数据从应用程序102移动、复制、链接、超链接或通过快捷方式到应用程序112。
在某些实施例中,适当编码的数据随后通过线路在格式数据响应消息中发送。当在服务器组件116处接收到该格式数据响应消息之后,调用适当的事件处理程序,并且提取并解码格式化的数据。一旦事件处理程序完成了提取,格式化的数据被返回给放置目标,导致本地放置目标的Drop方法调用完成。
当Drop调用结束时,DoDragDrop循环终止,并且返回放置效果(例如,给服务器组件116)。查询拖放对象的PerformedDropEffect(执行的放置效果)和LogicalPerformedDropEffect(逻辑上执行的放置效果)。这两个格式,以及最终的放置效果和DoDragDrop HRESULT在进行拖放响应消息中本地发送给客户机组件106。客户机组件116将这些结果返回给其代理Drop方法。在接收到进行拖放响应消息之后,客户机组件106处的事件处理程序存储结果。客户机组件116的代理Drop方法继续执行,用所返回的格式初始化对象126,并将放置效果和HRESULT返回给OLE子系统。
客户机组件106(代理放置目标)和服务器组件116(代理放置源)可用各种不同的方式来配置以便于实现方法200。
例如,客户机组件106(代理放置目标)可被配置成指示拖放模态循环何时开始。客户机组件106可通过虚拟通道121向服务器组件116发送开始拖放消息。当处理了开始拖放消息时,服务器组件116(代理放置源)可对应用程序112(放置目标)开始拖放模态循环。
客户机组件106还可被配置成发送应用程序102(放置源)可支持的格式列表。对DragEnter方法的参数之一是指向包含应用程序102能够提供的数据的数据对象的指针。使用格式枚举器,从该数据对象中提取格式名,对其编码然后将其作为开始拖放消息的参数发送,使得代理数据对象可由服务器组件116来创建。
客户机组件106还可被配置成更新远程鼠标位置、键状态和键盘状态。就在开始拖放模态循环之前,服务器组件116可通过虚拟通道121发送开始拖放响应消息。当该消息由客户机组件106接收时,客户机组件106的DragOver方法可以自由地开始将当前鼠标位置、鼠标键状态和键盘状态的更新发送给服务器组件116。对于鼠标和键盘两者的键状态从传递给DragOver方法的参数中获得。这些更新补偿了具有输入焦点和鼠标捕捉的应用程序102。
客户机组件106还可被配置成返回从服务器组件116接收到的最新放置效果。服务器组件116可在应用程序112一改变放置效果就向客户机组件106发送更新放置效果消息。作为DragOver处理的一部分,经更新的放置效果被返回给计算机系统101的OLE子系统以向应用程序102通知当前放置效果。
客户机组件106还可被配置成就当前拖曳操作的状态来更新服务器组件116。如果已经调用了DragLeave方法,则应用程序102决定取消拖放操作。因此,应用程序112应做同样的事并且调用其DragLeave方法。客户机组件106可将适当的信息分程传送给服务器组件116以使得应用程序112调用其DragLeave方法。
客户机组件106还可被配置成如果发生放置则存储指向对象126的指针。如果发生放置,则应用程序112可请求对象126。为帮助确保可返回对象126,客户机组件106可存储指向在Drop调用中接收到的对象126的指针。由此,当以格式数据请求消息的形式接收到对于对象的请求时,客户机组件116可通过对所保存的对象126执行GetData调用来提供适当的格式数据,并且在格式数据响应消息中返回该数据。
服务器组件116可被配置成创建通告正确的格式名的代理数据对象。开始拖放消息参数之一是应用程序112能够提供的格式列表。在开始远程模态循环之前,创建并用这些格式名来填充代理数据对象。所创建的数据对象然后作为DoDragDrop调用中的参数传递给计算机系统111的OLE子系统。由此,远程会话内的放置目标能够在发生放置时查询格式并检索数据。
服务器组件116还可被配置成将当前放置效果分程传送给客户机组件106。应用程序112返回给计算机系统111的OLE子系统的放置效果作为GiveFeedback调用的一部分被传递给客户机组件106。该放置效果通过虚拟通道121在更新放置效果消息中发送给计算机系统101,使得客户机组件106可在调用其DragOver方法时返回该放置效果。
服务器组件116还可被配置成当由客户机组件106指示时发起取消或放置。当在计算机系统101处发生放置或取消操作时,可调用客户机组件106的Drop或DragLeave方法。当发生这一情况时,一消息被发送给服务器组件116,使得下一次调用QueryContinueDrag时,可向计算机系统111的OLE子系统返回正确的HRESULT。如果接收到开始拖放消息,则返回DRAGDROP_S_CANCEL。如果接收到进行拖放消息,则返回DRAGDROP_S_DROP。否则,返回S_OK并且模态循环继续。
代理对象136可在接收到开始拖放消息时创建。代理对象136本质上通过返回对象126所通告的相同的格式来模拟对象126。当从代理对象136请求数据时,其向计算机系统101发送格式数据请求消息。客户机组件106然后可从对象126检索数据,并在格式数据响应消息中发回该数据。
因此,本发明的各实施例可方便将对象从远程模块拖放到本地模块。
图3A示出了便于将对象从远程桌面模块拖放到本地桌面模块的示例计算机体系结构300。计算机系统301(例如,客户机)和计算机系统311(例如,服务器)。计算机系统301和311可以被连接到诸如局域网(“LAN”)、广域网(“WAN”)或甚至因特网等网络。因此,计算机系统301和311处的各个组件可相互之间,以及向连接至该网络的其他组件收发数据。因此,各组件可以创建消息相关数据并通过网络(例如,网际协议(“IP”)数据报和利用IP数据报的其它更高层协议,诸如传输控制协议(“TCP”)、远程桌面协议(“RDP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)、独立计算体系结构(“ICA”)等)交换消息相关数据。
如图所示,计算机系统301包括应用程序302、客户机模块306以及用户界面304,而计算机系统111包括应用程序312和服务器模块316。计算机系统301和计算机系统311经由通过网络建立的终端服务器会话331(例如,RDP会话)来彼此通信。客户机组件306和服务器组件316可以互操作以便于终端服务器会话331的管理。例如,将在用户界面304处接收到的用户输入从计算机系统301传送到计算机系统311、将用户输入转发到计算机系统311处适当的远程应用程序、接收来自从计算机系统311处的远程应用程序的输出、将远程应用程序输出从计算机系统311传送到计算机系统301、以及在用户界面304处输出远程应用程序输出。由此,对于远程应用程序(从用户界面304的观点来看),在计算机系统301处接收输入并呈现输出,而处理实际上是在计算机系统311处发生的。
虚拟通道321可以是被配置成将拖放对象从计算机系统311传送到计算机系统301的通道。虚拟通道321可以将客户机组件306处的拖放线程连接到服务器组件316处的拖放线程,反之亦然。因此,客户机组件306和服务器组件316可以互操作来通过虚拟通道321在计算机系统301和计算机系统311处的适当应用程序之间拖放数据。
图3B示出了描绘从本地模块到远程模块的拖放操作的示例桌面窗口323。如图所示,桌面窗口323是用户界面304的一部分,且包括应用程序窗口302W和远程桌面313。应用程序窗口302W对应于应用程序302,且被配置成接收对应用程序302的用户输入并向用户呈现来自应用程序302的输出。远程桌面313包括用于在计算机系统311的远程的任何应用程序的应用程序窗口。例如,应用程序窗口312W对应于应用程序312,且被配置成接收对应用程序312的用户输入并向用户呈现来自应用程序312的输出。
图4A-4C示出了用于将对象从远程模块拖放到本地模块的示例方法400的流程图。方法400将参考计算机体系结构300中的组件和数据来描述。
方法400包括从远程应用程序窗口中选择拖放对象的动作(动作401)。例如,计算机系统301的用户可从应用程序窗口312W内选择对象326。对象326可以实质上是计算机系统处的任何可选择对象,诸如,例如一部分文本、图形或声音数据、电子表格单元格、数据库条目、电子消息等等。
方法400包括修改桌面窗口光标以可视地表示一拖放对象被选中的动作(动作402)。例如,在选择对象326之后,光标333可被修改为包括放置效果指示符334。放置效果可包括移动、复制、链接、创建到所选对象的超链接、以及创建到所选对象的快捷方式中的任一个。光标333可用不同方式来修改或补充以指示不同的放置效果。例如,可以显示放置效果指示符334以指示放置效果是移动。
放置效果可从对应用程序可用的放置效果中选择。当光标333在桌面窗口323的不同窗口之间转换时,所呈现的放置效果指示符可改变。例如,当光标333在应用程序窗口312W的界限之内时,可显示对应用程序312的默认放置效果(例如,移动效果)。当光标333在任何应用程序窗口的界限之外时,可显示对桌面窗口323的默认放置效果(例如,操作系统)。例如,对于桌面窗口323,可能完全不支持拖放功能,且因此当处于用户界面304的该区域中时光标333被变换为“不允许”符号。当进入应用程序窗口302W时,可显示对应用程序302的默认放置效果(例如,移动效果)。
方法400包括客户机组件检测到桌面窗口光标已从远程应用程序窗口的界限外部移至其内部的动作(动作403)。例如,客户机组件306可检测到光标333已从应用程序窗口302W的界限外部移至其内部。(图3B中的虚线指示光标333从应用程序窗口312W经过远程桌面313和桌面窗口323到应用程序窗口302W的路径。)
方法400包括发送指示桌面窗口光标已移动的消息的动作(动作404)。例如,客户机组件306可通过虚拟通道321向服务器组件316发送鼠标已离开(MOUSE_HAS_LEFT)消息。鼠标已离开消息指示光标333以移至应用程序窗口312的外部(和/或移出远程桌面313)。方法400包括接收指示桌面窗口光标已移动的消息的动作(动作405)。例如,服务器组件316可通过虚拟通道321从客户机组件116接收鼠标已离开消息。
方法400包括确定桌面窗口光标的移动与即将发生的拖放操作相关联的动作(动作406)。例如,服务器组件316可确定将光标移至应用程序窗口313的界限之外与对于对象326的拖放操作相关联。服务器组件316可调用公共对象模型(“COM”)API来查询是否有实际的拖放操作即将发生,或者鼠标是否出于其它原因而移动。
动作401、402、403、404和405可以作为设置从远程模块到本地模块的拖放操作的一部分来包括。例如,当用户在客户机窗口中按下鼠标按键时,该鼠标由输入处理程序窗口捕捉。当鼠标被拖曳时,可重复地检查该鼠标以确定是否仍悬停在输入处理程序窗口上。如果鼠标未悬停在输入处理程序窗口上,则可能已经开始了从远程模块向本地模块的拖曳。在检测到鼠标离开远程模块之后,通过虚拟通道将鼠标已离开消息发送给服务器组件316。
在接收到该消息之后,服务器组件316被转换成为代理放置目标。向代理放置目标的转换可使用至少两种不同的机制来实现。一种机制包括最大化阿尔法混合的拖放窗口以填满整个会话屏幕可操作区域(real-estate),然后迫使阿尔法混合的拖放窗口到z次序的顶部。另一种机制包括调用OLE API。
在转换为代理放置目标服务器之后,组件316可在远程会话中担当代理放置目标。例如,在成为代理放置目标之后,可对服务器组件316调用DragEnter方法。DragEnter方法使得对象326被存储并且开始拖放消息被发送给客户机组件306。
开始拖放消息可由客户机组件306处的事件处理程序来处理。事件处理程序可提取格式名和允许的放置效果。作为响应,客户机组件306可发起进行模态循环(DO_MODAL_LOOP)事件以通知计算机系统301的输入处理程序,要开始本地拖放循环。在接收到进行模态循环事件之后,输入处理程序构造代理对象328并将拖放通知事件重定向到客户机组件306。由此,使得客户机组件306转换为代理放置源。
拖放通知事件可通过禁用拖放线程上的事件宿,并对客户机组件306启用特别创建的事件宿来重定向。在开始DoDragDrop模态循环之前,可向拖放线程发信号通知循环将要开始。作为响应,客户机组件306可以向服务器组件316发送开始拖放响应消息。在接收到开始拖放响应消息之后,服务器组件316可以自由地向客户机组件306发送拖放消息,诸如,例如进行拖放和停止拖放消息。
然而,当鼠标正在应用程序窗口302W中到处拖曳时,各种鼠标和键盘按键事件可能是感兴趣的。应用程序312(远程应用程序)上的QueryContinueDrag可用于获得对该信息的更新。为用当前输入状态更新服务器组件316,输入处理程序发送适当的鼠标按键提起或按下以及键盘按键提起或按下。在客户机组件306上调用GiveFeedback方法以通过利用更新放置效果消息用应用程序302返回的放置效果来更新服务器组件316。在计算机系统311处,存储放置效果,并且稍后在服务器组件316调用的DragOver方法中返回该效果。
基于计算机系统301处的鼠标和键盘状态,应用程序312最终可决定取消拖曳操作或允许放置发生。由此,在某些实施例中,取消拖曳操作(且因此不发生放置)。如果发生取消,则通过DragLeave(拖曳离开)方法通知服务器组件316(代理放置目标)。
响应于取消,服务器组件316还可向客户机组件306发送停止拖放消息。在发送了停止拖放消息之后,可释放对象326。客户机组件306的事件处理程序可存储在停止拖放消息中指示的取消结果。由此,下一次调用QueryContinueDrag时,其返回DRAGDROP_S_CANCEL,使得拖曳操作结束于计算机系统301处。
在其它实施例中,发生放置。当用户将鼠标在本地应用程序窗口302W上到处移动时,用户可释放鼠标按键。当鼠标按键被释放时,客户机组件306通过虚拟通道321向服务器组件316指示该释放。作为响应,服务器组件316可向客户机组件306发送进行拖放消息以请求将对象326传送到应用程序302。服务器组件316可向应用程序302发送进行拖放消息的指示。客户机组件306可通过虚拟通道321向服务器组件316发送进行拖放响应消息。
方法400包括发送对拖放对象的查询的动作(动作407)。例如,响应于进行拖放消息的指示,应用程序302可查询代理对象328。方法400包括从本地应用程序接收对拖放对象的查询的动作(动作408)。例如,客户机组件306可从应用程序302接收对于对象326的查询。
方法400包括从服务器组件接收对拖放对象的请求的动作(动作409)。例如,客户机组件306可通过虚拟通道321向服务器组件316发送格式数据请求消息。格式数据请求消息请求用于应用程序312的对象326。方法400包括从客户机组件接收对拖放对象的请求的动作(动作410)。例如,服务器组件316可通过虚拟通道321从客户机组件306接收格式数据请求消息。
方法400包括向远程应用程序转发对拖放对象的请求的动作(动作411)。例如,服务器组件316可向应用程序312转发对于对象326的请求。方法400包括接收对拖放对象的请求的动作(动作412)。例如,应用程序312可从服务器组件316接收对于对象326的请求。
方法400包括发送拖放对象的动作(动作413)。例如,应用程序312可向服务器组件316发送对象326。方法400包括从远程应用程序接收拖放对象的动作(动作414)。例如,服务器组件316可从应用程序312接收对象326。
方法400包括向客户机组件发送拖放对象的动作(动作415)。例如,服务器组件316可通过虚拟通道321向客户机组件306发送格式数据请求消息,包括来自对象326的数据。方法400包括从服务器组件接收拖放对象的动作(动作416)。例如,客户机组件306可通过虚拟通道321从服务器组件306接收格式数据请求消息,包括来自对象326的数据。
方法400包括向本地应用程序转发拖放对象的动作(动作417)。例如,客户机组件306可向应用程序312转发来自对象326的数据。方法400包括请求拖放对象的动作(动作418)。例如,应用程序302可从客户机组件306接收来自对象306的数据。因此,取决于所选的放置效果,来自对象326的数据从应用程序312移动、复制、链接、超链接或通过快捷方式到应用程序302。
客户机组件306(代理放置源)和服务器组件316(代理放置目标)可用各种不同的方式来配置以便于实现方法400。
例如,客户机组件306(代理放置源)可被配置成创建通告正确格式名的代理数据对象、将当前放置效果分程传送到服务器组件316、当服务器组件316指令时指示取消或放置、以及更新应用程序窗口312W内的鼠标键状态和键盘状态。可使用QueryContinueDrag方法来接收包含键盘键和鼠标按键状态的键状态向量。键盘键和鼠标按键状态可通过虚拟通道321被发送给服务器组件316。
服务器组件316(代理放置目标)可被配置成指示拖放模态循环何时开始、发送应用程序312能提供的格式列表、将从客户机组件306接收到的最新放置效果返回给应用程序312、就即将发生的拖放操作的状态来更新客户机组件306、以及如果发生放置则存储指针对象326。
代理数据对象328可在接收到开始拖放消息时创建。代理对象328本质上通过返回对象326所通告的相同的格式来模拟对象326。当从代理数据对象328请求数据时,其向计算机系统311发送格式数据请求消息。服务器组件316然后可从对象326检索数据,并在格式数据响应消息中发回该数据。
因此,本发明的各实施例可方便将对象从远程模块拖放到本地模块。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述说明书来指示。落入权利要求书的等效方式的含义和范围内的所有改变应被权利要求书的范围涵盖。
Claims (20)
1.一种在计算机系统(101)处的方法,所述计算机系统包括在所述计算机系统(101)处运行的本地应用程序(102)和客户机组件(106),所述客户机组件(106)参与与在服务器计算机系统(111)处的服务器组件(116)的终端服务器会话(131),所述方法用于使用拖放来将对象从所述本地应用程序(102)传送到所述服务器计算机系统(111)处的远程模块,所述方法包括:
所述客户机组件(106)检测桌面窗口光标(133)已从远程应用程序(112)的应用程序窗口(112W)的界限外部移至其内部的动作;
所述客户机组件(106)接收指示即将发生的拖放操作的放置通知的动作,所述放置通知指示拖放对象(126)要被传送到所述远程应用程序(112)
所述客户机组件(106)响应于接收到所述放置通知,通过所述终端服务器会话(131)向所述服务器计算机系统(111)发送传送所述拖放对象(126)的请求以及所述桌面窗口光标(133)的坐标位置的动作;
所述客户机组件(106)通过所述终端服务器会话(131)从所述服务器计算机系统(111)接收对所述拖放对象的请求的动作;
所述客户机组件(106)响应于接收到对所述拖放对象(126)的请求担当代表所述远程应用程序(112)的代理放置目标,包括:
将对所述拖放对象的请求(126)转发给所述本地应用程序(102)的动作;以及
响应于对所述拖放对象(126)的请求从所述本地应用程序(102)接收所述拖放对象(126)的动作;以及
所述客户机组件(106)通过所述终端服务器会话(131)向所述服务器计算机系统(111)发送所述拖放对象(126)以便传递到所述远程应用程序(112)的动作。
2.如权利要求1所述的方法,其特征在于,还包括:
将所述客户机组件配置为代理放置目标,使得所述客户机组件可从所述本地应用程序接收拖放对象的动作。
3.如权利要求1所述的方法,其特征在于,还包括:
接收从本地应用程序窗口内选择拖放对象的用户输入的动作,所述本地应用程序窗口表示用于所述本地应用程序的用户界面;以及
修改桌面窗口光标以可视地表示拖放对象已被选中的动作。
4.如权利要求1所述的方法,其特征在于,所述检测桌面窗口光标已从远程应用程序的应用程序窗口的界限外部移至其内部的动作包括检测所述桌面窗口光标从本地应用程序窗口的界限内部移至所述远程应用程序的应用程序窗口的界限内部的动作。
5.如权利要求1所述的方法,其特征在于,所述客户机组件接收指示即将发生的拖放操作的放置通知的动作包括检测输入设备上的按键的状态改变的动作。
6.如权利要求1所述的方法,其特征在于,所述客户机组件通过所述终端服务器会话向所述服务器计算机系统发送传送所述拖放对象的请求以及所述桌面窗口光标的坐标位置的动作包括通过所述终端服务器会话的虚拟通道发送消息的动作。
7.如权利要求1所述的方法,其特征在于,所述客户机组件通过所述终端服务器会话向所述服务器计算机系统发送传送所述拖放对象的请求以及所述桌面窗口光标的坐标位置的动作包括通过远程桌面协议会话发送消息的动作。
8.一种在计算机系统(111)处的方法,所述计算机系统(111)包括在所述计算机系统(111)处运行的一个或多个远程应用程序(112)以及服务器组件(116),所述服务器组件(116)参与与在客户机计算机系统(101)处的客户机组件的终端服务器会话(131),在所述计算机系统(111)处运行的所述一个或多个远程应用程序(112)被配置成由所述客户机计算机系统(101)通过所述终端服务器会话(131)来远程地访问,所述方法用于使用拖放来将对象从所述客户机计算机系统(101)处的模块传送到所述一个或多个远程应用程序(112)之一,所述方法包括:
所述服务器组件(116)接收将拖放对象(126)传送到所述计算机系统(111)的请求以及指示所述客户机计算机系统(110)处的桌面窗口光标(133)的坐标的坐标位置的动作,所述请求和坐标位置通过所述终端服务器会话(131)来发送;
所述服务器组件(116)将拖放对象传送通知转发给对应于所述坐标位置的远程应用程序的动作;
所述服务器组件(116)响应于接收所述传送拖放对象(126)的请求担当代表所述客户机计算机系统(101)处的应用程序(102)的代理放置源,包括所述服务器组件(116)从所述远程应用程序(112)接收对所述拖放对象(126)的请求的动作;
所述服务器组件(116)通过所述终端服务器会话(131)将对所述拖放对象(126)的请求转发给所述客户机组件(106)的动作;
所述服务器组件(116)通过所述终端服务器会话(131)从所述客户机组件(106)接收所述拖放对象(126)的动作;以及
所述服务器组件(116)响应于接收所述拖放对象(126)担当代表所述客户机计算机系统(101)处的所述应用程序(102)的代理放置源,包括所述服务器组件(116)向所述远程应用程序(112)发送所述拖放对象(126)的动作。
9.如权利要求8所述的方法,其特征在于,所述服务器组件接收将拖放对象传送到所述计算机系统的请求以及指示在所述客户机计算机系统处的桌面窗口光标的位置的坐标位置的动作包括通过所述终端服务器会话的虚拟通道来接收消息的动作。
10.如权利要求8所述的方法,其特征在于,还包括:
创建代理对象以模拟由所述拖放对象通告的格式的动作。
11.如权利要求8所述的方法,其特征在于,还包括:
将所述服务器组件配置为代理放置源,使得所述服务器组件可向所述远程应用程序提供拖放对象的动作。
12.如权利要求8所述的方法,其特征在于,还包括:
所述服务器组件发起拖放模态循环的动作。
13.一种在计算机系统(301)处的方法,所述计算机系统(301)包括在所述计算机系统(301)处运行的本地应用程序(302)和客户机组件(306),所述客户机组件(306)参与与在服务器计算机系统(311)处的服务器组件(316)的终端服务器会话(331),所述方法用于使用拖放来将对象从所述服务器计算机系统处的远程模块传送到所述本地应用程序(302),所述方法包括:
所述客户机组件(306)检测桌面窗口光标(333)已从远程应用程序(312)的应用程序窗口(312W)的界限内部移至其外部的动作;
所述客户机组件(306)通过所述终端服务器会话(331)向所述服务器组件(316)发送消息的动作,所述消息向所述服务器组件(316)指示所述桌面窗口光标(333)已从所述远程应用程序(312)的应用程序窗口(312W)的界限内部移至其外部;
所述客户机组件(306)响应于接收到对所述拖放对象(326)的请求担当代表所述远程应用程序(312)的代理放置源,包括所述客户机组件(306)从所述本地应用程序(302)接收对拖放对象的查询的动作,所述查询指示所述本地应用程序(302)处表示所述拖放对象(326)将被传送给所述本地应用程序(302)的放置通知;
所述客户机组件(302)向所述服务器组件(316)发送对所述拖放对象(326)的请求的动作,所述请求响应于所述查询通过所述终端服务器会话(331)来发送,所述请求向所述服务器组件(316)指示所述本地应用程序(302)正请求所述拖放对象(326);
所述客户机组件(306)通过所述终端服务器连接(311)从所述服务器计算机系统(311)接收所述拖放对象(326)的动作;以及
所述客户机组件(306)响应于接收所述拖放对象(326)担当代表所述远程应用程序(312)的代理放置源,包括所述客户机组件(306)向所述本地应用程序(302)发送所述拖放目标(326)的动作。
14.如权利要求13所述的方法,其特征在于,所述客户机组件检测桌面窗口光标已从远程应用程序的应用程序窗口的界限内部移至其外部的动作包括检测所述桌面光标窗口已从远程应用程序的所述应用程序移至所述本地应用程序的本地应用程序窗口的动作。
15.如权利要求13所述的方法,其特征在于,还包括:
创建代理对象以模拟由所述拖放对象通告的格式的动作。
16.如权利要求13所述的方法,其特征在于,还包括:
将所述客户机组件配置为代理放置源,使得所述客户机组件可向所述客户机组件提供拖放对象的动作。
17.如权利要求13所述的方法,其特征在于,还包括:
接收从远程应用程序的应用程序窗口内选择拖放对象的用户输入的动作,所述应用程序窗口表示用于所述远程应用程序的用户界面;以及
修改桌面窗口坐标以可视地表示拖放对象已被选中的动作。
18.一种在计算机系统(311)处的方法,所述计算机系统(311)包括在所述计算机系统(311)处运行的一个或多个远程应用程序(312)和服务器组件(306),所述服务器组件(306)参与与在客户机计算机系统(301)处的客户机组件(306)的终端服务器会话(331),在所述所述计算机系统(311)处运行的所述一个或多个远程应用程序(312)被配置成可由所述客户机计算机系统(301)通过所述终端服务器会话(331)来远程地访问,所述方法用于使用拖放来将对象从远程应用程序(312)传送到所述客户机计算机系统(301)处的模块,所述方法包括:
所述服务器组件(316)通过所述终端服务器会话(331)从所述客户机组件(306)接收消息的动作,所述消息向所述服务器组件(316)指示桌面窗口光标(333)已从对应于所述客户机计算机系统(311)处的远程应用程序(312)的应用程序窗口(312W)的界限内部移至其外部;
所述服务器组件(316)确定所述桌面窗口光标(333)的移动与即将发生的拖放操作相关联的动作;
所述服务器组件(316)从所述客户机组件(306)接收对拖放对象(326)的请求的动作,所述请求响应于来自所述客户机计算机系统(301)处的应用程序(302)的对所述拖放对象(326)的查询通过所述终端服务器会话(331)发送,所述请求向所述服务器组件(316)指示所述客户机组件(306)处的所述应用程序(302)正向所述远程应用程序(312)请求所述拖放对象(326)
所述服务器组件(316)响应于接收对所述拖放对象(326)的请求担当代表所述客户机计算机系统(311)处的所述应用程序(316)的代理放置目标,包括:
将对所述拖放对象(326)的请求转发给所述远程应用程序(312)的动作;以及
接收响应于对所述拖放对象(326)的请求从所述远程应用程序(312)发送的所述拖放对象(126)的动作;以及
所述服务器组件(316)通过所述终端服务器会话(331)向所述客户机计算机系统(310)发送所述拖放对象以传送到所述客户机计算机系统(301)处的所述应用程序(302)的动作。
19.如权利要求18所述的方法,其特征在于,还包括:
将所述服务器组件配置为代理放置目标,使得所述服务器组件能从所述远程应用程序接收拖放对象的动作。
20.如权利要求18所述的方法,其特征在于,所述服务器组件通过所述终端服务器会话向所述客户机计算机系统发送所述拖放对象的动作包括所述服务器组件通过远程桌面协议会话的虚拟通道发送所述拖放对象的动作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/423,400 | 2006-06-09 | ||
US11/423,400 US7533349B2 (en) | 2006-06-09 | 2006-06-09 | Dragging and dropping objects between local and remote modules |
PCT/US2007/003702 WO2007142708A1 (en) | 2006-06-09 | 2007-02-13 | Dragging and dropping objects between local and remote modules |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101467139A true CN101467139A (zh) | 2009-06-24 |
CN101467139B CN101467139B (zh) | 2012-05-30 |
Family
ID=38801780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800212234A Active CN101467139B (zh) | 2006-06-09 | 2007-02-13 | 在本地和远程模块之间拖放对象的方法 |
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) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102566983A (zh) * | 2010-12-07 | 2012-07-11 | 腾讯科技(深圳)有限公司 | 基于Windows系统的对象拖拽实现方法及其系统 |
CN103186421A (zh) * | 2011-12-31 | 2013-07-03 | 联想(北京)有限公司 | 一种在混合系统远程桌面实现数据交互的方法和装置 |
CN103186430A (zh) * | 2011-12-30 | 2013-07-03 | 联想(北京)有限公司 | 文件操作装置及方法,和对应的数字处理设备和数字处理系统 |
CN103975321A (zh) * | 2011-12-06 | 2014-08-06 | 三星电子株式会社 | 通过设备共享页面的系统及方法 |
CN104571782A (zh) * | 2013-10-18 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 远程控制方法、系统、操控终端及被控终端 |
CN103955328B (zh) * | 2014-04-29 | 2017-01-18 | 广东威创视讯科技股份有限公司 | 操作端查阅拼接墙中显示内容的方法和系统 |
CN109117217A (zh) * | 2017-06-22 | 2019-01-01 | 佳能株式会社 | 信息处理设备、信息处理方法和记录介质 |
CN110651243A (zh) * | 2017-05-16 | 2020-01-03 | 苹果公司 | 用于触摸屏设备的拖放 |
CN114138145A (zh) * | 2021-11-30 | 2022-03-04 | 武汉噢易云计算股份有限公司 | 应用虚拟化的文件拖拽方法、装置、设备及可读存储介质 |
CN114928524A (zh) * | 2022-05-20 | 2022-08-19 | 浪潮思科网络科技有限公司 | 一种web端与交换机的交互方法、设备及介质 |
Families Citing this family (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9268518B2 (en) | 2011-09-27 | 2016-02-23 | Z124 | Unified desktop docking rules |
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 |
US9715252B2 (en) | 2011-08-24 | 2017-07-25 | Z124 | Unified desktop docking behavior for window stickiness |
JP4759000B2 (ja) * | 2005-01-31 | 2011-08-31 | ティンプリント アーゲー | アプリケーションサーバを経由した印刷の方法およびシステム、ならびに対応するコンピュータプログラム、および対応するコンピュータ読み取り可能な記憶媒体 |
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 |
US20080215998A1 (en) * | 2006-12-07 | 2008-09-04 | Moore Dennis B | Widget launcher and briefcase |
US8117555B2 (en) * | 2006-12-07 | 2012-02-14 | Sap Ag | Cooperating widgets |
US8539073B1 (en) | 2006-12-29 | 2013-09-17 | Google Inc. | Startup of container applications |
US9384346B1 (en) | 2006-12-29 | 2016-07-05 | Google Inc. | Local service access within a web based application framework |
US8248636B1 (en) | 2006-12-29 | 2012-08-21 | Google Inc. | WYSIWYG printing for web based applications |
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 |
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 |
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 |
US11258652B2 (en) | 2008-06-08 | 2022-02-22 | Apple Inc. | System and method for placeshifting media playback |
US8516125B2 (en) * | 2008-06-08 | 2013-08-20 | Apple Inc. | System and method for simplified data transfer |
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 |
US8555185B2 (en) * | 2009-06-08 | 2013-10-08 | Apple Inc. | User interface for 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 |
US8610924B2 (en) | 2009-11-24 | 2013-12-17 | International Business Machines Corporation | Scanning and capturing digital images using layer detection |
US8441702B2 (en) | 2009-11-24 | 2013-05-14 | International Business Machines Corporation | Scanning and capturing digital images using residue detection |
KR20110064674A (ko) | 2009-12-08 | 2011-06-15 | 삼성전자주식회사 | 동적 로컬 기능 결합 장치 및 방법 |
EP2517091A4 (en) * | 2009-12-23 | 2013-11-06 | Nokia Corp | METHOD AND DEVICE FOR AN INDICATION DEVICE |
US9274821B2 (en) | 2010-01-27 | 2016-03-01 | Vmware, Inc. | Independent access to virtual machine desktop content |
US9009219B2 (en) * | 2010-01-27 | 2015-04-14 | Vmware, Inc. | Native viewer use for service results from a remote desktop |
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 |
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 |
US8907906B2 (en) | 2011-09-27 | 2014-12-09 | Z124 | Secondary single screen mode deactivation |
US20130097541A1 (en) * | 2011-10-13 | 2013-04-18 | Gface Gmbh | Smart drag and drop |
US9164544B2 (en) | 2011-12-09 | 2015-10-20 | Z124 | Unified desktop: laptop dock, hardware configuration |
US9529518B2 (en) * | 2012-05-25 | 2016-12-27 | Panasonic Intellectual Property Corporation Of America | Information processing device, information processing method, and information processing program |
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 | 삼성전자주식회사 | 데이터 통신을 위한 단말 장치 및 방법 |
US10516980B2 (en) | 2015-10-24 | 2019-12-24 | Oracle International Corporation | Automatic redisplay of a user interface including a visualization |
US10664488B2 (en) | 2014-09-25 | 2020-05-26 | Oracle International Corporation | Semantic searches in a business intelligence system |
US10417247B2 (en) | 2014-09-25 | 2019-09-17 | Oracle International Corporation | Techniques for semantic searching |
US10082941B2 (en) * | 2015-05-20 | 2018-09-25 | Vmware, Inc. | Optimizing window move actions for remoted applications |
US10545717B2 (en) | 2015-10-08 | 2020-01-28 | Pcms Holdings, Inc. | Methods and systems of automatic calibration for dynamic display configurations |
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 |
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 |
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 |
EP3888352A2 (en) | 2018-11-30 | 2021-10-06 | 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广东移动通信有限公司 | 文件处理方法、装置、终端及存储介质 |
CN111752722A (zh) * | 2020-05-28 | 2020-10-09 | 西安万像电子科技有限公司 | 数据传输方法及设备 |
CN115657918A (zh) * | 2020-07-29 | 2023-01-31 | 华为技术有限公司 | 一种跨设备的对象拖拽方法及设备 |
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 |
Family Cites Families (21)
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 |
US7117504B2 (en) * | 2001-07-10 | 2006-10-03 | Microsoft Corporation | Application program interface that enables communication for a network software platform |
US6920461B2 (en) * | 2001-07-10 | 2005-07-19 | Microsoft Corp. | Application program interface for 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 |
US7165239B2 (en) * | 2001-07-10 | 2007-01-16 | Microsoft Corporation | 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 |
-
2006
- 2006-06-09 US US11/423,400 patent/US7533349B2/en active Active
-
2007
- 2007-02-13 RU RU2008148326/08A patent/RU2430405C2/ru not_active IP Right Cessation
- 2007-02-13 AU AU2007257440A patent/AU2007257440A1/en not_active Abandoned
- 2007-02-13 CN CN2007800212234A patent/CN101467139B/zh active Active
- 2007-02-13 CA CA002654040A patent/CA2654040A1/en not_active Abandoned
- 2007-02-13 BR BRPI0712350-7A patent/BRPI0712350A2/pt not_active IP Right Cessation
- 2007-02-13 KR KR1020087029934A patent/KR20090027624A/ko not_active Application Discontinuation
- 2007-02-13 JP JP2009514255A patent/JP4482615B2/ja active Active
- 2007-02-13 WO PCT/US2007/003702 patent/WO2007142708A1/en active Application Filing
- 2007-02-13 MX MX2008015484A patent/MX2008015484A/es not_active Application Discontinuation
- 2007-02-13 EP EP07750533.7A patent/EP2033107B1/en active Active
- 2007-04-09 TW TW096112370A patent/TW200807948A/zh unknown
-
2009
- 2009-04-23 US US12/428,850 patent/US7802195B2/en active Active
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102566983B (zh) * | 2010-12-07 | 2016-04-20 | 腾讯科技(深圳)有限公司 | 基于Windows系统的对象拖拽实现方法及其系统 |
CN102566983A (zh) * | 2010-12-07 | 2012-07-11 | 腾讯科技(深圳)有限公司 | 基于Windows系统的对象拖拽实现方法及其系统 |
CN109978490A (zh) * | 2011-12-06 | 2019-07-05 | 三星电子株式会社 | 通过设备共享页面的系统及方法 |
CN103975321A (zh) * | 2011-12-06 | 2014-08-06 | 三星电子株式会社 | 通过设备共享页面的系统及方法 |
CN103186430A (zh) * | 2011-12-30 | 2013-07-03 | 联想(北京)有限公司 | 文件操作装置及方法,和对应的数字处理设备和数字处理系统 |
CN103186421A (zh) * | 2011-12-31 | 2013-07-03 | 联想(北京)有限公司 | 一种在混合系统远程桌面实现数据交互的方法和装置 |
CN104571782A (zh) * | 2013-10-18 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 远程控制方法、系统、操控终端及被控终端 |
CN103955328B (zh) * | 2014-04-29 | 2017-01-18 | 广东威创视讯科技股份有限公司 | 操作端查阅拼接墙中显示内容的方法和系统 |
CN110651243A (zh) * | 2017-05-16 | 2020-01-03 | 苹果公司 | 用于触摸屏设备的拖放 |
CN109117217A (zh) * | 2017-06-22 | 2019-01-01 | 佳能株式会社 | 信息处理设备、信息处理方法和记录介质 |
CN114138145A (zh) * | 2021-11-30 | 2022-03-04 | 武汉噢易云计算股份有限公司 | 应用虚拟化的文件拖拽方法、装置、设备及可读存储介质 |
CN114138145B (zh) * | 2021-11-30 | 2024-05-28 | 武汉噢易云计算股份有限公司 | 应用虚拟化的文件拖拽方法、装置、设备及可读存储介质 |
CN114928524A (zh) * | 2022-05-20 | 2022-08-19 | 浪潮思科网络科技有限公司 | 一种web端与交换机的交互方法、设备及介质 |
CN114928524B (zh) * | 2022-05-20 | 2024-03-26 | 浪潮思科网络科技有限公司 | 一种web端与交换机的交互方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101467139B (zh) | 2012-05-30 |
WO2007142708A1 (en) | 2007-12-13 |
US20070288599A1 (en) | 2007-12-13 |
EP2033107B1 (en) | 2019-08-07 |
US7533349B2 (en) | 2009-05-12 |
JP2009540428A (ja) | 2009-11-19 |
RU2008148326A (ru) | 2010-06-20 |
BRPI0712350A2 (pt) | 2012-05-29 |
JP4482615B2 (ja) | 2010-06-16 |
MX2008015484A (es) | 2009-03-06 |
AU2007257440A1 (en) | 2007-12-13 |
EP2033107A1 (en) | 2009-03-11 |
EP2033107A4 (en) | 2017-03-29 |
US20090210811A1 (en) | 2009-08-20 |
US7802195B2 (en) | 2010-09-21 |
RU2430405C2 (ru) | 2011-09-27 |
CA2654040A1 (en) | 2007-12-13 |
TW200807948A (en) | 2008-02-01 |
KR20090027624A (ko) | 2009-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101467139B (zh) | 在本地和远程模块之间拖放对象的方法 | |
US10366148B1 (en) | Lightweight browser monitoring and viewing | |
CN104395878B (zh) | 动态用户界面定制 | |
Hu et al. | Vita: A crowdsensing-oriented mobile cyber-physical system | |
CN105051686B (zh) | 用于集成的推荐的系统和方法 | |
CN100530085C (zh) | 实现虚拟语音一键通功能的方法和装置 | |
US20090271773A1 (en) | Method of and instruction set for executing operations on a device | |
US20060206827A1 (en) | Live graphical user interface builder | |
CN101855618A (zh) | 用于在应用执行期间改变执行环境的方法和系统 | |
CN101180598A (zh) | 用于提供过程指南的方法和装置 | |
JP6640893B2 (ja) | 文字を入力する方法及び装置 | |
CN104246659A (zh) | 可实例化的手势对象 | |
CN101789964A (zh) | 一种对嵌入式设备的远程控制与数据监测方法 | |
CN105094630B (zh) | 应用程序推送消息的提示信息处理方法及装置 | |
US8977966B1 (en) | Keyboard navigation | |
KR102051543B1 (ko) | Vr 훈련 시스템 및 방법 | |
US20220417343A1 (en) | Image processing method, apparatus, device, and computer-readable storage medium | |
CN104272254A (zh) | 用户界面web服务 | |
CN104603752A (zh) | 跨平台共享应用代码 | |
KR102051558B1 (ko) | Vr 훈련 시스템 및 방법 | |
JP6322758B1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN113495952A (zh) | 信息处理装置及其控制方法、以及记录介质 | |
CN113391737A (zh) | 界面的显示控制方法及装置、存储介质及电子设备 | |
JP2009080587A (ja) | データ転送サーバ | |
WO2022249900A1 (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150429 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150429 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |