KR101088129B1 - Method, Apparatus and Recording Medium for Controlling Screen Output - Google Patents

Method, Apparatus and Recording Medium for Controlling Screen Output Download PDF

Info

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
Application number
KR1020090085802A
Other languages
Korean (ko)
Other versions
KR20110027950A (en
Inventor
윤남영
김동진
김권수
김민수
Original Assignee
주식회사 이지에이치엘디
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 이지에이치엘디 filed Critical 주식회사 이지에이치엘디
Priority to KR1020090085802A priority Critical patent/KR101088129B1/en
Publication of KR20110027950A publication Critical patent/KR20110027950A/en
Application granted granted Critical
Publication of KR101088129B1 publication Critical patent/KR101088129B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital 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/1462Digital 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital 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

화면 출력 제어 방법, 장치 및 기록매체{Method, Apparatus and Recording Medium for Controlling Screen Output}Screen output control method, device and recording medium {Method, Apparatus and Recording Medium for Controlling Screen Output}

본 발명의 일 실시예는 화면 출력 제어 방법, 장치 및 기록매체에 관한 것이다. 더욱 상세하게는, 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션의 출력 화면에 영화 등의 다른 애플리케이션의 재생 화면을 추가하여 출력시킬 수 있는 화면 출력 제어 방법, 장치 및 기록매체에 관한 것이다.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 reproduction management unit 110, a screen output control unit 120, and the like.

영상 재생 관리부(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 reproduction management unit 110 specifies a dynamic link library (DLL) file and executes hook installation for the computer system or the target application 10 including the screen output control apparatus 100. After making a request to, when receiving a reproduction request for the image data, an inter-process communication (IPC) means 130 is generated to transmit the image data to be reproduced through the IPC means 130. do. In response to a request for hook installation, the screen output controller 120 may include a DLL file inserted into the target application 10 by the computer system or the target application 10 including the screen output control apparatus 100. After being loaded with), if the target application 10 is detected to use a graphical API (Application Programming Interface, hereinafter referred to as “API”), it installs an API hook and installs the API hook. When a reproduction request for data is input, the reproduction request is transmitted to the image reproduction management unit 110 to receive the image data through the IPC means 130 generated by the image reproduction management unit 110, and to reproduce the received image data. By adding the screen to the output screen of the target application 10, the screen output is controlled.

영상 재생 관리부(110)가 "DLL 파일을 지정하여 훅 설치"를 컴퓨터 시스템 또는 타깃 애플리케이션(10)에 요청하면, 컴퓨터 시스템 또는 타깃 애플리케이션(10)에 의해, DLL 파일이 타깃 애플리케이션(10)에 삽입되어 타깃 애플리케이션(10)과 함께 로딩된다. When the video reproduction management unit 110 requests the computer system or the target application 10 to designate a hook by specifying a DLL file, the DLL system is inserted into the target application 10 by the computer system or the target application 10. And loaded with the target application 10.

전술한 바에 따르면, 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 target application 10 in response to a hook installation request (which is referred to as "DLL Injection") is used. This DLL injection method is just one example of various methods for loading a DLL file with another application, and depending on the implementation method, the DLL file is loaded with another application, such as a fake DLL method. It can be implemented in any way you can. However, in the entirety of the present specification, for convenience of description, a DLL injection method of inserting a DLL file together with another application and inserting the DLL file into the target application 10 according to a hook installation request. It is assumed that it uses.

위에서 언급한 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 target application 10 or a window of the target application 10 is activated in response to a request for hook installation of the video reproduction management unit 110. It is inserted into the application 10 and loaded with the target application 10.

전술한 화면 출력 제어부(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 target application 10, the screen output control unit 120 detects whether the target application 10 uses the graphic API, and thus the target application 10 uses the graphic API. If detected, install an API hook. The screen output control unit 120 may recognize the screen output time by performing API hooking to change the code of the graphic API according to the installation of the API hook, and perform the API hooking at the recognized screen output time. In this case, the changed code (code of the DLL file) may be executed.

만약, 타깃 애플리케이션(10)의 그래픽 API 사용 여부를 감지하여, 타깃 애플리케이션(10)이 그래픽 API를 사용하지 않는 것으로 감지되면, 화면 출력 제어부(120)는 DLL 파일(이 DLL 파일은 타깃 애플리케이션(10)과 함께 로딩되어 화면 출력 제어에 이용되는 DLL 파일과는 다른 DLL 파일로서, 타깃 애플리케이션(10)에서 사용하는 일반적인 DLL 파일을 의미함)을 로딩시키는 API에 대한 API 후킹을 수행한 이후, API 훅을 설치할 수 있다.  If it is detected whether the target application 10 uses the graphic API, and the target application 10 is detected not to use the graphic API, the screen output control unit 120 may determine a DLL file (this DLL file is the target application 10). API hook that is different from the DLL file that is loaded with) and used to control the screen output, which means a general DLL file used by the target application 10). Can be installed.

