一种调用安装于电子设备上的应用的方法及装置的制造方法_3

文档序号:9579078阅读:来源:国知局
t1nProgramming Interface,应用程序编程接口)函数通知虚拟机的桌面代理程序,向电子设备发送与所述应用程序启动信息对应的启动通知消息。
[0107]具体的,所述Windows API函数包括PostMessage函数。
[0108]具体的,所述启动通知消息包括第一应用在电子设备上的路径和文件名等信息。
[0109]进一步,本发明提供一种调用安装于电子设备上的应用的方法,包括在电子设备上执行的如下步骤,如图4所示:
[0110]步骤401:接收从虚拟机端发送的第一应用程序的启动通知消息;
[0111]步骤402:根据所述启动通知消息运行所述第一应用程序;
[0112]所述第一应用程序与用户在虚拟机端发出的应用程序触发指令对应,并根据应用程序触发指令确定。
[0113]所述第一应用程序在电子设备上启动并运行,使得虚拟机端调用所述第一应用时可迅速启动,避免因虚拟机配置或带宽造成的程序运行卡顿感。
[0114]在本发明的一些实施例中,所述虚拟机设置有桌面代理程序和目标存根程序;所述目标存根程序以Windows后台服务的方式运行。当收到用户在虚拟机端发出的应用程序触发指令后,所述目标存根程序调用PostMessage通知桌面代理程序,所述桌面代理程序想电子设备发出第一应用程序的启动通知消息。
[0115]具体的,所述启动通知消息包括第一应用程序在电子设备上的路径和文件名称。
[0116]所述用户在虚拟机端发出的应用程序触发指令,可以是用户输入的指令,也可以是用户在点击虚拟机桌面的对象时发出的触发指令。当允许用户在虚拟机桌面添加一个对象,使得用户通过点击该对象就可以运行相应的第一应用程序,这样可以方便用户的操作。在更佳的情况下,用户可以通过在电子设备拖动第一应用的启动快捷方式或启动图标等,向虚拟机桌面添加第一应用所对应的对象,使得用户点击该对象就可以运行第一应用。
[0117]在本发明的一些实施例中,参照图5,接收从虚拟机端发送的第一应用程序启动通知消息之前,还包括:
[0118]步骤501:检测到用户的拖放动作;
[0119]步骤502:判断所述拖放动作的结束位置在虚拟机所对应的窗口区域内;
[0120]步骤503:获取被拖放的第一应用程序的属性信息;
[0121]步骤504:将对应于所述属性信息的第一应用程序关联消息发送到虚拟机端。
[0122]步骤501中,检测到用户的拖放操作后,映射Windows消息WM_DR0PFILES,在消息处理函数OnDropFiles中执行对所述拖放动作的后续处理。
[0123]上述OnDropFiles函数调用时,为传递文件名分配电子设备的系统内存。
[0124]可以看出,在本发明实施例中,可以根据用户的拖放动作,将被拖放的第一应用程序的属性信息发送到虚拟机端,使得虚拟机在自己的桌面上创建一个用于启动第一应用程序的第一对象。
[0125]所述拖放动作,是指用鼠标拖动的方法,在不同程序的窗口之间、同一程序的不同窗口之间、同一程序同一窗口的不同控件之间,进行移动、复制和粘贴等操作的技术。拖放操作是在操作系统的帮助下完成的。被拖动的对象首先向操作系统注册它使用的数据格式,并按指定的数据格式提供数据。拖放操作结束时,接收拖放的程序窗口,按指定的数据格式提取有关数据,并根据提取的数据生成相应的对象或执行其他后续处理。
[0126]作为一个实施例,所述拖放动作为在一个对象上施加按压并拖放该对象的动作,如图6所示。
[0127]作为一个实施例,参照图7,在步骤502还包括如下步骤,
[0128]步骤5021:调用Win 32 API的GetClientRect函数获取在电子设备上呈现的虚拟桌面区域坐标;
[0129]步骤5022:调用ClientToScreen函数将坐标系转换到电子设备的屏幕坐标系;
[0130]步骤5023:调用Win 32 API的DragQueryPoint函数获取所述拖放动作结束时的位置;
[0131]步骤5024:根据所述虚拟桌面区域坐标、屏幕坐标系、拖放动作结束时的位置,判断所述拖放动作结束时的位置是否落入虚拟桌面区域之内;若是,则进入下一步骤;
[0132]步骤5025:判断所述拖放动作的结束位置在虚拟机所对应的窗口区域内。
[0133]作为一个实施例,步骤504中所述将第一应用程序关联消息包含有所述第一应用程序的属性信息,该属性信息至少包括第一应用程序在电子设备的路径和文件名。
[0134]在一种具体实施例中,若上述步骤5024中判断所述拖放动作结束时的位置没有落入虚拟桌面区域之内,贝1J在OnDropFiles消息处理函数中,调用DragFinish函数释放系统内存并返回。
[0135]步骤504中,所述第一应用程序关联消息发送到虚拟机中的桌面代理程序,告知桌面代理程序在虚拟机桌面长创建一个相对的对象,该对象在本实施例中为快捷方式对象。所述第一应用程序关联消息发送后,调用DragFinish函数释放系统分配的内存并结束处理。
[0136]在本发明的一些实施例中,检测到用户的拖放动作步骤之前,还包括:
[0137]调用Windows应用程序编程接口函数DragAcceptFiles,使得所述电子设备程序窗口允许接受拖放动作;
[0138]或,通过Windows集成开发环境设置电子设备程序窗口的Accept Files属性,使得所述电子设备程序窗口允许接受拖放动作;
[0139]所述电子设备程序窗口包括电子设备上的远端虚拟机所对应的桌面客户端程序窗P。
[0140]使得所述电子设备程序窗口允许接受拖放文件的操作之后,映射Windows消息WM_DR0PFILES,在消息处理函数OnDropFiles中处理鼠标拖放事件。
[0141]在本发明的一些实施例中,根据所述启动通知消息运行所述第一应用程序的步骤具体包括:
[0142]通过设置于电子设备上的桌面客户端窗口程序,使用ShellExecute (外壳执行)或CreateProcess (创建进程)方法,根据所述启动通知消息运行所述第一应用程序。
[0143]在本发明的一些实施例中,根据所述启动通知消息运行所述第一应用程序时,还包括:
[0144]将电子设备自身的桌面窗口隐藏或最小化。
[0145]在本发明的一些实施例中,所述电子设备上设置有桌面客户端窗口程序,该桌面客户端窗口程序用于想虚拟机发送第一应用程序关联消息、根据所述启动通知消息运行所述第一应用程序、将电子设备自身的桌面窗口隐藏或最小化。
[0146]在一些实施例中,上述桌面客户端窗口程序使用ShellExecute或CreateProcess的方法,根据收到的终端本地应用程序的路径和文件名,最终启动运行终端本地的一个应用程序。
[0147]在一些实施例中,上述桌面客户端窗口程序调用ShowWindow,将自身的桌面窗口隐藏(SW_HIDE)或最小化(SW_MIN頂IZE),避免遮挡或覆盖到终端本地应用程序运行时弹出的窗口或界面。
[0148]进一步,本发明提供一种调用安装于电子设备上的应用的装置,应用于虚拟机,结构如图8所示,包括下述结构:
[0149]指令检测模块:用于检测用户应用程序触发指令;
[0150]应用程序确定模块:用于确定所述应用程序触发指令在电子设备上所对应的第一应用程序;
[0151]启动通知消息发送模块:用于向电子设备发送所述第一应用程序的启动通知消息,使得所述电子设备能够根据所述启动通知消息运行所述第一应用程序;
[0152]所述第一应用程序为安装于电子设备上的应用程序。
[0153]本发明所提供的调用安装于电子设备上的应用的装置,可以在作为虚拟机主机的电子设备上部署并运行,而不需要安装部署到虚拟机中,一方面减轻桌面虚拟机的负担,充分利用终端本地的硬件资源;另一方面可以增加工程部署的灵活性,满足某些特定软件在电子设备终端运行的实时性和性能要求。在使用时无需用户在虚拟机桌面和电子设备本地之间切换,易用性得到提高。
[0154]仍然参照图8,所述装置还包括:
[0155]关联消息接收模块:用于接收从电子设备传送的第一应用程序关联消息;
[0156]对象创建模块:用于处理所述应用程序关联消息,在虚拟机桌面创建用于启动所述第一应用程序的第一对象。
[0157]仍然参照图8,在一些实施例中,所述用于启动第一应用程序的对象包括第一程序的桌面快捷方式对象;所述对象创建模块具体包括:
[0158]启动信息保存单元:用于保存所述第一应用程序关联消息中的第一应用程序启动信息;
[0159]操作对象声明单元:用于引用COM组件IWshRuntimeLibrary,声明对应于第一应用程序的操作对象WshShell ;
[0160]桌面快捷方式对象创建单元:用于调用CreateShortcut方法创建第一应用程序的桌面快捷方式的IWshShortcut对象;
[0161]属性保存单元:用于保存所述桌面快捷方式对象的属性信息,完成所述第一对象的创建。
[0162]在本发明的一些实施例中,所述启动通知消息发送模块进一步用于通过虚拟机的目标存根程序调用Windows API函数通知虚拟机的桌面代理程序,向电子设备发送与所述应用程序启动信息对应的启动通知消息。
[0163]具体的,所述Windows API函数包括PostMessage函数。
[0164]进一步,本发明还提供一种调用安装于电子设备上的应用的装置,应用于电子设备,其结构参照图9,包括:
[0165]启动通知消息接收模块:用于接收从虚拟机端发送的第一应用程序的启动通知消息;
[0166]应用程序运行执行模块:用于根据所述启动通知消息运行所述第一应用程序;
[0167]所述第一应用程序与用户在虚拟机端发出的应用程序触发指令对应,并根据应用程序触发指令确定。
[0168]仍然参照图9,在本发明的一些实施例中,所述装置还包括:
[0169]拖放动作检测模块:用于检测到用户的
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1