KR101088129B1 - Method, Apparatus and Recording Medium for Controlling Screen Output - Google Patents
Method, Apparatus and Recording Medium for Controlling Screen Output Download PDFInfo
- Publication number
- KR101088129B1 KR101088129B1 KR1020090085802A KR20090085802A KR101088129B1 KR 101088129 B1 KR101088129 B1 KR 101088129B1 KR 1020090085802 A KR1020090085802 A KR 1020090085802A KR 20090085802 A KR20090085802 A KR 20090085802A KR 101088129 B1 KR101088129 B1 KR 101088129B1
- Authority
- KR
- South Korea
- Prior art keywords
- screen
- target application
- api
- output control
- playback
- Prior art date
Links
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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
- G06F3/1462—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay with means for detecting differences between the image stored in the host and the images displayed on the remote displays
-
- 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
본 발명의 실시예는, 화면 출력 제어 방법, 장치 및 기록매체에 관한 것으로서, 특정 정보가 입력되면 특정 영상 데이터를 특정 애플리케이션의 데이터와 조합하여 조합 데이터를 생성하고, 이렇게 생성된 조합 데이터를 특정 애플리케이션의 출력 화면에 출력함으로써 화면 출력을 제어하는 화면 출력 제어 방법을 제공한다. Embodiments of the present invention relate to a screen output control method, an apparatus, and a recording medium, and when specific information is input, combination image data is generated by combining specific image data with data of a specific application, and the combination data generated as described above is assigned to a specific application. It provides a screen output control method for controlling the screen output by outputting to the output screen.
본 발명의 실시예에 의하면, 게임이나 그래픽 등에 관련된 특정 애플리케이션의 출력 화면이 독점 모드로 동작하는 전체 화면인 경우에도, 영화 등의 다른 애플리케이션의 화면을 특정 애플리케이션의 출력 화면에 추가하여 출력시킬 수 있는 효과가 있다. According to an embodiment of the present invention, even when the output screen of a specific application related to a game or a graphic is a full screen operating in an exclusive mode, a screen of another application such as a movie may be added to the output screen of the specific application and output. It works.
화면 출력, 제어, 전체 화면 Screen output, control, full screen
Description
본 발명의 일 실시예는 화면 출력 제어 방법, 장치 및 기록매체에 관한 것이다. 더욱 상세하게는, 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션의 출력 화면에 영화 등의 다른 애플리케이션의 재생 화면을 추가하여 출력시킬 수 있는 화면 출력 제어 방법, 장치 및 기록매체에 관한 것이다.One embodiment of the present invention relates to a screen output control method, an apparatus and a recording medium. More particularly, the present invention relates to a screen output control method, an apparatus, and a recording medium which can add and output a playback screen of another application such as a movie to an output screen of a specific application related to a game or graphics in a computer system.
종래에, 사용자가 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션을 실행시켜, 특정 애플리케이션의 출력 화면을 전체 화면으로 표시하는 경우, 특정 애플리케이션이 화면 출력과 관련된 비디오 장치를 독점적으로 사용한다. 이와 같이, 게임이나 그래픽 등에 관련된 특정 애플리케이션이 최대화된 성능을 끌어내기 위하여, 활성화된 특정 애플리케이션에만 비디오 장치를 할당하여 다른 윈도우(Window)가 비디오 장치를 사용하지 못하도록 함으로써, 특정 애플리케이션만이 비디오 장치를 독점적으로 사용하게 하는 상태를 "독점모드(Exclusive Mode)"라고 한다. Conventionally, when a user executes a specific application related to a game or graphics in a computer system to display the output screen of the specific application in full screen, the specific application exclusively uses the video device associated with the screen output. As such, in order for a specific application related to a game or a graphic to maximize performance, the video device is assigned to only a specific active application to prevent another window from using the video device. The state that makes use exclusively is called "Exclusive Mode".
이와 같이, 컴퓨터 시스템에서 실행된 특정 애플리케이션이 전체 화면으로 표시되어 독점모드 상태에 있게 되면, 다른 애플리케이션은 실행된다고 하더라도, 컴퓨터 시스템에서의 비디오 장치를 특정 애플리케이션이 독점하고 있는 상태이기 때문에, 실행된 다른 애플리케이션의 화면을 출력할 수 없는 문제점이 있다. As such, when a particular application executed on the computer system is displayed in full screen and is in the exclusive mode, the other device that is executed is executed because the specific application is monopolizing the video device in the computer system even though other applications are executed. There is a problem that can not display the screen of the application.
이러한 배경에서, 본 발명의 실시예의 목적은, 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션의 출력 화면에 영화 등의 다른 애플리케이션의 재생 화면을 추가하여 출력시킬 수 있는 화면 출력 제어 기술을 제공하는 데 있다. In this background, it is an object of an embodiment of the present invention to provide a screen output control technique capable of adding and outputting a playback screen of another application such as a movie to an output screen of a specific application related to a game or graphics in a computer system. .
또한, 본 발명의 실시예의 다른 목적은, 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션의 출력 화면이 독점 모드로 실행중인 전체 화면인 경우에도, 영화 등의 다른 애플리케이션의 화면을 특정 애플리케이션의 출력 화면에 추가하여 출력시킬 수 있는 화면 출력 제어 기술을 제공하는 데 있다. Further, another object of the embodiment of the present invention is to display the screen of another application such as a movie on the output screen of the specific application even when the output screen of the specific application related to the game or graphics in the computer system is the full screen running in the exclusive mode. In addition, the present invention provides a screen output control technique that can be output.
본 발명의 일 실시예는, 영상 데이터에 대한 재생 요청을 전달받으면 프로세스 간 통신 수단을 생성하여 상기 프로세스 간 통신 수단을 통해 상기 영상 데이터를 전달하는 영상 재생 관리부; 및 동적 링크 라이브러리 파일이 타깃 애플리케이션과 함께 로딩 된 이후, 상기 타깃 애플리케이션이 그래픽 API(Application Programming Interface)를 사용하는 것으로 감지되면 API 훅을 설치하고, 상기 API 훅의 설치 이후, 상기 영상 데이터에 대한 상기 재생 요청이 입력되면 상기 재생 요청을 상기 영상 재생 관리부로 전달하여 상기 프로세스 간 통신 수단을 통해 상 기 영상 데이터를 전달받고, 상기 전달받은 영상 데이터에 대한 재생 화면을 상기 타깃 애플리케이션의 출력 화면에 추가하는 화면 출력 제어부를 포함하는 것을 특징으로 하는 화면 출력 제어 장치를 제공한다. According to an embodiment of the present invention, an image reproduction management unit for generating an inter-process communication means and delivering the image data through the inter-process communication means when receiving a reproduction request for the image data; And after the dynamic link library file is loaded with the target application, if it is detected that the target application uses a graphical application programming interface (API), install an API hook, and after installation of the API hook, When the playback request is input, the playback request is transmitted to the video playback management unit to receive the video data through the inter-process communication means, and to add a playback screen for the received video data to the output screen of the target application. It provides a screen output control device comprising a screen output control unit.
또한, 본 발명의 일 실시예는, 화면 출력 제어 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서, 동적 링크 라이브러리 파일이 타깃 애플리케이션과 함께 로딩 된 이후, 상기 동적 링크 라이브러리 파일을 통해 영상 데이터에 대한 재생 요청을 전달받으면, 프로세스 간 통신 수단을 생성하는 프로세서 간 통신 수단 생성 기능; 및 상기 타깃 애플리케이션의 출력 화면에 상기 영상 데이터가 표시된 재생 화면을 추가하기 위해, 상기 영상 데이터를 상기 프로세스 간 통신 수단을 통해 화면 출력 제어 관련 프로세서로 전달하는 영상 데이터 전달 기능을 구현하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다. In addition, an embodiment of the present invention, in the recording medium recording a program for executing the screen output control method, after the dynamic link library file is loaded with the target application, and for the image data through the dynamic link library file An interprocessor communication means generating function for generating an interprocess communication means upon receiving a reproduction request; And a computer implementing a video data transfer function for transferring the video data to a processor for output control through the inter-process communication means to add a playback screen on which the video data is displayed on an output screen of the target application. It provides a recording medium that can be read by.
또한, 본 발명의 일 실시예는, 화면 출력 제어 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서, 동적 링크 라이브러리 파일이 타깃 애플리케이션과 함께 로딩 된 이후, 상기 타깃 애플리케이션의 그래픽 API(Application Programming Interface) 사용 여부를 감지하는 그래픽 API 사용 여부 감지 기능; 상기 타깃 애플리케이션이 상기 그래픽 API를 사용하는 것으로 감지되면, API 훅을 설치하는 API 훅 설치 기능; 상기 API 훅의 설치 이후, 영상 데이터에 대한 재생 요청이 입력되면, 프로세스 간 통신 수단을 통해 영상 재생 관련 프로세서로부터 상기 영상 데이터를 전달받는 영상 데이터 수신 기능; 및 상기 전달받은 영상 데이터에 대한 재생 화면을 상기 타깃 애플리케이션의 출력 화면에 추가하는 화면 출력 제어 기능을 구현하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다. In addition, an embodiment of the present invention, in the recording medium recording a program for executing the screen output control method, after the dynamic link library file is loaded with the target application, the graphical application programming interface (API) of the target application Detecting whether or not to use a graphic API; An API hook installation function for installing an API hook when the target application is detected to use the graphic API; A video data reception function of receiving the video data from a video playback related processor through an inter-process communication means when a playback request for video data is input after installation of the API hook; And a computer-readable recording medium having recorded thereon a program for implementing a screen output control function for adding a playback screen for the received image data to an output screen of the target application.
또한, 본 발명의 일 실시예는, 타깃 애플리케이션이 그래픽 API를 사용하는 것으로 감지되면 API 훅을 설치하는 API 훅 설치 단계; 및 상기 API 훅의 설치에 따라 인식된 화면 출력 시점에 영상 재생 애플리케이션으로부터 영상 데이터를 전달받고, 상기 전달된 영상 데이터의 재생 화면을 상기 타깃 애플리케이션의 출력 화면에 추가하는 화면 출력 제어 단계를 포함하는 것을 특징으로 하는 화면 출력 제어 방법을 제공한다. In addition, an embodiment of the present invention, the API hook installation step of installing an API hook when the target application is detected to use a graphical API; And a screen output control step of receiving video data from a video playback application at a recognized screen output time according to the installation of the API hook, and adding a playback screen of the transferred video data to an output screen of the target application. It provides a screen output control method characterized in that.
또한, 본 발명의 일 실시예는, 특정 정보를 입력받는 단계; 상기 입력된 특정 정보에 따라 특정 영상 데이터를 특정 애플리케이션의 데이터와 조합하여 조합 데이터를 생성하는 단계; 및 상기 조합 데이터를 상기 특정 애플리케이션의 출력 화면에 출력하는 단계를 포함하는 것을 특징으로 하는 화면 출력 제어 방법을 제공한다. In addition, an embodiment of the present invention, the step of receiving specific information; Generating combination data by combining specific image data with data of a specific application according to the input specific information; And outputting the combination data to an output screen of the specific application.
이상에서 설명한 바와 같이 본 발명의 실시예에 의하면, 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션의 출력 화면에 영화 등의 다른 애플리케이션의 재생 화면을 추가하여 출력시킬 수 있는 화면 출력 제어 기술을 제공하는 효과가 있다. As described above, according to an embodiment of the present invention, an effect of providing a screen output control technique for adding and outputting a play screen of another application such as a movie to an output screen of a specific application related to a game or graphics in a computer system. There is.
특히, 본 발명의 실시예에 의하면, 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션의 출력 화면이 독점 모드로 실행중인 전체 화면인 경우에도, 영화 등의 다른 애플리케이션의 화면을 특정 애플리케이션의 출력 화면에 추 가하여 출력시킬 수 있는 화면 출력 제어 기술을 제공하는 효과가 있다. In particular, according to an embodiment of the present invention, even if the output screen of a specific application related to a game or graphics in a computer system is a full screen running in exclusive mode, the screen of another application such as a movie is added to the output screen of the specific application. There is an effect of providing a screen output control technology that can be added to the output.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present invention will be described in detail through exemplary drawings. In adding reference numerals to the components of each drawing, it should be noted that the same reference numerals are assigned to the same components as much as possible even though they are shown in different drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.In addition, in describing the component of this invention, terms, such as 1st, 2nd, A, B, (a), (b), can be used. These terms are only for distinguishing the components from other components, and the nature, order or order of the components are not limited by the terms. If a component is described as being "connected", "coupled" or "connected" to another component, that component may be directly connected to or connected to that other component, but there may be another configuration between each component. It is to be understood that the elements may be "connected", "coupled" or "connected".
도 1은 본 발명의 일 실시예에 따른 화면 출력 제어 장치(100)에 대한 개략도이다. 1 is a schematic diagram of a screen output control device 100 according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일 실시예에 따른 화면 출력 제어 장치(100)는, 영상 재생 관리부(110) 및 화면 출력 제어부(120) 등을 포함한다. Referring to FIG. 1, the screen output control apparatus 100 according to an embodiment of the present invention includes an image
영상 재생 관리부(110)는, 동적 링크 라이브러리(DLL: Dynamic Link Library, 이하 "DLL"이라 칭함) 파일을 지정하여 훅 설치를 화면 출력 제어 장치(100)가 포함된 컴퓨터 시스템 또는 타깃 애플리케이션(10)에 요청한 이후, 영상 데이터에 대한 재생 요청을 전달받으면 프로세스 간 통신(IPC: Inter-Process Communications, 이하 "IPC"라 칭함) 수단(130)을 생성하여 IPC 수단(130)을 통해 재생할 영상 데이터를 전달한다. 화면 출력 제어부(120)는, 훅 설치에 대한 요청에 따라 화면 출력 제어 장치(100)가 포함된 컴퓨터 시스템 또는 타깃 애플리케이션(10)에 의해 타깃 애플리케이션(10)에 삽입된 DLL 파일이 타깃 애플리케이션(10)과 함께 로딩 된 이후, 타깃 애플리케이션(10)이 그래픽 API(Application Programming Interface, 이하 "API"라 칭함)를 사용하는 것으로 감지되면 API 훅(API Hook)을 설치하고, API 훅의 설치 이후, 영상 데이터에 대한 재생 요청이 입력되면 재생 요청을 영상 재생 관리부(110)로 전달하여 영상 재생 관리부(110)에 의해 생성된 IPC 수단(130)을 통해 영상 데이터를 전달받고, 전달받은 영상 데이터에 대한 재생 화면을 타깃 애플리케이션(10)의 출력 화면에 추가함으로써, 화면 출력이 제어된다. The video
영상 재생 관리부(110)가 "DLL 파일을 지정하여 훅 설치"를 컴퓨터 시스템 또는 타깃 애플리케이션(10)에 요청하면, 컴퓨터 시스템 또는 타깃 애플리케이션(10)에 의해, DLL 파일이 타깃 애플리케이션(10)에 삽입되어 타깃 애플리케이션(10)과 함께 로딩된다. When the video
전술한 바에 따르면, DLL 파일을 다른 애플리케이션과 함께 로딩시키기 위한 방식으로서, 훅 설치 요청에 따라 DLL 파일을 타깃 애플리케이션(10)에 삽입하는 방식(이를 "DLL 인젝션(DLL Injection)"이라 함)을 이용하는데, 이러한 DLL 인젝션 방식은, DLL 파일을 다른 애플리케이션과 함께 로딩시키기 위한 여러 방식들 중에서 하나의 예시일 뿐, 구현 방식에 따라서는, 페이크(Fake) DLL 방식 등과 같이 DLL 파일을 다른 애플리케이션과 함께 로딩시킬 수 있는 그 어떠한 방식으로도 구현이 가능하다. 다만, 본 명세서의 전체에서는, 설명의 편의를 위해, DLL 파일을 다른 애플리케이션과 함께 로딩시키기 위한 방식으로서, 훅 설치 요청에 따라 DLL 파일을 타깃 애플리케이션(10)에 삽입하는 DLL 인젝션(DLL Injection) 방식을 이용하는 것으로 가정하여 설명한다.As described above, as a method for loading a DLL file together with another application, a method of inserting a DLL file into the
위에서 언급한 DLL 파일은, 일 예로써, 영상 재생 관리부(110)의 훅 설치에 대한 요청에 따라, 타깃 애플리케이션(10)의 입력 이벤트 발생이나 타깃 애플리케이션(10)의 윈도우(Window) 활성화시, 타깃 애플리케이션(10)에 삽입되어 타깃 애플리케이션(10)과 함께 로딩(Loading) 된다. As mentioned above, the DLL file mentioned above is a target when an input event of the
전술한 화면 출력 제어부(120)는, DLL 파일이 타깃 애플리케이션(10)과 함께 로딩 된 이후, 타깃 애플리케이션(10)의 그래픽 API 사용 여부를 감지하여, 타깃 애플리케이션(10)이 그래픽 API를 사용하는 것으로 감지되면, API 훅(API Hook)을 설치한다. 화면 출력 제어부(120)는 이러한 API 훅의 설치에 따라 그래픽 API의 코드를 변경하는 API 후킹(API Hooking)을 수행함으로써, 화면 출력 시점을 인식할 수 있고, 인식된 화면 출력 시점에 API 후킹의 수행에 따라 변경된 코드(DLL 파일의 코드)가 실행될 수 있다. After the DLL file is loaded with the
만약, 타깃 애플리케이션(10)의 그래픽 API 사용 여부를 감지하여, 타깃 애플리케이션(10)이 그래픽 API를 사용하지 않는 것으로 감지되면, 화면 출력 제어부(120)는 DLL 파일(이 DLL 파일은 타깃 애플리케이션(10)과 함께 로딩되어 화면 출력 제어에 이용되는 DLL 파일과는 다른 DLL 파일로서, 타깃 애플리케이션(10)에서 사용하는 일반적인 DLL 파일을 의미함)을 로딩시키는 API에 대한 API 후킹을 수행한 이후, API 훅을 설치할 수 있다. If it is detected whether the
한편, 화면 출력 제어부(120)는, 타깃 애플리케이션(10)의 그래픽 API 사용 여부를 감지하여, 타깃 애플리케이션(10)이 그래픽 API를 사용하는 것으로 감지되면, API 훅의 설치에 따라 이벤트 관련 API의 코드를 변경하는 API 후킹(API Hooking)을 추가로 수행함으로써, 이벤트 전달 시점을 인식할 수 있고, 인식된 이벤트 전달 시점에, API 후킹의 수행에 따라 변경된 코드(DLL 파일의 코드)가 실행될 수 있다. Meanwhile, the
이때, 화면 출력 제어부(120)는, 키 또는 마우스 관련 입력에 대하여 자체 사용자 인터페이스(UI: User Interface, 이하 "UI"라 칭함) 프레임워크(Framework)로 입력 이벤트를 전달하여 처리 결과를 확인하고, 확인 결과에 따라 타깃 애플리케이션(10)으로 입력 이벤트를 알려준다. In this case, the
전술한 화면 출력 제어부(120)는, 그래픽 API 코드 변경 및/또는 이벤트 API 코드 변경과 관련된 API 훅을 설치한 이후, 타깃 애플리케이션(10)이 출력 화면에 새로운 장면을 디스플레이시키는 경우, 자체 UI 프레임워크의 초기화 여부를 검사한 이후, 초기화된 자체 UI 프레임워크의 내용을 재생 화면에 출력하며, 영상 데이 터에 대한 재생 요청이 입력되어 현재 상태가 재생 상태인 경우, 재생 요청을 IPC 수단(130)을 통해 영상 재생 관리부(110)로 전달하고, 이에 따라 영상 재생 관리부(110)에 의해 생성된 IPC 수단(130)을 통해 해당 영상 데이터를 전달받는다. The screen
전술한 화면 출력 제어부(120)는, 자체 UI 프레임워크가 초기화되지 않은 경우, 재생 화면을 위한 위치 정보, 계층 구조, 폰트 데이터 및 이미지 데이터를 로딩키고 영상 재생 관리부과의 동작 동기화를 위해 IPC 수단(130)을 초기화함으로써, 자체 UI 프레임워크를 초기화할 수 있다. When the UI framework is not initialized, the screen
전술한 바와 같이, 화면 출력 제어부(120)가 영상 재생 관리부(110)로 소켓을 통해 영상 데이터에 대한 재생 요청을 전달하면, 영상 재생 관리부(110)는 IPC 수단(130)을 생성하는데, 이때, 영상 재생 관리부(110)는, 타깃 애플리케이션(10)과의 프로세스 간 데이터 공유 및 동작 공유를 위해, 메시지(Message) 방식, 클립보드(Clipboard) 방식, 데이터 복사(Data Copy) 방식, 동적 데이터 교환(DDE: Dynamic Data Exchange) 방식, 파일 맵핑(File Mapping) 방식, 메일 슬롯(Mail Slot) 방식, 파이프(Pipe) 방식, 소켓(Socket) 방식, 원격 절차 호출(RPC: Remote Procedure Call) 방식 및 컴포넌트 오브젝트 모델(COM: Component Object Model) 방식 중 하나의 방식으로 IPC 수단(130)을 생성할 수 있다. As described above, when the
일 예로서, 영상 재생 관리부(110)가 파일 맵핑 방식에 따라 IPC 수단(130)으로서 공유 메모리를 생성하면, 영상 재생 관리부(110)는 생성된 공유 메모리에 영상 데이터를 저장(복사)하고, 화면 출력 제어부(120)는 공유 메모리에 저장된 영상 데이터를 읽어들임으로써, 영상 데이터는 영상 재생 관리부(110)에서 화면 출력 제어부(120)로 전달된다. As an example, when the video
이와 같이 영상 재생 관리부(110)에 의해 생성된 IPC 수단(130)을 통해, 화면 출력 제어부(120)가 영상 데이터를 전달받으면, 화면 출력 제어부(120)는, 전달받은 영상 데이터를 타깃 애플리케이션(10)의 데이터와 조합하여 출력함으로써, 도 5를 참조하면, 전달받은 영상 데이터에 대한 재생 화면(510)을 타깃 애플리케이션(10)의 출력 화면(520)에 추가한다. As described above, when the
위에서 언급한 타깃 애플리케이션(10)의 출력 화면(520)은, 비디오 장치를 독점하는 독점 모드(Exclusive Mode)로 동작하는 전체 화면일 수 있다.The
위에서 언급한 "타깃 애플리케이션(10)"은, 영상 재생 애플리케이션의 훅 설치 요청에 따라 화면 출력 제어부(120)(이는 DLL 파일일 수 있음)가 함께 로딩되는 애플리케이션을 의미하며, 이러한 타깃 애플리케이션(10)에는, 일 예로서, 게임 애플리케이션 및 그래픽 애플리케이션(예: CAD, CAM, 3D Authoring Tool 등) 등이 있으며, 이에 제한되지 않고, 컴퓨터 시스템에서 설치되어 실행가능한 모든 애플리케이션일 수 있다. The above-mentioned "
전술한 영상 재생 관리부(110) 및 화면 출력 제어부(120)는, 본 발명의 일 실시예에 따른 화면 출력 제어를 위해 프로그래밍되어 구현되는 소프트웨어 모듈(Software Moduel)일 수 있다. The
영상 재생 관리부(110)는 동영상 플레이어(Player)와 같은 "영상 재생 애플리케이션(Application)"으로 구현될 수 있으며, 화면 출력 제어부(120)는 "동적 링크 라이브러리(DLL) 파일" 자체이거나 "동적 링크 라이브러리(DLL) 파일에 의해 동 작하는 특정 애플리케이션일 수 있다. The video
아래에서는, 설명의 편의상, 영상 재생 관리부(110)를 영상 재생 애플리케이션으로, 화면 출력 제어부(120)를 DLL로도 기술한다. 또한, 영상 재생 애플리케이션일 수 있는 영상 재생 관리부(110) 및 DLL일 수 있는 화면 출력 제어부(120)와, 타깃 애플리케이션(10)은 컴퓨터 시스템에서 실행되거나 설치되는 것으로서, 여기서 "컴퓨터 시스템"은, 영상 재생 애플리케이션의 훅 설치 요청에 따라 DLL 파일을 타깃 애플리케이션(10)에 삽입(Injection)하는 전체 시스템으로서, 윈도우 운영체제(Window OS), 매킨토시 운영체제(MAC OS), 유닉스/리눅스 및 임베디드 운영체제(Embedded OS) 등이 될 수 있다. In the following description, the video
도 2는 본 발명의 일 실시예에 따른 화면 출력 제어 방법에 대한 흐름도이다. 2 is a flowchart illustrating a screen output control method according to an embodiment of the present invention.
도 2를 참조하면, 본 발명의 일 실시예에 따른 화면 출력 제어 장치(100)가 제공하는 화면 출력 제어 방법은, 훅 설치 요청 단계(S200), 그래픽 API 사용 감지 단계(S202), API 훅 설치 단계(S204), 재생 요청 전달 단계(S206), IPC 수단 생성 단계(S208), 영상 데이터 전달 단계(S210) 및 화면 출력 제어 단계(S212) 등을 포함한다. 2, the screen output control method provided by the screen output control apparatus 100 according to an embodiment of the present invention, hook installation request step (S200), graphic API use detection step (S202), API hook installation A step S204, a playback request delivery step S206, an IPC means generation step S208, an image data delivery step S210, a screen output control step S212, and the like.
훅 설치 요청 단계(S200)에서는, 영상 재생 애플리케이션이 DLL 파일을 지정하여 훅 설치를 컴퓨터 시스템 또는 타깃 애플리케이션(10)에 요청한다. 그래픽 API 사용 감지 단계(S202)에서는, 훅 설치에 따라, DLL 파일이 타깃 애플리케이션(10)과 함께 로딩 된 이후, DLL 파일에 의해 동작하는 화면 출력 제어부(120)가, 타깃 애플리케이션(10)의 그래픽 API 사용 여부를 감지한다. API 훅 설치 단계(S204)에서는, 화면 출력 제어부(120)가, 타깃 애플리케이션(10)이 그래픽 API를 사용하는 것으로 감지되면 API 훅을 설치한다. 재생 요청 전달 단계(S206)에서는, 화면 출력 제어부(120)가, API 훅의 설치 이후, 영상 데이터에 대한 재생 요청이 입력되면 재생 요청을 영상 재생 애플리케이션으로 전달한다. IPC 수단 생성 단계(S208)에서는, 재생 요청을 전달받은 영상 재생 애플리케이션이 IPC 수단(130)을 생성한다. 영상 데이터 전달 단계(S210)에서는, 영상 재생 애플리케이션이, 생성한 IPC 수단(130)을 통해 영상 데이터를 화면 출력 제어부(120)로 전달한다. 화면 출력 제어 단계(S212)는, 화면 출력 제어부(120)가, IPC 수단(130)을 통해 전달받은 영상 데이터에 대한 재생 화면을 타깃 애플리케이션(10)의 출력 화면에 추가한다. In the hook installation request step (S200), the video reproducing application designates a DLL file and requests the hook installation from the computer system or the
전술한 훅 설치 요청 단계(S200)는, DLL 파일을 타깃 애플리케이션(10)과 함께 로딩시키기 위한 단계로서, 이러한 훅 설치 요청 단계(S200)는, DLL 파일을 다른 애플리케이션과 함께 로딩시키기 위한 방식으로서, 훅 설치 요청에 따라 DLL 파일을 타깃 애플리케이션(10)에 삽입하는 DLL 인젝션(DLL Injection) 방식을 이용하는 것으로 가정함으로써, 수행되는 단계이다. DLL 파일을 다른 애플리케이션과 함께 로딩시키기 위한 방식으로는, 전술한 DLL 인젝션 방식 이외에도, 구현 방식에 따라서는, 페이크(Fake) DLL 방식 등 그 어떠한 방식으로도 구현이 가능하며, 그렇게 되면, API 사용 감지 단계(S202) 이전에, 훅 설치 요청 단계(S200) 대신, DLL 파일을 다른 애플리케이션과 함께 로딩시키기 위한 다른 방식이 수행되는 단계가 수행될 수 있다. The hook installation request step S200 described above is a step for loading a DLL file together with the
여기서, 타깃 애플리케이션(10)의 출력 화면은 비디오 장치를 독점하는 독점 모드로 실행중인 전체 화면일 수도 있다. Here, the output screen of the
이상에서 전술한 본 발명의 일 실시예에 따른 화면 출력 제어 방법을 영상 재생 관리부(110)인 영상 재생 애플리케이션에 의해 수행되는 과정과, 화면 출력 제어부(120)에 의해 수행되는 과정으로 나누고, 각 과정을 도 3과 도 4를 참조하여 각기 설명한다. The screen output control method according to the embodiment of the present invention described above is divided into a process performed by the image reproduction application, which is the image
도 3은 본 발명의 일 실시예에 따른 화면 출력 제어 방법에서, 화면 출력 제어 장치(100)에 포함된 영상 재생 관리부(110)인 영상 재생 애플리케이션에 의해 수행되는 과정을 나타낸 흐름도이다. 3 is a flowchart illustrating a process performed by an image reproduction application, which is an image
도 3을 참조하면, 영상 재생 애플리케이션이 실행되면서, 특정 DLL(화면 출력 제어부(120))을 지정하여 컴퓨터 시스템(윈도우 OS와 같은 OS가 탑재됨)으로 훅 설치를 요청하거나, 특정 DLL을 지정하여 타깃 애플리케이션(10)에 직접 훅 설치를 요청(S300)한다. Referring to FIG. 3, while a video reproducing application is executed, a specific DLL (screen output control unit 120) is designated to request a hook installation to a computer system (an OS such as a Windows OS is mounted), or to specify a specific DLL. The hook application is directly requested to the target application 10 (S300).
이때, 컴퓨터 시스템 또는 타깃 애플리케이션(10)에 훅 설치를 요청하면, 컴퓨터 시스템에서 실행되는 모든 애플리케이션(이를 타깃 애플리케이션(10)이라 함)에 대해 화면 출력 제어부(120)를 로딩시키도록 한다. 이때 DLL(화면 출력 제어부(120))를 타깃 애플리케이션(10)과 함께 로딩시키는 과정을 "DLL 인젝션" 또는 "인젝션"이라고 한다. 여기서, DLL(화면 출력 제어부(120))를 타깃 애플리케이션(10)과 함께 로딩시키는"인젝션 방법"으로서는, 전술한 방식인 컴퓨터 시스템에 훅(이때의 훅을 "시스템 훅"이라고 함) 설치를 직접 요청하는 인젝션 방법과, 타깃 애플리케이션(10)의 메모리를 조작하여 해당 타깃 애플리케이션(10)에 훅 설치를 직접 요청하는 인젝션 방법 등이 있으며, 어떠한 인젝션 방법으로도 가능하다.In this case, when a hook installation request is made to the computer system or the
도 3을 참조하면, 영상 재생 애플리케이션은, 컴퓨터 시스템 또는 타깃 애플리케이션(10)으로 훅 설치 요청(S300)을 한 이후, 영상 재생 애플리케이션을 통해 재생할 영상 데이터에 대한 재생 요청을 의미하는 사용자 입력을 대기(S302)한다. 사용자 입력 대기(S302) 중 영상 데이터에 대한 재생 요청에 따라 해당 영상 데이터가 로딩(S304) 되면, 로딩 된 영상 데이터를 IPC 수단(130)을 생성한다. 이때, 영상 재생 애플리케이션은, 도 3을 참조하면, IPC 수단(130) 중 하나인 공유 메모리를 생성한다(S306). 이후, 영상 재생 애플리케이션은 해당 컴퓨터에 저장된 영상 데이터를 앞에서 생성한 공유 메모리에 저장한다(S308). 이렇게 공유 메모리에 영상 데이터를 저장시키면서 저장시키고 있는 영상 데이터가 해당 영상의 끝에 해당하는 영상 데이터인지를 판단하고(S308), 영상의 끝이 되어 공유 메모리에 저장시킬 영상 데이터가 없으면, 다시 사용자 입력을 대기한다(S302).Referring to FIG. 3, after the video installation application makes a hook installation request (S300) with the computer system or the
도 3을 참조하여 전술한 영상 재생 애플리케이션에 의해 수행되는 과정을 포함하는 화면 출력 제어 방법은, 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. The screen output control method including the process performed by the image reproducing application described above with reference to FIG. 3 may be implemented in a program and recorded in a computer-readable recording medium.
영상 재생 애플리케이션에 의해 수행되는 과정을 포함하는 화면 출력 제어 방법은, DLL 파일을 지정하여 훅 설치를 요청하는 훅 설치 요청 기능과, 훅 설치의 요청에 따라 DLL 파일이 타깃 애플리케이션(10)과 함께 로딩 된 이후, 영상 데이터에 대한 재생 요청을 전달받으면, IPC 수단(130)을 생성하는 IPC 수단 생성 기능 과, IPC 수단(130)을 통해, 타깃 애플리케이션(10)의 출력 화면에 영상 데이터가 표시된 재생 화면을 추가하는 화면 출력 제어부(120)(DLL)로 영상 데이터를 전달하는 영상 데이터 전달 기능을 구현한다. A screen output control method including a process performed by an image reproducing application includes a hook installation request function for requesting a hook installation by specifying a DLL file, and a DLL file being loaded together with the
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, which are also implemented in the form of a carrier wave (for example, transmission over the Internet). It also includes. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
그리고, 본 발명을 구현하기 위한 기능적인(Functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.In addition, functional programs, codes, and code segments for implementing the present invention can be easily inferred by programmers in the art to which the present invention belongs.
IPC 수단으로서, 파일 매핑 방식의 공유 메모리를 이용하는 경우, 전술한 영상 데이터 전달 기능에서는, 영상 재생 애플리케이션이 생성한 공유 메모리에 해당 영상 데이터를 저장하고, 화면 출력 제어부(120)(DLL)가 공유 메모리에 저장된 영상 데이터를 읽어 가게 된다. 이를 통해, 영상 데이터의 전달 기능이 수행될 수 있다. In the case of using a file mapping type shared memory as the IPC means, in the above-described video data transfer function, the video data is stored in the shared memory generated by the video playback application, and the screen output control unit 120 (DLL) shares the shared memory. The image data stored in is read. Through this, the image data transfer function may be performed.
도 4는 본 발명의 일 실시예에 따른 화면 출력 제어 방법에서, 화면 출력 제어 장치(100)에 포함된 화면 출력 제어부(120)에 의해 수행되는 과정을 나타낸 흐름도이다. 4 is a flowchart illustrating a process performed by the
도 4를 참조하면, 영상 재생 애플리케이션에 의한 훅 설치 요청에 따라, 타 깃 애플리케이션(10)에 삽입된 DLL 파일이 타깃 애플리케이션(10)과 함께 로딩 된 이후, DLL 파일에 의해 동작되는 화면 출력 제어부(120)는, 도 4에서의 과정들을 수행한다. Referring to FIG. 4, in response to a hook installation request by an image reproducing application, a DLL file inserted into the
타깃 애플리케이션(10)에 삽입된 DLL 파일이 타깃 애플리케이션(10)과 함께 로딩 된 시점에, DLL 파일에 의해 동작되는 화면 출력 제어부(120)는 타깃 애플리케이션(10)에서 사용하고 있는 DLL 파일을 조사하여 타깃 애플리케이션(10)의 그래픽 API 사용 여부를 검사한다(S400). When the DLL file inserted into the
이에 따라, 타깃 애플리케이션(10) 그래픽 API를 사용하는 것으로 판단되면, 그래픽 API의 코드를 변경한다(S406). 여기서, 그래픽 API의 코드를 변경하는 것을 "API 후킹(Hooking)"이라고 하고, 이는 그래픽 API의 기존 코드에 따른 동작이 원하는 동작이 되게 끔 조작하는 것이다. 또한, 그래픽 API의 코드를 변경(S406)하는 것 이외에, UI 프레임워크에서 타깃 애플리케이션(10)의 이벤트 처리를 위해서, 이벤트 처리와 관련된 이벤트 API의 코드를 변경하는 API 후킹을 수행한다(S408). Accordingly, when it is determined that the
한편, 타깃 애플리케이션(10)의 그래픽 API 사용 여부 검사(S400) 결과, 타깃 애플리케이션(10)이 그래픽 API를 사용하고 있지 않다면, DLL 로딩 관련 API에 대한 API 후킹을 수행하고(S402), 이때, DLL 로딩이 그래픽 API 용 DLL 로딩인지를 판단(S404)하여, DLL 로딩이 그래픽 API 용 DLL 로딩이면 그래픽 API의 코드를 변경하는 API 후킹을 수행한다(S406). DLL 로딩 관련 API에 대한 API 후킹을 수행(S402)하는 것은, 화면 출력 제어부(120)의 로드 이후에 타깃 애플리케이션(10)에서 그래픽 API를 사용하기 위해 직접 DLL을 로딩하는 경우도 있을 수 있으므로, DLL을 로딩하는 API에 대해서 API 후킹을 수행하는 것이다. On the other hand, if the
전술한 과정(S400, S406 및 S408)들을 통해, 타깃 애플리케이션(10)에 삽입된 DLL 파일이 타깃 애플리케이션(10)과 함께 로딩되는 것이 완료된다. Through the above-described processes (S400, S406 and S408), the DLL file inserted into the
이후, 타깃 애플리케이션(10)이 출력 화면에 새로운 장면을 그리는지를 판단한다(S410). 타깃 애플리케이션(10)이 출력 화면에 새로운 장면을 그리는 것으로 판단되면, 그래픽 API의 API 후킹의 결과에 따라, 화면에 그려야 할 시점에, 화면 출력 제어부(120)의 코드가 실행되고, UI 프레임워크가 초기화되었는지를 검사한다(S412). Thereafter, it is determined whether the
검사 결과, UI 프레임워크가 초기화되지 않았다면, UI 프레임워크를 초기화한다(S414). 즉, 윈도우를 표현하기 위한 위치 정보 및 계층 구조와, 화면 출력을 위한 폰트 및 이미지 데이터를 로딩하고, 영상 재생 애플리케이션과의 동작을 동기화하기 위해 IPC 수단(130)을 초기화한다. If it is determined that the UI framework has not been initialized, the UI framework is initialized (S414). That is, the IPC means 130 is initialized to load position information and hierarchical structure for representing a window, font and image data for screen output, and synchronize operation with an image reproducing application.
검사 결과, UI 프레임워크가 초기화되어 있으면, UI 프레임워크의 내용을 화면에 출력하고, 현재 상태가 영상 데이터를 재생하기 위한 재생 상태인지를 판단한다(S412). 재생 상태인지에 대한 판단 결과, 재생 상태인 경우, 영상 재생 애플리케이션에서 생성한 공유 메모리가 있는지를 확인한다(S418). 공유 메모리 생성 여부에 대한 확인 결과, 공유 메모리가 생성되어 있으면, 공유 메모리 저장된 영상 데이터를 읽어와서, 읽어온 영상 데이터를 타깃 애플리케이션(10)의 데이터와 조합하여 화면에 출력하도록 설정한다(S420). 이때 출력되는 화면은, 도 5를 참조하면, 영상 데이터의 재생 화면(510)이 타깃 애플리케이션(10)의 출력 화면(520)의 특정 위치에 특정 크기로 추가된다. 여기서 영상 데이터의 재생 화면(510)의 크기 및 위치는 사용자 설정 또는 디폴트 설정에 따라 정해질 수 있다.As a result of the inspection, if the UI framework is initialized, the contents of the UI framework are output to the screen, and it is determined whether the current state is a reproduction state for reproducing the video data (S412). As a result of the determination as to whether it is in the playback state, in the playback state, it is checked whether there is a shared memory generated by the video playback application (S418). As a result of checking whether the shared memory is generated, if the shared memory is generated, the shared data is read, and the read image data is combined with the data of the
재생 상태인지에 대한 판단 결과 재생 상태가 아닌 멈춤 상태이거나, 공유 메모리 생성 여부에 대한 확인 결과 공유 메모리가 생성되어 있지 않은 경우에는, 로고(Logo) 화면 데이터를 타깃 애플리케이션(10)의 데이터와 조합하여 화면에 출력하도록 설정할 수 있다(S422). 이때 출력되는 화면은, 도 5와 유사하게, 로고 화면이 타깃 애플리케이션(10)의 출력 화면(520)의 특정 위치에 특정 크기로 추가될 수 있다. 여기서 로고 화면의 크기 및 위치는 사용자 설정 또는 디폴트 설정에 따라 정해질 수 있다. If it is determined that the playback state is not a playback state, or if the shared memory is not created as a result of checking whether the shared memory is created, the logo screen data is combined with the data of the
한편, 이벤트 API 코드를 변경하는 API 후킹(S408)의 결과에 따라, 타깃 애플리케이션(10)에서 이벤트를 처리해야할 시점에, 화면 출력 제어부(120)의 코드가 실행된다. 이벤트가 키나 마우스 관련 입력이면, UI 프레임워크로 이벤트를 전달하여 처리 결과를 확인하고, 확인 결과가 참이면 타깃 애플리케이션(10)에 이벤트를 알리지 않고, 확인 결과가 거짓이면 타깃 애플리케이션(10)에 이벤트를 알려준다. On the other hand, according to the result of the API hooking S408 for changing the event API code, the code of the screen
한편, 사용자 요청이나 영상 데이터의 재생이 완료되어, 화면 출력 제어부(120)가 언로드(Unload) 되는 시점에, API 후킹의 수행에 따라 변경된 코드 부분은 모두 삭제하여, 원래의 코드(그래픽 API 코드, 이벤트 API 코드 등)로 돌려놓는다. 또한, 화면 출력 제어를 위해 영상 재생 애플리케이션에 의해 생성된 공유 메모리의 사용을 종료한다. On the other hand, when the user request or playback of the video data is completed, and the screen
도 4를 참조하여 전술한 화면 출력 제어부(120)에 의해 수행되는 과정을 포 함하는 화면 출력 제어 방법은, 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. A screen output control method including a process performed by the
화면 출력 제어부(120)에 의해 수행되는 과정을 포함하는 화면 출력 제어 방법은, DLL 파일이 지정된 훅 설치 요청에 따라 타깃 애플리케이션(10)에 삽입된 DLL 파일이 타깃 애플리케이션(10)과 함께 로딩 된 이후, 타깃 애플리케이션(10)의 그래픽 API 사용 여부를 감지하는 그래픽 API 사용 여부 감지 기능과, 타깃 애플리케이션(10)이 그래픽 API를 사용하는 것으로 감지되면, API 훅을 설치하는 API 훅 설치 기능과, API 훅의 설치 이후, 영상 데이터에 대한 재생 요청이 입력되면 재생 요청을 영상 재생 애플리케이션으로 전달하여 IPC 수단을 통해 영상 데이터를 전달받는 영상 데이터 수신 기능과, 전달받은 영상 데이터에 대한 재생 화면을 타깃 애플리케이션(10)의 출력 화면에 추가하는 화면 출력 제어 기능을 구현한다. The screen output control method including the process performed by the screen
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, which are also implemented in the form of a carrier wave (for example, transmission over the Internet). It also includes. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
그리고, 본 발명을 구현하기 위한 기능적인(Functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.In addition, functional programs, codes, and code segments for implementing the present invention can be easily inferred by programmers in the art to which the present invention belongs.
본 발명의 다른 실시예에 따른 화면 출력 제어 방법은, 영상 재생 애플리케 이션의 훅 설치 요청 또는 또 다른 방식에 의해, 타깃 애플리케이션(10)이 그래픽 API를 사용하는 것으로 감지되면 API 훅을 설치하는 API 훅 설치 단계와, API 훅 설치에 따라 인식된 화면 출력 시점에 영상 데이터를 전달받고 전달받은 영상 데이터의 재생 화면을 타깃 애플리케이션(10)의 출력 화면에 추가하는 화면 출력 제어 단계를 포함한다. 여기서, 타깃 애플리케이션(10)의 출력 화면은, 컴퓨터 시스템에서의 비디오 장치를 독점하는 독점 모드(Exclusive Mode)로 동작하는 전체 화면일 수도 있다. According to another embodiment of the present invention, a screen output control method includes an API hook that installs an API hook when the
본 발명의 또 다른 실시예는, 영상 데이터의 재생 요청 또는 화면 출력 제어 등과 관련된 특정 정보를 입력받는 단계와, 입력된 특정 정보에 따라 특정 영상 데이터를 특정 애플리케이션(10)(예: 게임 애플리케이션 등)의 데이터와 조합하여 조합 데이터를 생성하는 단계와, 조합 데이터를 특정 애플리케이션(10)의 출력 화면에 출력하는 단계를 포함하는 것을 특징으로 하는 화면 출력 제어 방법을 제공한다. 여기서, 특정 애플리케이션(10)의 출력 화면은 독점 모드로 실행중인 전체 화면일 수도 있다. Another embodiment of the present invention, the step of receiving the specific information related to the playback request or the screen output control, etc. of the image data, and the specific application data 10 (eg game application, etc.) according to the specific information input; Generating combination data by combining the data with the data; and outputting the combined data to the output screen of the
이상에서 설명한 바와 같이 본 발명의 실시예에 의하면, 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션(10)의 출력 화면에 영화 등의 다른 애플리케이션(예: 영상 재생 애플리케이션)의 재생 화면을 추가하여 출력시킬 수 있는 화면 출력 제어 기술을 제공하는 효과가 있다. As described above, according to an exemplary embodiment of the present invention, a computer system may add and output a playback screen of another application (eg, a video playback application) to an output screen of a
특히, 본 발명의 실시예에 의하면, 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션(10)의 출력 화면이 독점 모드로 실행중인 전체 화면인 경우에도, 영화 등의 다른 애플리케이션(예: 영상 재생 애플리케이션)의 화면을 특정 애플리케이션(10)의 출력 화면에 추가하여 출력시킬 수 있는 화면 출력 제어 기술을 제공하는 효과가 있다. In particular, according to an embodiment of the present invention, even if the output screen of the
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.In the above description, all elements constituting the embodiments of the present invention are described as being combined or operating in combination, but the present invention is not necessarily limited to the embodiments. In other words, within the scope of the present invention, all of the components may be selectively operated in combination with one or more. In addition, although all of the components may be implemented in one independent hardware, each or all of the components may be selectively combined to perform some or all functions combined in one or a plurality of hardware. It may be implemented as a computer program having a. Codes and code segments constituting the computer program may be easily inferred by those skilled in the art. Such a computer program may be stored in a computer readable storage medium and read and executed by a computer, thereby implementing embodiments of the present invention. The storage medium of the computer program may include a magnetic recording medium, an optical recording medium, a carrier wave medium, and the like.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들 은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.In addition, the terms "comprise", "comprise" or "having" described above mean that the corresponding component may be included, unless otherwise stated, and thus excludes other components. It should be construed that it may further include other components instead. All terms, including technical and scientific terms, have the same meanings as commonly understood by one of ordinary skill in the art unless otherwise defined. Terms commonly used, such as terms defined in a dictionary, should be interpreted to coincide with the contextual meaning of the related art, and shall not be construed in an ideal or excessively formal sense unless explicitly defined in the present invention.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The foregoing description is merely illustrative of the technical idea of the present invention, and various changes and modifications may be made by those skilled in the art without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention but to describe the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. The protection scope of the present invention should be interpreted by the following claims, and all technical ideas within the equivalent scope should be interpreted as being included in the scope of the present invention.
도 1은 본 발명의 일 실시예에 따른 화면 출력 제어 장치에 대한 개략도, 1 is a schematic diagram of a screen output control apparatus according to an embodiment of the present invention;
도 2는 본 발명의 일 실시예에 따른 화면 출력 제어 방법에 대한 흐름도, 2 is a flowchart illustrating a screen output control method according to an embodiment of the present invention;
도 3은 본 발명의 일 실시예에 따른 화면 출력 제어 방법에서, 화면 출력 제어 장치에 포함된 영상 재생 관리부에 의해 수행되는 과정을 나타낸 흐름도, 3 is a flowchart illustrating a process performed by an image reproduction management unit included in a screen output control apparatus in a screen output control method according to an embodiment of the present invention;
도 4는 본 발명의 일 실시예에 따른 화면 출력 제어 방법에서, 화면 출력 제어 장치에 포함된 화면 출력 제어부에 의해 수행되는 과정을 나타낸 흐름도, 4 is a flowchart illustrating a process performed by a screen output controller included in a screen output control apparatus in the screen output control method according to an embodiment of the present invention;
도 5는 본 발명의 일 실시예에 따른 화면 출력 제어 방법에 의해, 타깃 애플리케이션의 출력 화면에 영상 데이터에 대한 재생 화면이 추가된 것을 예시적으로 나타낸 도면이다. 5 is a diagram exemplarily illustrating that a playback screen for image data is added to an output screen of a target application by a screen output control method according to an exemplary embodiment of the present invention.
< 도면의 주요 부분에 대한 부호의 설명 ><Description of Symbols for Main Parts of Drawings>
10: 타깃 애플리케이션10: Target Application
100: 화면 출력 제어 장치100: display control device
110: 영상 재생 관리부110: video playback management unit
120: 화면 출력 제어부120: screen output control unit
130: 프로세스 간 통신 수단130: interprocess communication means
510: 영상 재생 애플리케이션의 재생 화면510: playback screen of the video playback application
520: 타깃 애플리케이션의 출력 화면520: output screen of the target application
Claims (16)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090085802A KR101088129B1 (en) | 2009-09-11 | 2009-09-11 | Method, Apparatus and Recording Medium for Controlling Screen Output |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090085802A KR101088129B1 (en) | 2009-09-11 | 2009-09-11 | Method, Apparatus and Recording Medium for Controlling Screen Output |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110027950A KR20110027950A (en) | 2011-03-17 |
KR101088129B1 true KR101088129B1 (en) | 2011-12-02 |
Family
ID=43934477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090085802A KR101088129B1 (en) | 2009-09-11 | 2009-09-11 | Method, Apparatus and Recording Medium for Controlling Screen Output |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101088129B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020205757A1 (en) * | 2019-04-05 | 2020-10-08 | Sony Interactive Entertainment LLC | Media player supporting streaming protocol libraries for different media applications on a computer system |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101380953B1 (en) * | 2011-06-21 | 2014-04-22 | 주식회사 쉘위애드 | Method for managing advertising exposure in smart phone and storage media for applications thereof |
CN105282573B (en) * | 2014-07-24 | 2020-04-07 | 腾讯科技(北京)有限公司 | Embedded information processing method, client, server and storage medium |
KR101716862B1 (en) | 2016-10-04 | 2017-03-15 | (주)볼트마이크로 | Apparatus for managing video data and method the same |
-
2009
- 2009-09-11 KR KR1020090085802A patent/KR101088129B1/en not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020205757A1 (en) * | 2019-04-05 | 2020-10-08 | Sony Interactive Entertainment LLC | Media player supporting streaming protocol libraries for different media applications on a computer system |
US10862946B1 (en) | 2019-04-05 | 2020-12-08 | Sony Interactive Entertainment LLC | Media player supporting streaming protocol libraries for different media applications on a computer system |
Also Published As
Publication number | Publication date |
---|---|
KR20110027950A (en) | 2011-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11829787B2 (en) | Multi-process model for cross-platform applications | |
CN104598257B (en) | The method and apparatus of remote application operation | |
US8675000B2 (en) | Command buffers for web-based graphics rendering | |
US20140143305A1 (en) | Apparatus and system for providing software service using software virtualization and method thereof | |
CN110599396B (en) | Information processing method and device | |
US8418169B2 (en) | Management method for managing software module and information processor | |
JP7346606B2 (en) | Screen sharing processing method, device, equipment and storage medium | |
KR102125923B1 (en) | Method and apparatus for upgrading operating system of a electronic device | |
JP2010526390A (en) | Data management across mesh-distributed device collection | |
EP3311565B1 (en) | Low latency application streaming using temporal frame transformation | |
US9467495B2 (en) | Transferring assets via a server-based clipboard | |
US10230855B1 (en) | Asynchronous usage of redirected scanners with a single driver | |
KR101088129B1 (en) | Method, Apparatus and Recording Medium for Controlling Screen Output | |
CN104903863A (en) | Inversion-of-control component service models for virtual environments | |
CN115350479B (en) | Rendering processing method, device, equipment and medium | |
WO2023173516A1 (en) | Data exchange method and apparatus, and storage medium and electronic device | |
US20070025197A1 (en) | Information-processing apparatus, recording medium and information-processing method | |
JP6772235B2 (en) | How to synchronize equipment lists, equipment, equipment, computer storage media and programs | |
US20100088732A1 (en) | Method and apparatus for using service based on objects for implementing different functions of service | |
US11431727B2 (en) | Security of code between code generator and compiler | |
JP2021522721A (en) | Screen capture method, terminal and storage medium | |
WO2020187008A1 (en) | Service invocation control method, service invocation method, device, and terminal | |
KR20070031378A (en) | Architecture apparatus and method for device team recruitment and content renditioning for universal device interoperability platform | |
CN114625289B (en) | Interactive tablet and control method thereof | |
US20240160501A1 (en) | Interoperability between actor frameworks and asynchronous frameworks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |