CN101436145A - 通过挂接api来重定向设备输出的方法 - Google Patents
通过挂接api来重定向设备输出的方法 Download PDFInfo
- Publication number
- CN101436145A CN101436145A CNA2007100942385A CN200710094238A CN101436145A CN 101436145 A CN101436145 A CN 101436145A CN A2007100942385 A CNA2007100942385 A CN A2007100942385A CN 200710094238 A CN200710094238 A CN 200710094238A CN 101436145 A CN101436145 A CN 101436145A
- Authority
- CN
- China
- Prior art keywords
- api
- equipment
- destination application
- api function
- hanging
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种通过挂接API来重定向设备输出的方法,通过在创建目标应用程序时,将该目标应用程序挂起,然后将该目标应用程序导入表中定位到缺省设备的API函数替换成定位到其他设备的API函数,从而实现了输出设备的重定向,使得目标应用程序可以指定不同的设备。这种方法实现起来较为简单,无需复杂的前期配置,也不会消耗额外的内存,从而使得目标应用程序可以在指定设备的条件下无损运行,并提高了系统的可靠性和可控性。
Description
技术领域
本发明涉及一种设备输出方法,尤其涉及一种通过挂接API来重定向声音、显示、打印等设备输出的方法。
背景技术
随着计算机产业的发展,计算机的设备和能力也越来越强,越来越多的显示设备、声音设备、以及打印设备等被集成或被USB化。因此,在电脑上存在多显示设备(如多个显卡)、多声音设备(如多个声卡)、多打印设备的应用已经成为了一种趋势。但是,一般来说,用户使用多设备(一机多声卡或一机多视频卡)的时候,比如一边游戏一边看电影时,由于游戏程序和电影播放程序无法实现分别指定不同的声音设备,而是一般都默认使用同一个声卡设备来播放声音,因此使得游戏的声音和电影的声音混合在一起,从而严重影响了游戏或者电影的体验。
目前已存在的多设备软件基本上分为以下两种主要方式:
1、只能指定显示设备:大多应用利用WINDOWS扩展性能指定显示输出设备,然后将软件显示在相应区域。由于这种设备所采用的技术无法将声音剥离出来,因此会造成多中应用声音的重叠,从而降低了娱乐的质量。
2、基于驱动的WINDOWS扩展:从驱动层面将模拟WINDOWS操作系统,绑定声卡或者显卡等设备。这种技术一般都是通过向WINDOWS操作系统注册一个新的设备驱动,或将新设备注册为缺省设备来完成的,虽然可以实现声音、显示或者打印等设备的定向输出,但是由于其前期配置较为繁杂,而且内存消耗较大,因此无法得到更多的应用支持,无法保证系统的可靠性与可控性。
发明内容
本发明所要解决的技术问题是提供一种通过挂接API来重定向设备输出的方法,可让目标应用程序(如游戏程序、电影播放程序、打印程序等)指定不同的显示设备、声音设备或者打印设备等,并且无需复杂的前期配置,不会消耗额外的内存,从而使得目标应用程序可在指定设备的条件下无损运行。
为解决上述技术问题,本发明提供一种通过挂接API来重定向设备输出的方法,包括以下步骤:
(1)创建目标应用程序,并将该目标应用程序置于挂起位置;
(2)对所述目标应用程序的导入表进行搜索,找出该导入表中原有指定缺省设备的API函数,然后将该API函数替换成指向需要重新定向到的设备的API函数;
(3)恢复所述目标应用程序的运行。
本发明由于采用了上述技术方案,具有这样的有益效果,即通过将在创建目标应用程序时,将该目标应用程序挂起,然后将该目标应用程序导入表中定位到缺省设备的API(应用程序接口)函数替换成定位到其他设备的API函数,从而实现了输出设备的重定向,使得目标应用程序可以指定不同的设备,而且这种方法实现起来较为简单,无需复杂的前期配置,也不会消耗额外的内存,从而使得目标应用程序可以在指定设备的条件下无损运行,并提高了系统的可靠性和可控性。而且通过本发明所述方法,使得家庭计算机可以深度利用,将计算机升级为家庭的内容供应中心,又可以将家庭电视二次利用,将电视升级为家庭的娱乐中心。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
图1为根据本发明所述方法进行输出设备重定向的实现框图;
图2为根据本发明实现输出设备重定向的流程示意图。
具体实施方式
如图1和图2所示,本发明所述方法包括以下步骤:
第一步,创建目标应用程序,并将该目标应用程序置于挂起位置。其中,所述目标应用程序可以是任何需要指定输出设备的应用程序,如游戏程序、电影播放程序、打印程序等。在一个实施例中,可以采用加载(LOADER)的方式来创建运行所述目标应用程序。
第二步,由于一般情况下,各种目标应用程序都会按照缺省设定,输出到指定的设备,而这些缺省设定一般都是由所述目标应用程序中的导入表中的API函数来指定的。因此在本发明中,需对所述目标应用程序的导入表进行搜索,找出该导入表中原有指定缺省设备的API函数,然后将该API函数替换成指向需要重新定向到的设备的API函数。另外一些情况下,目标应用程序可能会在运行过程中装入动态连接库,因此导入表中事先不会有动态连接库的信息,也不会存在相应的API函数。所以,如果在搜索导入表时,发现所述导入表中不存在API函数,则须先通过装载程序为目标应用程序提前加载包含API函数的动态连接库,并修改内存动态链接库映像的指定API入口位置的代码。
第三步,恢复所述目标应用程序的运行,以让该目标应用程序开始正常执行。
通过上述方法,当目标应用程序运行到需要调用声卡、显卡或者打印机等输出设备的相关代码时,就会定位到后来重新定位的输出设备,这样,所述重新定位的输出设备就会据此输出相应的图像或者声音。
本发明由于通过是在API层次上实现设备的重订位的,因此相对传统的设备重定位方法来说,可以提到系统的可靠性和可控性。而且这种方法实现起来较为简单,无需复杂的前期配置,也不会消耗额外的内存,从而使得目标应用程序可以在指定设备的条件下无损运行。
Claims (3)
1、一种通过挂接API来重定向设备输出的方法,其特征在于,包括以下步骤:
(1)创建目标应用程序,并将该目标应用程序置于挂起位置;
(2)对所述目标应用程序的导入表进行搜索,找出该导入表中原有的API函数,然后将该API函数替换成指向需要重新定向的设备的API函数;
(3)恢复所述目标应用程序的运行。
2、根据权利要求1所述通过挂接API来重定向设备输出的方法,其特征在于,在所述步骤(1)中,采用加载的方式来创建所述目标应用程序。
3、根据权利要求1所述通过挂接API来重定向设备输出的方法,其特征在于,在所述步骤(2)中,如果在对所述导入表进行搜索时,发现所述导入表中不存在API函数,则须先提前加载包含API函数的动态连接库,并修改内存映像中该API函数入口处的代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100942385A CN101436145B (zh) | 2007-11-15 | 2007-11-15 | 通过挂接api来重定向设备输出的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100942385A CN101436145B (zh) | 2007-11-15 | 2007-11-15 | 通过挂接api来重定向设备输出的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101436145A true CN101436145A (zh) | 2009-05-20 |
CN101436145B CN101436145B (zh) | 2012-02-01 |
Family
ID=40710594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100942385A Expired - Fee Related CN101436145B (zh) | 2007-11-15 | 2007-11-15 | 通过挂接api来重定向设备输出的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101436145B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019845A (zh) * | 2012-12-10 | 2013-04-03 | 中国人民解放军理工大学 | 一种异构数据库平台下应用程序零修改迁移的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6874149B1 (en) * | 2000-06-28 | 2005-03-29 | Microsoft Corporation | Hooking of replacement and augmented API functions |
CN1179269C (zh) * | 2002-08-09 | 2004-12-08 | 联想(北京)有限公司 | 一种准确获取计算机屏幕变化的方法 |
CN100447739C (zh) * | 2006-03-28 | 2008-12-31 | 联想(北京)有限公司 | 一种实时获取多媒体图像的方法以及设备 |
-
2007
- 2007-11-15 CN CN2007100942385A patent/CN101436145B/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019845A (zh) * | 2012-12-10 | 2013-04-03 | 中国人民解放军理工大学 | 一种异构数据库平台下应用程序零修改迁移的方法 |
CN103019845B (zh) * | 2012-12-10 | 2015-06-03 | 中国人民解放军理工大学 | 一种异构数据库平台下应用程序零修改迁移的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101436145B (zh) | 2012-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9946358B2 (en) | Flexible display device and data displaying method thereof | |
JP6073792B2 (ja) | ジェスチャを用いて積み重ねられた画面表示を閲覧するための方法及びシステム | |
CN107168905B (zh) | 一种文件显示方法、装置、存储介质及移动终端 | |
US20100287513A1 (en) | Multi-device gesture interactivity | |
US9990103B2 (en) | Digital device and method of controlling therefor | |
CN101930719A (zh) | 自动切换显示器场景模式的方法及系统 | |
US20090222830A1 (en) | Methods for Multi-Tasking on Media Players | |
KR20150007760A (ko) | 수신 데이터를 이용하여 어플리케이션을 운영하는 전자 장치 | |
CN110049365A (zh) | 可视信源切换处理方法、显示终端、电视机及存储介质 | |
JP2002132446A (ja) | 情報入出力システム及び情報入出力方法、並びにプログラム記憶媒体 | |
WO2021013019A1 (zh) | 一种图片处理方法及装置 | |
CN102981818A (zh) | 基于情境的动画库 | |
EP3115865A1 (en) | Mobile terminal and method for controlling the same | |
WO2023226455A1 (zh) | 应用图标的显示方法、电子设备及可读存储介质 | |
CN102402373B (zh) | 一种控制移动终端中触摸键盘的方法及装置 | |
KR20120138618A (ko) | 모바일 디바이스에서 멀티태스킹 운용 방법 및 장치 | |
CN112771489A (zh) | 控制异构操作系统和电子设备的执行的方法及其存储介质 | |
Savidis et al. | Distributed interface bits: dynamic dialogue composition from ambient computing resources | |
WO2021244459A1 (zh) | 一种输入方法及电子设备 | |
CN101436145B (zh) | 通过挂接api来重定向设备输出的方法 | |
Lee et al. | A-mash: providing single-app illusion for multi-app use through user-centric UI mashup | |
US20090040399A1 (en) | Display apparatus for displaying digital images | |
US8823723B2 (en) | Semiconductor integrated circuit device, facility appliance control device, and appliance state display apparatus | |
US9280368B2 (en) | Function expanding method and mobile device adapted thereto | |
WO2022227997A1 (zh) | 内存申请方法及相关设备 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120201 Termination date: 20121115 |