한편, 화면 출력 제어부(120)는, 타깃 애플리케이션(10)의 그래픽 API 사용 여부를 감지하여, 타깃 애플리케이션(10)이 그래픽 API를 사용하는 것으로 감지되면, API 훅의 설치에 따라 이벤트 관련 API의 코드를 변경하는 API 후킹(API Hooking)을 추가로 수행함으로써, 이벤트 전달 시점을 인식할 수 있고, 인식된 이벤트 전달 시점에, API 후킹의 수행에 따라 변경된 코드(DLL 파일의 코드)가 실행될 수 있다. Meanwhile, the screen output controller 120 detects whether the target application 10 uses the graphic API, and if the target application 10 detects the use of the graphic API, the code of the event-related API according to the installation of the API hook. By additionally performing API hooking to change, the event delivery time can be recognized, and at the recognized event delivery time, the changed code (code of the DLL file) can be executed according to the API hooking.

이때, 화면 출력 제어부(120)는, 키 또는 마우스 관련 입력에 대하여 자체 사용자 인터페이스(UI: User Interface, 이하 "UI"라 칭함) 프레임워크(Framework)로 입력 이벤트를 전달하여 처리 결과를 확인하고, 확인 결과에 따라 타깃 애플리케이션(10)으로 입력 이벤트를 알려준다. In this case, the screen output controller 120 confirms the processing result by transmitting an input event to a user interface (UI) framework for a key or mouse related input. According to the result of the check, the target application 10 is notified of the input event.

전술한 화면 출력 제어부(120)는, 그래픽 API 코드 변경 및/또는 이벤트 API 코드 변경과 관련된 API 훅을 설치한 이후, 타깃 애플리케이션(10)이 출력 화면에 새로운 장면을 디스플레이시키는 경우, 자체 UI 프레임워크의 초기화 여부를 검사한 이후, 초기화된 자체 UI 프레임워크의 내용을 재생 화면에 출력하며, 영상 데이 터에 대한 재생 요청이 입력되어 현재 상태가 재생 상태인 경우, 재생 요청을 IPC 수단(130)을 통해 영상 재생 관리부(110)로 전달하고, 이에 따라 영상 재생 관리부(110)에 의해 생성된 IPC 수단(130)을 통해 해당 영상 데이터를 전달받는다. The screen output control unit 120 described above has its own UI framework when the target application 10 displays a new scene on the output screen after installing the API hook related to the graphic API code change and / or the event API code change. After checking whether or not to initialize, outputs the contents of the initialized own UI framework on the playback screen, and if the playback request for the video data is input and the current status is the playback status, the IPC means 130 sends a playback request. Through the IPC means 130 generated by the video playback management unit 110, the video data is transmitted to the video playback management unit 110.

전술한 화면 출력 제어부(120)는, 자체 UI 프레임워크가 초기화되지 않은 경우, 재생 화면을 위한 위치 정보, 계층 구조, 폰트 데이터 및 이미지 데이터를 로딩키고 영상 재생 관리부과의 동작 동기화를 위해 IPC 수단(130)을 초기화함으로써, 자체 UI 프레임워크를 초기화할 수 있다. When the UI framework is not initialized, the screen output control unit 120 loads the position information, the hierarchical structure, the font data, and the image data for the playback screen, and performs the IPC means (for the operation synchronization with the video playback management unit). By initializing 130, it is possible to initialize its own UI framework.

전술한 바와 같이, 화면 출력 제어부(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 screen output controller 120 transmits a playback request for video data to the video playback management unit 110 through the socket, the video playback management unit 110 generates the IPC means 130. The video reproduction management unit 110 may use a message method, a clipboard method, a data copy method, and a dynamic data exchange method for sharing data and operations between processes with the target application 10. DDE: Dynamic Data Exchange, File Mapping, Mail Slot, Pipe, Socket, Remote Procedure Call (RPC), and Component Objects The IPC means 130 may be generated by one of a model (COM) method.

일 예로서, 영상 재생 관리부(110)가 파일 맵핑 방식에 따라 IPC 수단(130)으로서 공유 메모리를 생성하면, 영상 재생 관리부(110)는 생성된 공유 메모리에 영상 데이터를 저장(복사)하고, 화면 출력 제어부(120)는 공유 메모리에 저장된 영상 데이터를 읽어들임으로써, 영상 데이터는 영상 재생 관리부(110)에서 화면 출력 제어부(120)로 전달된다. As an example, when the video reproduction management unit 110 generates the shared memory as the IPC means 130 according to the file mapping method, the video reproduction management unit 110 stores (copy) the image data in the generated shared memory and displays the screen. The output control unit 120 reads the image data stored in the shared memory, so that the image data is transferred from the image reproduction management unit 110 to the screen output control unit 120.

이와 같이 영상 재생 관리부(110)에 의해 생성된 IPC 수단(130)을 통해, 화면 출력 제어부(120)가 영상 데이터를 전달받으면, 화면 출력 제어부(120)는, 전달받은 영상 데이터를 타깃 애플리케이션(10)의 데이터와 조합하여 출력함으로써, 도 5를 참조하면, 전달받은 영상 데이터에 대한 재생 화면(510)을 타깃 애플리케이션(10)의 출력 화면(520)에 추가한다. As described above, when the screen output controller 120 receives the video data through the IPC means 130 generated by the video reproduction management unit 110, the screen output controller 120 receives the received video data from the target application 10. By outputting the data in combination with), referring to FIG. 5, a reproduction screen 510 for the received image data is added to the output screen 520 of the target application 10.

위에서 언급한 타깃 애플리케이션(10)의 출력 화면(520)은, 비디오 장치를 독점하는 독점 모드(Exclusive Mode)로 동작하는 전체 화면일 수 있다.The output screen 520 of the target application 10 mentioned above may be a full screen operating in an exclusive mode that monopolizes the video device.

위에서 언급한 "타깃 애플리케이션(10)"은, 영상 재생 애플리케이션의 훅 설치 요청에 따라 화면 출력 제어부(120)(이는 DLL 파일일 수 있음)가 함께 로딩되는 애플리케이션을 의미하며, 이러한 타깃 애플리케이션(10)에는, 일 예로서, 게임 애플리케이션 및 그래픽 애플리케이션(예: CAD, CAM, 3D Authoring Tool 등) 등이 있으며, 이에 제한되지 않고, 컴퓨터 시스템에서 설치되어 실행가능한 모든 애플리케이션일 수 있다. The above-mentioned "target application 10" refers to an application in which the screen output control unit 120 (which may be a DLL file) is loaded together in response to a hook installation request of the video playback application. The target application 10 Examples include game applications and graphic applications (eg, CAD, CAM, 3D Authoring Tool, etc.), but are not limited thereto, and may be all applications installed and executable in a computer system.

전술한 영상 재생 관리부(110) 및 화면 출력 제어부(120)는, 본 발명의 일 실시예에 따른 화면 출력 제어를 위해 프로그래밍되어 구현되는 소프트웨어 모듈(Software Moduel)일 수 있다. The image reproduction manager 110 and the screen output controller 120 may be software modules that are programmed and implemented for screen output control according to an embodiment of the present invention.

영상 재생 관리부(110)는 동영상 플레이어(Player)와 같은 "영상 재생 애플리케이션(Application)"으로 구현될 수 있으며, 화면 출력 제어부(120)는 "동적 링크 라이브러리(DLL) 파일" 자체이거나 "동적 링크 라이브러리(DLL) 파일에 의해 동 작하는 특정 애플리케이션일 수 있다. The video playback management unit 110 may be implemented as a "video playback application" such as a video player, and the screen output control unit 120 may be a "dynamic link library (DLL) file" itself or a "dynamic link library." It can be a specific application running by a (DLL) file.

아래에서는, 설명의 편의상, 영상 재생 관리부(110)를 영상 재생 애플리케이션으로, 화면 출력 제어부(120)를 DLL로도 기술한다. 또한, 영상 재생 애플리케이션일 수 있는 영상 재생 관리부(110) 및 DLL일 수 있는 화면 출력 제어부(120)와, 타깃 애플리케이션(10)은 컴퓨터 시스템에서 실행되거나 설치되는 것으로서, 여기서 "컴퓨터 시스템"은, 영상 재생 애플리케이션의 훅 설치 요청에 따라 DLL 파일을 타깃 애플리케이션(10)에 삽입(Injection)하는 전체 시스템으로서, 윈도우 운영체제(Window OS), 매킨토시 운영체제(MAC OS), 유닉스/리눅스 및 임베디드 운영체제(Embedded OS) 등이 될 수 있다. In the following description, the video reproduction management unit 110 is described as a video reproduction application, and the screen output control unit 120 is also described as a DLL. In addition, the image reproduction management unit 110, which may be an image reproduction application, and the screen output control unit 120, which may be a DLL, and the target application 10 are executed or installed in a computer system. As a whole system that injects a DLL file into the target application 10 in response to a hook installation request of a playback application, it is a Windows OS, a Macintosh OS, a Unix / Linux, and an embedded OS. And so on.

도 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 target application 10. In the graphic API use detection step (S202), after the DLL file is loaded with the target application 10 according to the hook installation, the screen output control unit 120 operating by the DLL file is the graphic of the target application 10. Detect whether API is used. In the API hook installation step (S204), the screen output control unit 120 installs the API hook when it is detected that the target application 10 uses the graphic API. In the playback request delivery step (S206), if the playback request for the video data is input after the installation of the API hook, the screen output control unit 120 transmits the playback request to the video playback application. In the IPC means generating step (S208), the video playback application received the playback request generates the IPC means 130. In the image data delivery step (S210), the image reproducing application transmits the image data to the screen output controller 120 through the generated IPC means 130. In the screen output control step (S212), the screen output controller 120 adds a playback screen for the video data received through the IPC means 130 to the output screen of the target application 10.

전술한 훅 설치 요청 단계(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 target application 10. The hook installation request step S200 is a method for loading a DLL file together with another application. This step is performed by assuming that a DLL injection method of inserting a DLL file into the target application 10 in response to a hook installation request is performed. As a method for loading a DLL file together with other applications, in addition to the above-described DLL injection method, depending on the implementation method, it may be implemented by any method such as a fake DLL method. Before step S202, instead of the hook installation request step S200, a step in which another manner for loading a DLL file with another application may be performed.

여기서, 타깃 애플리케이션(10)의 출력 화면은 비디오 장치를 독점하는 독점 모드로 실행중인 전체 화면일 수도 있다. Here, the output screen of the target application 10 may be a full screen running in an exclusive mode exclusive of the video device.

이상에서 전술한 본 발명의 일 실시예에 따른 화면 출력 제어 방법을 영상 재생 관리부(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 reproduction management unit 110, and a process performed by the screen output control unit 120, and each process Will be described with reference to FIGS. 3 and 4, respectively.

도 3은 본 발명의 일 실시예에 따른 화면 출력 제어 방법에서, 화면 출력 제어 장치(100)에 포함된 영상 재생 관리부(110)인 영상 재생 애플리케이션에 의해 수행되는 과정을 나타낸 흐름도이다. 3 is a flowchart illustrating a process performed by an image reproduction application, which is an image reproduction management unit 110 included in the screen output control apparatus 100, in the screen output control method according to an exemplary embodiment of the present invention.

도 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 target application 10, the screen output control unit 120 is loaded for all applications executed in the computer system (this is called the target application 10). At this time, the process of loading the DLL (screen output control unit 120) with the target application 10 is referred to as "DLL injection" or "injection". Here, as an "injection method" that loads the DLL (screen output control unit 120) together with the target application 10, a hook (the hook at this time is called a "system hook") is directly installed on the computer system, which is the above-described method. There is an injection method for requesting, an injection method for directly requesting hook installation to the target application 10 by manipulating the memory of the target application 10, and any injection method.

도 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 target application 10, the video playback application waits for a user input indicating a playback request for video data to be played back through the video playback application ( S302). When the corresponding image data is loaded (S304) in response to a reproduction request for the image data in the user input waiting (S302), the IPC means 130 generates the loaded image data. In this case, referring to FIG. 3, the video reproducing application generates a shared memory which is one of the IPC means 130 (S306). Thereafter, the image reproducing application stores the image data stored in the computer in the shared memory created above (S308). In this way, it is determined whether the image data stored while storing the image data in the shared memory is the image data corresponding to the end of the corresponding image (S308). If there is no image data to be stored in the shared memory at the end of the image, the user input again. Wait (S302).

도 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 target application 10 in response to the hook installation request. After that, if a playback request for the video data is received, an IPC means generating function for generating the IPC means 130 and a playback screen on which the video data is displayed on the output screen of the target application 10 through the IPC means 130 are provided. Implement the image data transfer function for transferring the image data to the screen output control unit 120 (DLL) to add a.

컴퓨터가 읽을 수 있는 기록매체의 예로는 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 screen output controller 120 included in the screen output control apparatus 100 in the screen output control method according to an embodiment of the present invention.

도 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 target application 10 is loaded together with the target application 10, and then a screen output control unit operated by the DLL file ( 120 performs the processes in FIG.

타깃 애플리케이션(10)에 삽입된 DLL 파일이 타깃 애플리케이션(10)과 함께 로딩 된 시점에, DLL 파일에 의해 동작되는 화면 출력 제어부(120)는 타깃 애플리케이션(10)에서 사용하고 있는 DLL 파일을 조사하여 타깃 애플리케이션(10)의 그래픽 API 사용 여부를 검사한다(S400). When the DLL file inserted into the target application 10 is loaded with the target application 10, the screen output controller 120 operated by the DLL file examines the DLL file used by the target application 10. It is checked whether the target application 10 uses the graphic API (S400).

이에 따라, 타깃 애플리케이션(10) 그래픽 API를 사용하는 것으로 판단되면, 그래픽 API의 코드를 변경한다(S406). 여기서, 그래픽 API의 코드를 변경하는 것을 "API 후킹(Hooking)"이라고 하고, 이는 그래픽 API의 기존 코드에 따른 동작이 원하는 동작이 되게 끔 조작하는 것이다. 또한, 그래픽 API의 코드를 변경(S406)하는 것 이외에, UI 프레임워크에서 타깃 애플리케이션(10)의 이벤트 처리를 위해서, 이벤트 처리와 관련된 이벤트 API의 코드를 변경하는 API 후킹을 수행한다(S408). Accordingly, when it is determined that the target application 10 uses the graphic API, the code of the graphic API is changed (S406). Here, changing the code of the graphics API is called "API hooking", which is to manipulate the operation according to the existing code of the graphics API to the desired operation. In addition, in addition to changing the code of the graphic API (S406), in order to process the event of the target application 10 in the UI framework, API hooking to change the code of the event API related to the event processing is performed (S408).

한편, 타깃 애플리케이션(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 target application 10 checks whether the graphical API is used (S400), if the target application 10 does not use the graphical API, the API hooking on the DLL loading-related API is performed (S402). It is determined whether the loading is the DLL loading for the graphic API (S404), and if the DLL loading is the DLL loading for the graphic API, API hooking is performed to change the code of the graphic API (S406). Performing API hooking on the DLL loading-related API (S402) may load the DLL directly in order to use the graphic API in the target application 10 after the screen output controller 120 is loaded. API hooking is done for the API that loads.

전술한 과정(S400, S406 및 S408)들을 통해, 타깃 애플리케이션(10)에 삽입된 DLL 파일이 타깃 애플리케이션(10)과 함께 로딩되는 것이 완료된다. Through the above-described processes (S400, S406 and S408), the DLL file inserted into the target application 10 is finished loading with the target application 10.

이후, 타깃 애플리케이션(10)이 출력 화면에 새로운 장면을 그리는지를 판단한다(S410). 타깃 애플리케이션(10)이 출력 화면에 새로운 장면을 그리는 것으로 판단되면, 그래픽 API의 API 후킹의 결과에 따라, 화면에 그려야 할 시점에, 화면 출력 제어부(120)의 코드가 실행되고, UI 프레임워크가 초기화되었는지를 검사한다(S412). Thereafter, it is determined whether the target application 10 draws a new scene on the output screen (S410). If it is determined that the target application 10 draws a new scene on the output screen, the code of the screen output control unit 120 is executed at the time to be drawn on the screen according to the API hooking result of the graphic API, and the UI framework is executed. Check whether it is initialized (S412).

검사 결과, 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 target application 10 and set to output to the screen (S420). In this case, referring to FIG. 5, the output screen 510 is added with a specific size to a specific position of the output screen 520 of the target application 10. The size and position of the reproduction screen 510 of the image data may be determined according to a user setting or a default setting.

재생 상태인지에 대한 판단 결과 재생 상태가 아닌 멈춤 상태이거나, 공유 메모리 생성 여부에 대한 확인 결과 공유 메모리가 생성되어 있지 않은 경우에는, 로고(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 target application 10. It can be set to output to the screen (S422). At this time, the output screen, similar to Figure 5, the logo screen may be added in a specific size at a specific position of the output screen 520 of the target application 10. Here, the size and position of the logo screen may be determined according to a user setting or a default setting.

한편, 이벤트 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 output control unit 120 is executed at the time when the target application 10 should process the event. If the event is a key or mouse related input, it passes the event to the UI framework to confirm the processing result, and if the verification result is true, the target application 10 is not notified of the event, and if the verification result is false, the event is sent to the target application 10. Tells.

한편, 사용자 요청이나 영상 데이터의 재생이 완료되어, 화면 출력 제어부(120)가 언로드(Unload) 되는 시점에, API 후킹의 수행에 따라 변경된 코드 부분은 모두 삭제하여, 원래의 코드(그래픽 API 코드, 이벤트 API 코드 등)로 돌려놓는다. 또한, 화면 출력 제어를 위해 영상 재생 애플리케이션에 의해 생성된 공유 메모리의 사용을 종료한다. On the other hand, when the user request or playback of the video data is completed, and the screen output control unit 120 is unloaded, all of the changed code part is deleted by performing the API hooking, and the original code (graphic API code, Event API code, etc.) In addition, the use of the shared memory generated by the image reproducing application for the screen output control is terminated.

도 4를 참조하여 전술한 화면 출력 제어부(120)에 의해 수행되는 과정을 포 함하는 화면 출력 제어 방법은, 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. A screen output control method including a process performed by the screen output controller 120 described above with reference to FIG. 4 may be implemented in a program and recorded in a computer-readable recording medium.

화면 출력 제어부(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 output control unit 120, after the DLL file is inserted into the target application 10 in response to the hook installation request, the DLL file is loaded with the target application 10 A function of detecting whether to use the graphic API of the target application 10, a function of detecting whether to use the graphic API, an API hook installation function to install an API hook when the target application 10 is detected to use the graphic API, and an API hook. After installation of the video data, if the playback request for the video data is input to the video playback application to the video data receiving function to receive the video data via the IPC means, and the playback screen for the received video data target application (10) Implements a screen output control function that adds to the output screen of).

컴퓨터가 읽을 수 있는 기록매체의 예로는 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 target application 10 detects using a graphic API by a hook installation request or another method of a video playback application. And a screen output control step of adding the playback screen of the received video data to the output screen of the target application 10 after receiving the video data at the recognized screen output time according to the installation of the API hook. Here, the output screen of the target application 10 may be a full screen operating in an exclusive mode that monopolizes the video device in the computer system.

본 발명의 또 다른 실시예는, 영상 데이터의 재생 요청 또는 화면 출력 제어 등과 관련된 특정 정보를 입력받는 단계와, 입력된 특정 정보에 따라 특정 영상 데이터를 특정 애플리케이션(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 specific application 10. Here, the output screen of the specific application 10 may be a full screen running in the exclusive mode.

이상에서 설명한 바와 같이 본 발명의 실시예에 의하면, 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션(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 specific application 10 related to a game or graphics. It has the effect of providing a screen output control technology.

특히, 본 발명의 실시예에 의하면, 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션(10)의 출력 화면이 독점 모드로 실행중인 전체 화면인 경우에도, 영화 등의 다른 애플리케이션(예: 영상 재생 애플리케이션)의 화면을 특정 애플리케이션(10)의 출력 화면에 추가하여 출력시킬 수 있는 화면 출력 제어 기술을 제공하는 효과가 있다. In particular, according to an embodiment of the present invention, even if the output screen of the specific application 10 related to a game or graphics in the computer system is a full screen running in exclusive mode, other applications such as movies (for example, a video playback application) It is effective to provide a screen output control technique that can be output by adding the screen of the specific application 10 to the output screen.

이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(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)

영상 데이터에 대한 재생 요청을 전달받으면 프로세스 간 통신 수단을 생성하여 상기 프로세스 간 통신 수단을 통해 상기 영상 데이터를 전달하는 영상 재생 관리부; 및 An image reproduction management unit 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 동적 링크 라이브러리 파일이 타깃 애플리케이션과 함께 로딩 된 이후, 상기 타깃 애플리케이션이 그래픽 API(Application Programming Interface)를 사용하는 것으로 감지되면 API 훅을 설치하고, 상기 API 훅의 설치 이후, 상기 영상 데이터에 대한 상기 재생 요청이 입력되면 상기 재생 요청을 상기 영상 재생 관리부로 전달하여 상기 프로세스 간 통신 수단을 통해 상기 영상 데이터를 전달받고, 상기 전달받은 영상 데이터에 대한 재생 화면을 상기 타깃 애플리케이션의 출력 화면에 추가하는 화면 출력 제어부를 포함하되, 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), an API hook is installed, and after installation of the API hook, the playback of the image data is performed. When the 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 a screen output for adding the playback screen for the received video data to the output screen of the target application. Including a control unit, 상기 타깃 애플리케이션의 상기 출력 화면은 비디오 장치를 독점하는 독점 모드(Exclusive Mode)로 동작하는 전체 화면인 것을 특징으로 하는 화면 출력 제어 장치.And the output screen of the target application is a full screen operating in an exclusive mode that exclusively the video device. 제 1항에 있어서, The method of claim 1, 상기 영상 재생 관리부는, The video reproduction management unit, 상기 타깃 애플리케이션과의 프로세스 간 데이터 공유 및 동작 공유를 위해, 메시지 방식, 클립보드 방식, 데이터 복사 방식, 동적 데이터 교환 방식, 파일 맵핑 방식, 메일 슬롯 방식, 파이프 방식, 소켓 방식, 원격 절차 호출 방식 및 컴포넌트 오브젝트 모델 방식 중 하나의 방식으로 상기 프로세스 간 통신 수단을 생성 하는 것을 특징으로 하는 화면 출력 제어 장치.Message sharing, clipboard, data copying, dynamic data exchange, file mapping, mailslot, pipe, socket, remote procedure call, and the like for data sharing and operation sharing between processes with the target application. And generating the inter-process communication means by one of a component object model method. 제 2항에 있어서, 3. The method of claim 2, 상기 영상 재생 관리부는 상기 파일 맵핑 방식에 따라 상기 프로세스 간 통신 수단으로서 공유 메모리를 생성하여 상기 공유 메모리에 상기 영상 데이터를 저장하고, 상기 화면 출력 제어부는 상기 공유 메모리에 저장된 상기 영상 데이터를 읽어들임으로써, The image reproduction management unit generates a shared memory as the inter-process communication means according to the file mapping method, and stores the image data in the shared memory, and the screen output controller reads the image data stored in the shared memory. , 상기 영상 데이터는 상기 영상 재생 관리부에서 상기 화면 출력 제어부로 전달되는 것을 특징으로 하는 화면 출력 제어 장치.And the image data is transferred from the image reproduction management unit to the screen output control unit. 제 1항에 있어서, The method of claim 1, 상기 동적 링크 라이브러리 파일은, The dynamic link library file, 상기 영상 재생 관리부의 훅 설치에 대한 요청에 따라, 상기 타깃 애플리케이션의 입력 이벤트 발생이나 상기 타깃 애플리케이션의 윈도우 활성화시, 상기 타깃 애플리케이션에 삽입되어 상기 타깃 애플리케이션과 함께 로딩 되는 것을 특징으로 하는 화면 출력 제어 장치.In response to a request for hook installation of the video reproduction management unit, when an input event of the target application is generated or a window of the target application is activated, the screen output control device is inserted into the target application and loaded together with the target application. . 제 1항에 있어서, The method of claim 1, 상기 화면 출력 제어부는, The screen output control unit, 상기 타깃 애플리케이션이 상기 그래픽 API를 사용하는 것으로 감지되면, 상 기 API 훅의 설치에 따라 상기 그래픽 API의 코드를 변경하는 API 후킹을 수행함으로써, If the target application is detected to use the graphical API, by performing an API hook to change the code of the graphical API according to the installation of the API hook, 화면 출력 시점을 인식하고, 상기 인식된 화면 출력 시점에 상기 변경된 코드가 실행되는 것을 특징으로 하는 화면 출력 제어 장치.And recognizing a screen output time point, and executing the changed code at the recognized screen output time point. 제 1항에 있어서, The method of claim 1, 상기 화면 출력 제어부는, The screen output control unit, 상기 타깃 애플리케이션이 상기 그래픽 API를 사용하지 않는 것으로 감지되면, 동적 링크 라이브러리 파일을 로딩시키는 API에 대한 API 후킹을 수행한 이후, 상기 API 훅을 설치하는 것을 특징으로 하는 화면 출력 제어 장치.And detecting that the target application does not use the graphic API, after performing API hooking for an API that loads a dynamic link library file, and installing the API hook. 제 1항에 있어서, The method of claim 1, 상기 화면 출력 제어부는, The screen output control unit, 상기 API 훅을 설치한 이후, 상기 타깃 애플리케이션이 상기 출력 화면에 새로운 장면을 디스플레이시키는 경우, After installing the API hook, when the target application displays a new scene on the output screen, 자체 사용자 인터페이스 프레임워크의 초기화 여부를 검사한 이후, After checking whether your own user interface framework is initialized, 초기화된 상기 자체 사용자 인터페이스 프레임워크의 내용을 상기 재생 화면에 출력하며, 상기 영상 데이터에 대한 상기 재생 요청이 입력되어 현재 상태가 재생 상태인 경우, 상기 재생 요청을 상기 프로세스 간 통신 수단을 통해 상기 영상 재생 관리부로 전달하여 상기 프로세스 간 통신 수단을 통해 상기 영상 데이터를 전달받는 것을 특징으로 하는 화면 출력 제어 장치.Outputs the initialized contents of the user interface framework to the playback screen, and when the playback request for the video data is input and the current status is the playback status, the playback request is transmitted through the inter-process communication means. And transmitting the image data to the reproduction management unit through the inter-process communication means. 제 7항에 있어서, The method of claim 7, wherein 상기 화면 출력 제어부는, The screen output control unit, 상기 자체 사용자 인터페이스 프레임워크가 초기화되지 않은 경우, If the own user interface framework is not initialized, 상기 재생 화면을 위한 위치 정보, 계층 구조, 폰트 데이터 및 이미지 데이터를 로딩키고 상기 영상 재생 관리부과의 동작 동기화를 위해 상기 프로세스 간 통신 수단을 초기화함으로써, 상기 자체 사용자 인터페이스 프레임워크를 초기화하는 것을 특징으로 하는 화면 출력 제어 장치.Initializing the user interface framework by loading location information, hierarchical structure, font data and image data for the playback screen and initializing the inter-process communication means for synchronizing operation with the video playback management unit. Display control device. 제 1항에 있어서, The method of claim 1, 상기 화면 출력 제어부는, The screen output control unit, 상기 전달받은 영상 데이터를 상기 타깃 애플리케이션의 데이터와 조합하여 출력함으로써, 상기 전달받은 영상 데이터에 대한 상기 재생 화면을 상기 타깃 애플리케이션의 상기 출력 화면에 추가하는 것을 특징으로 하는 화면 출력 제어 장치.And outputting the received image data in combination with the data of the target application, thereby adding the reproduction screen for the received image data to the output screen of the target application. 제 1항에 있어서, The method of claim 1, 상기 화면 출력 제어부는, The screen output control unit, 상기 타깃 애플리케이션이 상기 그래픽 API를 사용하는 것으로 감지되면, 상 기 API 훅의 설치에 따라 이벤트 관련 API의 코드를 변경하는 API 후킹을 추가로 수행함으로써, If the target application is detected to use the graphical API, by additionally performing an API hook to change the code of the event-related API according to the installation of the API hook, 이벤트 전달 시점을 인식하고, 상기 인식된 이벤트 전달 시점에 상기 변경된 코드가 실행되는 것을 특징으로 하는 화면 출력 제어 장치.And recognizing an event delivery time point and executing the changed code at the recognized event delivery time point. 제 10항에 있어서, The method of claim 10, 상기 화면 출력 제어부는, The screen output control unit, 키 또는 마우스 관련 입력에 대하여 자체 사용자 인터페이스 프레임워크로 입력 이벤트를 전달하여 처리 결과를 확인하고, 확인 결과에 따라 상기 타깃 애플리케이션으로 상기 입력 이벤트를 알리는 것을 특징으로 하는 화면 출력 제어 장치.And an input event to a user interface framework for a key or mouse related input to confirm a processing result, and to notify the target application of the input event according to the verification result. 삭제delete 화면 출력 제어 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서, A recording medium having recorded thereon a program for executing a screen output control method, 동적 링크 라이브러리 파일이 타깃 애플리케이션과 함께 로딩 된 이후, 상기 동적 링크 라이브러리 파일을 통해 영상 데이터에 대한 재생 요청을 전달받으면, 프로세스 간 통신 수단을 생성하는 프로세서 간 통신 수단 생성 기능; 및 An inter-processor communication means generating function for generating an inter-process communication means when receiving a reproduction request for image data through the dynamic link library file after the dynamic link library file is loaded with the target application; And 상기 타깃 애플리케이션의 출력 화면에 상기 영상 데이터가 표시된 재생 화면을 추가하기 위해, 상기 영상 데이터를 상기 프로세스 간 통신 수단을 통해 화면 출력 제어 관련 프로세서로 전달하는 영상 데이터 전달 기능Image data transfer function for transferring the image data to a processor related to output control through the inter-process communication means to add a reproduction screen on which the image data is displayed on the output screen of the target application. 을 구현하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체. A computer-readable recording medium that records a program that implements the program. 화면 출력 제어 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서, A recording medium having recorded thereon a program for executing a screen output control method, 동적 링크 라이브러리 파일이 타깃 애플리케이션과 함께 로딩 된 이후, 상기 타깃 애플리케이션의 그래픽 API(Application Programming Interface) 사용 여부를 감지하는 그래픽 API 사용 여부 감지 기능; Detecting whether to use a graphic API to detect whether the target application uses a graphic API after the dynamic link library file is loaded with the target application; 상기 타깃 애플리케이션이 상기 그래픽 API를 사용하는 것으로 감지되면, API 훅을 설치하는 API 훅 설치 기능; An API hook installation function for installing an API hook when the target application is detected to use the graphic API; 상기 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 비디오 장치를 독점하는 독점 모드(Exclusive Mode)로 동작하는 전체 화면으로서의 상기 타깃 애플리케이션의 출력 화면에 상기 전달받은 영상 데이터에 대한 재생 화면을 추가하는 화면 출력 제어 기능A screen output control function for adding a playback screen for the received image data to an output screen of the target application as a full screen operating in an exclusive mode exclusive of a video device. 을 구현하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체. A computer-readable recording medium that records a program that implements the program. 타깃 애플리케이션이 그래픽 API를 사용하는 것으로 감지되면 API 훅을 설치하는 API 훅 설치 단계; 및 An API hook installation step of installing an API hook when the target application is detected to use a graphic API; And 상기 API 훅의 설치에 따라 인식된 화면 출력 시점에 영상 재생 애플리케이션으로부터 영상 데이터를 전달받고, 상기 전달된 영상 데이터의 재생 화면을 상기 타깃 애플리케이션의 출력 화면에 추가하는 화면 출력 제어 단계를 포함하되, 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; 상기 타깃 애플리케이션의 상기 출력 화면은 비디오 장치를 독점하는 독점 모드(Exclusive Mode)로 동작하는 전체 화면인 것을 특징으로 하는 화면 출력 제어 방법. And the output screen of the target application is a full screen operating in an exclusive mode that exclusively the video device. 특정 정보를 입력받는 단계; 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; 를 포함하되, , &Lt; / RTI & 상기 특정 애플리케이션의 출력 화면은 독점 모드(Exclusive Mode)로 실행 중인 전체 화면인 것을 특징으로 하는 화면 출력 제어 방법. The output screen of the particular application is a screen output control method, characterized in that the entire screen running in the exclusive mode (Exclusive Mode).
KR1020090085802A 2009-09-11 2009-09-11 Method, Apparatus and Recording Medium for Controlling Screen Output KR101088129B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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