KR20110027950A - 화면 출력 제어 방법, 장치 및 기록매체 - Google Patents

화면 출력 제어 방법, 장치 및 기록매체 Download PDF

Info

Publication number
KR20110027950A
KR20110027950A KR1020090085802A KR20090085802A KR20110027950A KR 20110027950 A KR20110027950 A KR 20110027950A KR 1020090085802 A KR1020090085802 A KR 1020090085802A KR 20090085802 A KR20090085802 A KR 20090085802A KR 20110027950 A KR20110027950 A KR 20110027950A
Authority
KR
South Korea
Prior art keywords
screen
target application
api
output control
screen output
Prior art date
Application number
KR1020090085802A
Other languages
English (en)
Other versions
KR101088129B1 (ko
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/ko
Publication of KR20110027950A publication Critical patent/KR20110027950A/ko
Application granted granted Critical
Publication of KR101088129B1 publication Critical patent/KR101088129B1/ko

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

본 발명의 실시예는, 화면 출력 제어 방법, 장치 및 기록매체에 관한 것으로서, 특정 정보가 입력되면 특정 영상 데이터를 특정 애플리케이션의 데이터와 조합하여 조합 데이터를 생성하고, 이렇게 생성된 조합 데이터를 특정 애플리케이션의 출력 화면에 출력함으로써 화면 출력을 제어하는 화면 출력 제어 방법을 제공한다.
본 발명의 실시예에 의하면, 게임이나 그래픽 등에 관련된 특정 애플리케이션의 출력 화면이 독점 모드로 동작하는 전체 화면인 경우에도, 영화 등의 다른 애플리케이션의 화면을 특정 애플리케이션의 출력 화면에 추가하여 출력시킬 수 있는 효과가 있다.
화면 출력, 제어, 전체 화면

Description

화면 출력 제어 방법, 장치 및 기록매체{Method, Apparatus and Recording Medium for Controlling Screen Output}
본 발명의 일 실시예는 화면 출력 제어 방법, 장치 및 기록매체에 관한 것이다. 더욱 상세하게는, 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션의 출력 화면에 영화 등의 다른 애플리케이션의 재생 화면을 추가하여 출력시킬 수 있는 화면 출력 제어 방법, 장치 및 기록매체에 관한 것이다.
종래에, 사용자가 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션을 실행시켜, 특정 애플리케이션의 출력 화면을 전체 화면으로 표시하는 경우, 특정 애플리케이션이 화면 출력과 관련된 비디오 장치를 독점적으로 사용한다. 이와 같이, 게임이나 그래픽 등에 관련된 특정 애플리케이션이 최대화된 성능을 끌어내기 위하여, 활성화된 특정 애플리케이션에만 비디오 장치를 할당하여 다른 윈도우(Window)가 비디오 장치를 사용하지 못하도록 함으로써, 특정 애플리케이션만이 비디오 장치를 독점적으로 사용하게 하는 상태를 "독점모드(Exclusive Mode)"라고 한다.
이와 같이, 컴퓨터 시스템에서 실행된 특정 애플리케이션이 전체 화면으로 표시되어 독점모드 상태에 있게 되면, 다른 애플리케이션은 실행된다고 하더라도, 컴퓨터 시스템에서의 비디오 장치를 특정 애플리케이션이 독점하고 있는 상태이기 때문에, 실행된 다른 애플리케이션의 화면을 출력할 수 없는 문제점이 있다.
이러한 배경에서, 본 발명의 실시예의 목적은, 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션의 출력 화면에 영화 등의 다른 애플리케이션의 재생 화면을 추가하여 출력시킬 수 있는 화면 출력 제어 기술을 제공하는 데 있다.
또한, 본 발명의 실시예의 다른 목적은, 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션의 출력 화면이 독점 모드로 실행중인 전체 화면인 경우에도, 영화 등의 다른 애플리케이션의 화면을 특정 애플리케이션의 출력 화면에 추가하여 출력시킬 수 있는 화면 출력 제어 기술을 제공하는 데 있다.
본 발명의 일 실시예는, 영상 데이터에 대한 재생 요청을 전달받으면 프로세스 간 통신 수단을 생성하여 상기 프로세스 간 통신 수단을 통해 상기 영상 데이터를 전달하는 영상 재생 관리부; 및 동적 링크 라이브러리 파일이 타깃 애플리케이션과 함께 로딩 된 이후, 상기 타깃 애플리케이션이 그래픽 API(Application Programming Interface)를 사용하는 것으로 감지되면 API 훅을 설치하고, 상기 API 훅의 설치 이후, 상기 영상 데이터에 대한 상기 재생 요청이 입력되면 상기 재생 요청을 상기 영상 재생 관리부로 전달하여 상기 프로세스 간 통신 수단을 통해 상 기 영상 데이터를 전달받고, 상기 전달받은 영상 데이터에 대한 재생 화면을 상기 타깃 애플리케이션의 출력 화면에 추가하는 화면 출력 제어부를 포함하는 것을 특징으로 하는 화면 출력 제어 장치를 제공한다.
또한, 본 발명의 일 실시예는, 화면 출력 제어 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서, 동적 링크 라이브러리 파일이 타깃 애플리케이션과 함께 로딩 된 이후, 상기 동적 링크 라이브러리 파일을 통해 영상 데이터에 대한 재생 요청을 전달받으면, 프로세스 간 통신 수단을 생성하는 프로세서 간 통신 수단 생성 기능; 및 상기 타깃 애플리케이션의 출력 화면에 상기 영상 데이터가 표시된 재생 화면을 추가하기 위해, 상기 영상 데이터를 상기 프로세스 간 통신 수단을 통해 화면 출력 제어 관련 프로세서로 전달하는 영상 데이터 전달 기능을 구현하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
또한, 본 발명의 일 실시예는, 화면 출력 제어 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서, 동적 링크 라이브러리 파일이 타깃 애플리케이션과 함께 로딩 된 이후, 상기 타깃 애플리케이션의 그래픽 API(Application Programming Interface) 사용 여부를 감지하는 그래픽 API 사용 여부 감지 기능; 상기 타깃 애플리케이션이 상기 그래픽 API를 사용하는 것으로 감지되면, API 훅을 설치하는 API 훅 설치 기능; 상기 API 훅의 설치 이후, 영상 데이터에 대한 재생 요청이 입력되면, 프로세스 간 통신 수단을 통해 영상 재생 관련 프로세서로부터 상기 영상 데이터를 전달받는 영상 데이터 수신 기능; 및 상기 전달받은 영상 데이터에 대한 재생 화면을 상기 타깃 애플리케이션의 출력 화면에 추가하는 화면 출력 제어 기능을 구현하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
또한, 본 발명의 일 실시예는, 타깃 애플리케이션이 그래픽 API를 사용하는 것으로 감지되면 API 훅을 설치하는 API 훅 설치 단계; 및 상기 API 훅의 설치에 따라 인식된 화면 출력 시점에 영상 재생 애플리케이션으로부터 영상 데이터를 전달받고, 상기 전달된 영상 데이터의 재생 화면을 상기 타깃 애플리케이션의 출력 화면에 추가하는 화면 출력 제어 단계를 포함하는 것을 특징으로 하는 화면 출력 제어 방법을 제공한다.
또한, 본 발명의 일 실시예는, 특정 정보를 입력받는 단계; 상기 입력된 특정 정보에 따라 특정 영상 데이터를 특정 애플리케이션의 데이터와 조합하여 조합 데이터를 생성하는 단계; 및 상기 조합 데이터를 상기 특정 애플리케이션의 출력 화면에 출력하는 단계를 포함하는 것을 특징으로 하는 화면 출력 제어 방법을 제공한다.
이상에서 설명한 바와 같이 본 발명의 실시예에 의하면, 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션의 출력 화면에 영화 등의 다른 애플리케이션의 재생 화면을 추가하여 출력시킬 수 있는 화면 출력 제어 기술을 제공하는 효과가 있다.
특히, 본 발명의 실시예에 의하면, 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션의 출력 화면이 독점 모드로 실행중인 전체 화면인 경우에도, 영화 등의 다른 애플리케이션의 화면을 특정 애플리케이션의 출력 화면에 추 가하여 출력시킬 수 있는 화면 출력 제어 기술을 제공하는 효과가 있다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 화면 출력 제어 장치(100)에 대한 개략도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 화면 출력 제어 장치(100)는, 영상 재생 관리부(110) 및 화면 출력 제어부(120) 등을 포함한다.
영상 재생 관리부(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)의 출력 화면에 추가함으로써, 화면 출력이 제어된다.
영상 재생 관리부(110)가 "DLL 파일을 지정하여 훅 설치"를 컴퓨터 시스템 또는 타깃 애플리케이션(10)에 요청하면, 컴퓨터 시스템 또는 타깃 애플리케이션(10)에 의해, DLL 파일이 타깃 애플리케이션(10)에 삽입되어 타깃 애플리케이션(10)과 함께 로딩된다.
전술한 바에 따르면, DLL 파일을 다른 애플리케이션과 함께 로딩시키기 위한 방식으로서, 훅 설치 요청에 따라 DLL 파일을 타깃 애플리케이션(10)에 삽입하는 방식(이를 "DLL 인젝션(DLL Injection)"이라 함)을 이용하는데, 이러한 DLL 인젝션 방식은, DLL 파일을 다른 애플리케이션과 함께 로딩시키기 위한 여러 방식들 중에서 하나의 예시일 뿐, 구현 방식에 따라서는, 페이크(Fake) DLL 방식 등과 같이 DLL 파일을 다른 애플리케이션과 함께 로딩시킬 수 있는 그 어떠한 방식으로도 구현이 가능하다. 다만, 본 명세서의 전체에서는, 설명의 편의를 위해, DLL 파일을 다른 애플리케이션과 함께 로딩시키기 위한 방식으로서, 훅 설치 요청에 따라 DLL 파일을 타깃 애플리케이션(10)에 삽입하는 DLL 인젝션(DLL Injection) 방식을 이용하는 것으로 가정하여 설명한다.
위에서 언급한 DLL 파일은, 일 예로써, 영상 재생 관리부(110)의 훅 설치에 대한 요청에 따라, 타깃 애플리케이션(10)의 입력 이벤트 발생이나 타깃 애플리케이션(10)의 윈도우(Window) 활성화시, 타깃 애플리케이션(10)에 삽입되어 타깃 애플리케이션(10)과 함께 로딩(Loading) 된다.
전술한 화면 출력 제어부(120)는, DLL 파일이 타깃 애플리케이션(10)과 함께 로딩 된 이후, 타깃 애플리케이션(10)의 그래픽 API 사용 여부를 감지하여, 타깃 애플리케이션(10)이 그래픽 API를 사용하는 것으로 감지되면, API 훅(API Hook)을 설치한다. 화면 출력 제어부(120)는 이러한 API 훅의 설치에 따라 그래픽 API의 코드를 변경하는 API 후킹(API Hooking)을 수행함으로써, 화면 출력 시점을 인식할 수 있고, 인식된 화면 출력 시점에 API 후킹의 수행에 따라 변경된 코드(DLL 파일의 코드)가 실행될 수 있다.
만약, 타깃 애플리케이션(10)의 그래픽 API 사용 여부를 감지하여, 타깃 애플리케이션(10)이 그래픽 API를 사용하지 않는 것으로 감지되면, 화면 출력 제어부(120)는 DLL 파일(이 DLL 파일은 타깃 애플리케이션(10)과 함께 로딩되어 화면 출력 제어에 이용되는 DLL 파일과는 다른 DLL 파일로서, 타깃 애플리케이션(10)에서 사용하는 일반적인 DLL 파일을 의미함)을 로딩시키는 API에 대한 API 후킹을 수행한 이후, API 훅을 설치할 수 있다.
한편, 화면 출력 제어부(120)는, 타깃 애플리케이션(10)의 그래픽 API 사용 여부를 감지하여, 타깃 애플리케이션(10)이 그래픽 API를 사용하는 것으로 감지되면, API 훅의 설치에 따라 이벤트 관련 API의 코드를 변경하는 API 후킹(API Hooking)을 추가로 수행함으로써, 이벤트 전달 시점을 인식할 수 있고, 인식된 이벤트 전달 시점에, API 후킹의 수행에 따라 변경된 코드(DLL 파일의 코드)가 실행될 수 있다.
이때, 화면 출력 제어부(120)는, 키 또는 마우스 관련 입력에 대하여 자체 사용자 인터페이스(UI: User Interface, 이하 "UI"라 칭함) 프레임워크(Framework)로 입력 이벤트를 전달하여 처리 결과를 확인하고, 확인 결과에 따라 타깃 애플리케이션(10)으로 입력 이벤트를 알려준다.
전술한 화면 출력 제어부(120)는, 그래픽 API 코드 변경 및/또는 이벤트 API 코드 변경과 관련된 API 훅을 설치한 이후, 타깃 애플리케이션(10)이 출력 화면에 새로운 장면을 디스플레이시키는 경우, 자체 UI 프레임워크의 초기화 여부를 검사한 이후, 초기화된 자체 UI 프레임워크의 내용을 재생 화면에 출력하며, 영상 데이 터에 대한 재생 요청이 입력되어 현재 상태가 재생 상태인 경우, 재생 요청을 IPC 수단(130)을 통해 영상 재생 관리부(110)로 전달하고, 이에 따라 영상 재생 관리부(110)에 의해 생성된 IPC 수단(130)을 통해 해당 영상 데이터를 전달받는다.
전술한 화면 출력 제어부(120)는, 자체 UI 프레임워크가 초기화되지 않은 경우, 재생 화면을 위한 위치 정보, 계층 구조, 폰트 데이터 및 이미지 데이터를 로딩키고 영상 재생 관리부과의 동작 동기화를 위해 IPC 수단(130)을 초기화함으로써, 자체 UI 프레임워크를 초기화할 수 있다.
전술한 바와 같이, 화면 출력 제어부(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)을 생성할 수 있다.
일 예로서, 영상 재생 관리부(110)가 파일 맵핑 방식에 따라 IPC 수단(130)으로서 공유 메모리를 생성하면, 영상 재생 관리부(110)는 생성된 공유 메모리에 영상 데이터를 저장(복사)하고, 화면 출력 제어부(120)는 공유 메모리에 저장된 영상 데이터를 읽어들임으로써, 영상 데이터는 영상 재생 관리부(110)에서 화면 출력 제어부(120)로 전달된다.
이와 같이 영상 재생 관리부(110)에 의해 생성된 IPC 수단(130)을 통해, 화면 출력 제어부(120)가 영상 데이터를 전달받으면, 화면 출력 제어부(120)는, 전달받은 영상 데이터를 타깃 애플리케이션(10)의 데이터와 조합하여 출력함으로써, 도 5를 참조하면, 전달받은 영상 데이터에 대한 재생 화면(510)을 타깃 애플리케이션(10)의 출력 화면(520)에 추가한다.
위에서 언급한 타깃 애플리케이션(10)의 출력 화면(520)은, 비디오 장치를 독점하는 독점 모드(Exclusive Mode)로 동작하는 전체 화면일 수 있다.
위에서 언급한 "타깃 애플리케이션(10)"은, 영상 재생 애플리케이션의 훅 설치 요청에 따라 화면 출력 제어부(120)(이는 DLL 파일일 수 있음)가 함께 로딩되는 애플리케이션을 의미하며, 이러한 타깃 애플리케이션(10)에는, 일 예로서, 게임 애플리케이션 및 그래픽 애플리케이션(예: CAD, CAM, 3D Authoring Tool 등) 등이 있으며, 이에 제한되지 않고, 컴퓨터 시스템에서 설치되어 실행가능한 모든 애플리케이션일 수 있다.
전술한 영상 재생 관리부(110) 및 화면 출력 제어부(120)는, 본 발명의 일 실시예에 따른 화면 출력 제어를 위해 프로그래밍되어 구현되는 소프트웨어 모듈(Software Moduel)일 수 있다.
영상 재생 관리부(110)는 동영상 플레이어(Player)와 같은 "영상 재생 애플리케이션(Application)"으로 구현될 수 있으며, 화면 출력 제어부(120)는 "동적 링크 라이브러리(DLL) 파일" 자체이거나 "동적 링크 라이브러리(DLL) 파일에 의해 동 작하는 특정 애플리케이션일 수 있다.
아래에서는, 설명의 편의상, 영상 재생 관리부(110)를 영상 재생 애플리케이션으로, 화면 출력 제어부(120)를 DLL로도 기술한다. 또한, 영상 재생 애플리케이션일 수 있는 영상 재생 관리부(110) 및 DLL일 수 있는 화면 출력 제어부(120)와, 타깃 애플리케이션(10)은 컴퓨터 시스템에서 실행되거나 설치되는 것으로서, 여기서 "컴퓨터 시스템"은, 영상 재생 애플리케이션의 훅 설치 요청에 따라 DLL 파일을 타깃 애플리케이션(10)에 삽입(Injection)하는 전체 시스템으로서, 윈도우 운영체제(Window OS), 매킨토시 운영체제(MAC OS), 유닉스/리눅스 및 임베디드 운영체제(Embedded OS) 등이 될 수 있다.
도 2는 본 발명의 일 실시예에 따른 화면 출력 제어 방법에 대한 흐름도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 화면 출력 제어 장치(100)가 제공하는 화면 출력 제어 방법은, 훅 설치 요청 단계(S200), 그래픽 API 사용 감지 단계(S202), API 훅 설치 단계(S204), 재생 요청 전달 단계(S206), IPC 수단 생성 단계(S208), 영상 데이터 전달 단계(S210) 및 화면 출력 제어 단계(S212) 등을 포함한다.
훅 설치 요청 단계(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)의 출력 화면에 추가한다.
전술한 훅 설치 요청 단계(S200)는, DLL 파일을 타깃 애플리케이션(10)과 함께 로딩시키기 위한 단계로서, 이러한 훅 설치 요청 단계(S200)는, DLL 파일을 다른 애플리케이션과 함께 로딩시키기 위한 방식으로서, 훅 설치 요청에 따라 DLL 파일을 타깃 애플리케이션(10)에 삽입하는 DLL 인젝션(DLL Injection) 방식을 이용하는 것으로 가정함으로써, 수행되는 단계이다. DLL 파일을 다른 애플리케이션과 함께 로딩시키기 위한 방식으로는, 전술한 DLL 인젝션 방식 이외에도, 구현 방식에 따라서는, 페이크(Fake) DLL 방식 등 그 어떠한 방식으로도 구현이 가능하며, 그렇게 되면, API 사용 감지 단계(S202) 이전에, 훅 설치 요청 단계(S200) 대신, DLL 파일을 다른 애플리케이션과 함께 로딩시키기 위한 다른 방식이 수행되는 단계가 수행될 수 있다.
여기서, 타깃 애플리케이션(10)의 출력 화면은 비디오 장치를 독점하는 독점 모드로 실행중인 전체 화면일 수도 있다.
이상에서 전술한 본 발명의 일 실시예에 따른 화면 출력 제어 방법을 영상 재생 관리부(110)인 영상 재생 애플리케이션에 의해 수행되는 과정과, 화면 출력 제어부(120)에 의해 수행되는 과정으로 나누고, 각 과정을 도 3과 도 4를 참조하여 각기 설명한다.
도 3은 본 발명의 일 실시예에 따른 화면 출력 제어 방법에서, 화면 출력 제어 장치(100)에 포함된 영상 재생 관리부(110)인 영상 재생 애플리케이션에 의해 수행되는 과정을 나타낸 흐름도이다.
도 3을 참조하면, 영상 재생 애플리케이션이 실행되면서, 특정 DLL(화면 출력 제어부(120))을 지정하여 컴퓨터 시스템(윈도우 OS와 같은 OS가 탑재됨)으로 훅 설치를 요청하거나, 특정 DLL을 지정하여 타깃 애플리케이션(10)에 직접 훅 설치를 요청(S300)한다.
이때, 컴퓨터 시스템 또는 타깃 애플리케이션(10)에 훅 설치를 요청하면, 컴퓨터 시스템에서 실행되는 모든 애플리케이션(이를 타깃 애플리케이션(10)이라 함)에 대해 화면 출력 제어부(120)를 로딩시키도록 한다. 이때 DLL(화면 출력 제어부(120))를 타깃 애플리케이션(10)과 함께 로딩시키는 과정을 "DLL 인젝션" 또는 "인젝션"이라고 한다. 여기서, DLL(화면 출력 제어부(120))를 타깃 애플리케이션(10)과 함께 로딩시키는"인젝션 방법"으로서는, 전술한 방식인 컴퓨터 시스템에 훅(이때의 훅을 "시스템 훅"이라고 함) 설치를 직접 요청하는 인젝션 방법과, 타깃 애플리케이션(10)의 메모리를 조작하여 해당 타깃 애플리케이션(10)에 훅 설치를 직접 요청하는 인젝션 방법 등이 있으며, 어떠한 인젝션 방법으로도 가능하다.
도 3을 참조하면, 영상 재생 애플리케이션은, 컴퓨터 시스템 또는 타깃 애플리케이션(10)으로 훅 설치 요청(S300)을 한 이후, 영상 재생 애플리케이션을 통해 재생할 영상 데이터에 대한 재생 요청을 의미하는 사용자 입력을 대기(S302)한다. 사용자 입력 대기(S302) 중 영상 데이터에 대한 재생 요청에 따라 해당 영상 데이터가 로딩(S304) 되면, 로딩 된 영상 데이터를 IPC 수단(130)을 생성한다. 이때, 영상 재생 애플리케이션은, 도 3을 참조하면, IPC 수단(130) 중 하나인 공유 메모리를 생성한다(S306). 이후, 영상 재생 애플리케이션은 해당 컴퓨터에 저장된 영상 데이터를 앞에서 생성한 공유 메모리에 저장한다(S308). 이렇게 공유 메모리에 영상 데이터를 저장시키면서 저장시키고 있는 영상 데이터가 해당 영상의 끝에 해당하는 영상 데이터인지를 판단하고(S308), 영상의 끝이 되어 공유 메모리에 저장시킬 영상 데이터가 없으면, 다시 사용자 입력을 대기한다(S302).
도 3을 참조하여 전술한 영상 재생 애플리케이션에 의해 수행되는 과정을 포함하는 화면 출력 제어 방법은, 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다.
영상 재생 애플리케이션에 의해 수행되는 과정을 포함하는 화면 출력 제어 방법은, DLL 파일을 지정하여 훅 설치를 요청하는 훅 설치 요청 기능과, 훅 설치의 요청에 따라 DLL 파일이 타깃 애플리케이션(10)과 함께 로딩 된 이후, 영상 데이터에 대한 재생 요청을 전달받으면, IPC 수단(130)을 생성하는 IPC 수단 생성 기능 과, IPC 수단(130)을 통해, 타깃 애플리케이션(10)의 출력 화면에 영상 데이터가 표시된 재생 화면을 추가하는 화면 출력 제어부(120)(DLL)로 영상 데이터를 전달하는 영상 데이터 전달 기능을 구현한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
그리고, 본 발명을 구현하기 위한 기능적인(Functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
IPC 수단으로서, 파일 매핑 방식의 공유 메모리를 이용하는 경우, 전술한 영상 데이터 전달 기능에서는, 영상 재생 애플리케이션이 생성한 공유 메모리에 해당 영상 데이터를 저장하고, 화면 출력 제어부(120)(DLL)가 공유 메모리에 저장된 영상 데이터를 읽어 가게 된다. 이를 통해, 영상 데이터의 전달 기능이 수행될 수 있다.
도 4는 본 발명의 일 실시예에 따른 화면 출력 제어 방법에서, 화면 출력 제어 장치(100)에 포함된 화면 출력 제어부(120)에 의해 수행되는 과정을 나타낸 흐름도이다.
도 4를 참조하면, 영상 재생 애플리케이션에 의한 훅 설치 요청에 따라, 타 깃 애플리케이션(10)에 삽입된 DLL 파일이 타깃 애플리케이션(10)과 함께 로딩 된 이후, DLL 파일에 의해 동작되는 화면 출력 제어부(120)는, 도 4에서의 과정들을 수행한다.
타깃 애플리케이션(10)에 삽입된 DLL 파일이 타깃 애플리케이션(10)과 함께 로딩 된 시점에, DLL 파일에 의해 동작되는 화면 출력 제어부(120)는 타깃 애플리케이션(10)에서 사용하고 있는 DLL 파일을 조사하여 타깃 애플리케이션(10)의 그래픽 API 사용 여부를 검사한다(S400).
이에 따라, 타깃 애플리케이션(10) 그래픽 API를 사용하는 것으로 판단되면, 그래픽 API의 코드를 변경한다(S406). 여기서, 그래픽 API의 코드를 변경하는 것을 "API 후킹(Hooking)"이라고 하고, 이는 그래픽 API의 기존 코드에 따른 동작이 원하는 동작이 되게 끔 조작하는 것이다. 또한, 그래픽 API의 코드를 변경(S406)하는 것 이외에, UI 프레임워크에서 타깃 애플리케이션(10)의 이벤트 처리를 위해서, 이벤트 처리와 관련된 이벤트 API의 코드를 변경하는 API 후킹을 수행한다(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 후킹을 수행하는 것이다.
전술한 과정(S400, S406 및 S408)들을 통해, 타깃 애플리케이션(10)에 삽입된 DLL 파일이 타깃 애플리케이션(10)과 함께 로딩되는 것이 완료된다.
이후, 타깃 애플리케이션(10)이 출력 화면에 새로운 장면을 그리는지를 판단한다(S410). 타깃 애플리케이션(10)이 출력 화면에 새로운 장면을 그리는 것으로 판단되면, 그래픽 API의 API 후킹의 결과에 따라, 화면에 그려야 할 시점에, 화면 출력 제어부(120)의 코드가 실행되고, UI 프레임워크가 초기화되었는지를 검사한다(S412).
검사 결과, UI 프레임워크가 초기화되지 않았다면, UI 프레임워크를 초기화한다(S414). 즉, 윈도우를 표현하기 위한 위치 정보 및 계층 구조와, 화면 출력을 위한 폰트 및 이미지 데이터를 로딩하고, 영상 재생 애플리케이션과의 동작을 동기화하기 위해 IPC 수단(130)을 초기화한다.
검사 결과, UI 프레임워크가 초기화되어 있으면, UI 프레임워크의 내용을 화면에 출력하고, 현재 상태가 영상 데이터를 재생하기 위한 재생 상태인지를 판단한다(S412). 재생 상태인지에 대한 판단 결과, 재생 상태인 경우, 영상 재생 애플리케이션에서 생성한 공유 메모리가 있는지를 확인한다(S418). 공유 메모리 생성 여부에 대한 확인 결과, 공유 메모리가 생성되어 있으면, 공유 메모리 저장된 영상 데이터를 읽어와서, 읽어온 영상 데이터를 타깃 애플리케이션(10)의 데이터와 조합하여 화면에 출력하도록 설정한다(S420). 이때 출력되는 화면은, 도 5를 참조하면, 영상 데이터의 재생 화면(510)이 타깃 애플리케이션(10)의 출력 화면(520)의 특정 위치에 특정 크기로 추가된다. 여기서 영상 데이터의 재생 화면(510)의 크기 및 위치는 사용자 설정 또는 디폴트 설정에 따라 정해질 수 있다.
재생 상태인지에 대한 판단 결과 재생 상태가 아닌 멈춤 상태이거나, 공유 메모리 생성 여부에 대한 확인 결과 공유 메모리가 생성되어 있지 않은 경우에는, 로고(Logo) 화면 데이터를 타깃 애플리케이션(10)의 데이터와 조합하여 화면에 출력하도록 설정할 수 있다(S422). 이때 출력되는 화면은, 도 5와 유사하게, 로고 화면이 타깃 애플리케이션(10)의 출력 화면(520)의 특정 위치에 특정 크기로 추가될 수 있다. 여기서 로고 화면의 크기 및 위치는 사용자 설정 또는 디폴트 설정에 따라 정해질 수 있다.
한편, 이벤트 API 코드를 변경하는 API 후킹(S408)의 결과에 따라, 타깃 애플리케이션(10)에서 이벤트를 처리해야할 시점에, 화면 출력 제어부(120)의 코드가 실행된다. 이벤트가 키나 마우스 관련 입력이면, UI 프레임워크로 이벤트를 전달하여 처리 결과를 확인하고, 확인 결과가 참이면 타깃 애플리케이션(10)에 이벤트를 알리지 않고, 확인 결과가 거짓이면 타깃 애플리케이션(10)에 이벤트를 알려준다.
한편, 사용자 요청이나 영상 데이터의 재생이 완료되어, 화면 출력 제어부(120)가 언로드(Unload) 되는 시점에, API 후킹의 수행에 따라 변경된 코드 부분은 모두 삭제하여, 원래의 코드(그래픽 API 코드, 이벤트 API 코드 등)로 돌려놓는다. 또한, 화면 출력 제어를 위해 영상 재생 애플리케이션에 의해 생성된 공유 메모리의 사용을 종료한다.
도 4를 참조하여 전술한 화면 출력 제어부(120)에 의해 수행되는 과정을 포 함하는 화면 출력 제어 방법은, 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다.
화면 출력 제어부(120)에 의해 수행되는 과정을 포함하는 화면 출력 제어 방법은, DLL 파일이 지정된 훅 설치 요청에 따라 타깃 애플리케이션(10)에 삽입된 DLL 파일이 타깃 애플리케이션(10)과 함께 로딩 된 이후, 타깃 애플리케이션(10)의 그래픽 API 사용 여부를 감지하는 그래픽 API 사용 여부 감지 기능과, 타깃 애플리케이션(10)이 그래픽 API를 사용하는 것으로 감지되면, API 훅을 설치하는 API 훅 설치 기능과, API 훅의 설치 이후, 영상 데이터에 대한 재생 요청이 입력되면 재생 요청을 영상 재생 애플리케이션으로 전달하여 IPC 수단을 통해 영상 데이터를 전달받는 영상 데이터 수신 기능과, 전달받은 영상 데이터에 대한 재생 화면을 타깃 애플리케이션(10)의 출력 화면에 추가하는 화면 출력 제어 기능을 구현한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
그리고, 본 발명을 구현하기 위한 기능적인(Functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명의 다른 실시예에 따른 화면 출력 제어 방법은, 영상 재생 애플리케 이션의 훅 설치 요청 또는 또 다른 방식에 의해, 타깃 애플리케이션(10)이 그래픽 API를 사용하는 것으로 감지되면 API 훅을 설치하는 API 훅 설치 단계와, API 훅 설치에 따라 인식된 화면 출력 시점에 영상 데이터를 전달받고 전달받은 영상 데이터의 재생 화면을 타깃 애플리케이션(10)의 출력 화면에 추가하는 화면 출력 제어 단계를 포함한다. 여기서, 타깃 애플리케이션(10)의 출력 화면은, 컴퓨터 시스템에서의 비디오 장치를 독점하는 독점 모드(Exclusive Mode)로 동작하는 전체 화면일 수도 있다.
본 발명의 또 다른 실시예는, 영상 데이터의 재생 요청 또는 화면 출력 제어 등과 관련된 특정 정보를 입력받는 단계와, 입력된 특정 정보에 따라 특정 영상 데이터를 특정 애플리케이션(10)(예: 게임 애플리케이션 등)의 데이터와 조합하여 조합 데이터를 생성하는 단계와, 조합 데이터를 특정 애플리케이션(10)의 출력 화면에 출력하는 단계를 포함하는 것을 특징으로 하는 화면 출력 제어 방법을 제공한다. 여기서, 특정 애플리케이션(10)의 출력 화면은 독점 모드로 실행중인 전체 화면일 수도 있다.
이상에서 설명한 바와 같이 본 발명의 실시예에 의하면, 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션(10)의 출력 화면에 영화 등의 다른 애플리케이션(예: 영상 재생 애플리케이션)의 재생 화면을 추가하여 출력시킬 수 있는 화면 출력 제어 기술을 제공하는 효과가 있다.
특히, 본 발명의 실시예에 의하면, 컴퓨터 시스템에서 게임이나 그래픽 등에 관련된 특정 애플리케이션(10)의 출력 화면이 독점 모드로 실행중인 전체 화면인 경우에도, 영화 등의 다른 애플리케이션(예: 영상 재생 애플리케이션)의 화면을 특정 애플리케이션(10)의 출력 화면에 추가하여 출력시킬 수 있는 화면 출력 제어 기술을 제공하는 효과가 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들 은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 화면 출력 제어 장치에 대한 개략도,
도 2는 본 발명의 일 실시예에 따른 화면 출력 제어 방법에 대한 흐름도,
도 3은 본 발명의 일 실시예에 따른 화면 출력 제어 방법에서, 화면 출력 제어 장치에 포함된 영상 재생 관리부에 의해 수행되는 과정을 나타낸 흐름도,
도 4는 본 발명의 일 실시예에 따른 화면 출력 제어 방법에서, 화면 출력 제어 장치에 포함된 화면 출력 제어부에 의해 수행되는 과정을 나타낸 흐름도,
도 5는 본 발명의 일 실시예에 따른 화면 출력 제어 방법에 의해, 타깃 애플리케이션의 출력 화면에 영상 데이터에 대한 재생 화면이 추가된 것을 예시적으로 나타낸 도면이다.
< 도면의 주요 부분에 대한 부호의 설명 >
10: 타깃 애플리케이션
100: 화면 출력 제어 장치
110: 영상 재생 관리부
120: 화면 출력 제어부
130: 프로세스 간 통신 수단
510: 영상 재생 애플리케이션의 재생 화면
520: 타깃 애플리케이션의 출력 화면

Claims (16)

  1. 영상 데이터에 대한 재생 요청을 전달받으면 프로세스 간 통신 수단을 생성하여 상기 프로세스 간 통신 수단을 통해 상기 영상 데이터를 전달하는 영상 재생 관리부; 및
    동적 링크 라이브러리 파일이 타깃 애플리케이션과 함께 로딩 된 이후, 상기 타깃 애플리케이션이 그래픽 API(Application Programming Interface)를 사용하는 것으로 감지되면 API 훅을 설치하고, 상기 API 훅의 설치 이후, 상기 영상 데이터에 대한 상기 재생 요청이 입력되면 상기 재생 요청을 상기 영상 재생 관리부로 전달하여 상기 프로세스 간 통신 수단을 통해 상기 영상 데이터를 전달받고, 상기 전달받은 영상 데이터에 대한 재생 화면을 상기 타깃 애플리케이션의 출력 화면에 추가하는 화면 출력 제어부
    를 포함하는 것을 특징으로 하는 화면 출력 제어 장치.
  2. 제 1항에 있어서,
    상기 영상 재생 관리부는,
    상기 타깃 애플리케이션과의 프로세스 간 데이터 공유 및 동작 공유를 위해, 메시지 방식, 클립보드 방식, 데이터 복사 방식, 동적 데이터 교환 방식, 파일 맵핑 방식, 메일 슬롯 방식, 파이프 방식, 소켓 방식, 원격 절차 호출 방식 및 컴포넌트 오브젝트 모델 방식 중 하나의 방식으로 상기 프로세스 간 통신 수단을 생성 하는 것을 특징으로 하는 화면 출력 제어 장치.
  3. 제 2항에 있어서,
    상기 영상 재생 관리부는 상기 파일 맵핑 방식에 따라 상기 프로세스 간 통신 수단으로서 공유 메모리를 생성하여 상기 공유 메모리에 상기 영상 데이터를 저장하고, 상기 화면 출력 제어부는 상기 공유 메모리에 저장된 상기 영상 데이터를 읽어들임으로써,
    상기 영상 데이터는 상기 영상 재생 관리부에서 상기 화면 출력 제어부로 전달되는 것을 특징으로 하는 화면 출력 제어 장치.
  4. 제 1항에 있어서,
    상기 동적 링크 라이브러리 파일은,
    상기 영상 재생 관리부의 훅 설치에 대한 요청에 따라, 상기 타깃 애플리케이션의 입력 이벤트 발생이나 상기 타깃 애플리케이션의 윈도우 활성화시, 상기 타깃 애플리케이션에 삽입되어 상기 타깃 애플리케이션과 함께 로딩 되는 것을 특징으로 하는 화면 출력 제어 장치.
  5. 제 1항에 있어서,
    상기 화면 출력 제어부는,
    상기 타깃 애플리케이션이 상기 그래픽 API를 사용하는 것으로 감지되면, 상 기 API 훅의 설치에 따라 상기 그래픽 API의 코드를 변경하는 API 후킹을 수행함으로써,
    화면 출력 시점을 인식하고, 상기 인식된 화면 출력 시점에 상기 변경된 코드가 실행되는 것을 특징으로 하는 화면 출력 제어 장치.
  6. 제 1항에 있어서,
    상기 화면 출력 제어부는,
    상기 타깃 애플리케이션이 상기 그래픽 API를 사용하지 않는 것으로 감지되면, 동적 링크 라이브러리 파일을 로딩시키는 API에 대한 API 후킹을 수행한 이후, 상기 API 훅을 설치하는 것을 특징으로 하는 화면 출력 제어 장치.
  7. 제 1항에 있어서,
    상기 화면 출력 제어부는,
    상기 API 훅을 설치한 이후, 상기 타깃 애플리케이션이 상기 출력 화면에 새로운 장면을 디스플레이시키는 경우,
    자체 사용자 인터페이스 프레임워크의 초기화 여부를 검사한 이후,
    초기화된 상기 자체 사용자 인터페이스 프레임워크의 내용을 상기 재생 화면에 출력하며, 상기 영상 데이터에 대한 상기 재생 요청이 입력되어 현재 상태가 재생 상태인 경우, 상기 재생 요청을 상기 프로세스 간 통신 수단을 통해 상기 영상 재생 관리부로 전달하여 상기 프로세스 간 통신 수단을 통해 상기 영상 데이터를 전달받는 것을 특징으로 하는 화면 출력 제어 장치.
  8. 제 7항에 있어서,
    상기 화면 출력 제어부는,
    상기 자체 사용자 인터페이스 프레임워크가 초기화되지 않은 경우,
    상기 재생 화면을 위한 위치 정보, 계층 구조, 폰트 데이터 및 이미지 데이터를 로딩키고 상기 영상 재생 관리부과의 동작 동기화를 위해 상기 프로세스 간 통신 수단을 초기화함으로써, 상기 자체 사용자 인터페이스 프레임워크를 초기화하는 것을 특징으로 하는 화면 출력 제어 장치.
  9. 제 1항에 있어서,
    상기 화면 출력 제어부는,
    상기 전달받은 영상 데이터를 상기 타깃 애플리케이션의 데이터와 조합하여 출력함으로써, 상기 전달받은 영상 데이터에 대한 상기 재생 화면을 상기 타깃 애플리케이션의 상기 출력 화면에 추가하는 것을 특징으로 하는 화면 출력 제어 장치.
  10. 제 1항에 있어서,
    상기 화면 출력 제어부는,
    상기 타깃 애플리케이션이 상기 그래픽 API를 사용하는 것으로 감지되면, 상 기 API 훅의 설치에 따라 이벤트 관련 API의 코드를 변경하는 API 후킹을 추가로 수행함으로써,
    이벤트 전달 시점을 인식하고, 상기 인식된 이벤트 전달 시점에 상기 변경된 코드가 실행되는 것을 특징으로 하는 화면 출력 제어 장치.
  11. 제 10항에 있어서,
    상기 화면 출력 제어부는,
    키 또는 마우스 관련 입력에 대하여 자체 사용자 인터페이스 프레임워크로 입력 이벤트를 전달하여 처리 결과를 확인하고, 확인 결과에 따라 상기 타깃 애플리케이션으로 상기 입력 이벤트를 알리는 것을 특징으로 하는 화면 출력 제어 장치.
  12. 제 1항에 있어서,
    상기 타깃 애플리케이션의 상기 출력 화면은,
    비디오 장치를 독점하는 독점 모드(Exclusive Mode)로 동작하는 전체 화면인 것을 특징으로 하는 화면 출력 제어 장치.
  13. 화면 출력 제어 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서,
    동적 링크 라이브러리 파일이 타깃 애플리케이션과 함께 로딩 된 이후, 상기 동적 링크 라이브러리 파일을 통해 영상 데이터에 대한 재생 요청을 전달받으면, 프로세스 간 통신 수단을 생성하는 프로세서 간 통신 수단 생성 기능; 및
    상기 타깃 애플리케이션의 출력 화면에 상기 영상 데이터가 표시된 재생 화면을 추가하기 위해, 상기 영상 데이터를 상기 프로세스 간 통신 수단을 통해 화면 출력 제어 관련 프로세서로 전달하는 영상 데이터 전달 기능
    을 구현하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  14. 화면 출력 제어 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서,
    동적 링크 라이브러리 파일이 타깃 애플리케이션과 함께 로딩 된 이후, 상기 타깃 애플리케이션의 그래픽 API(Application Programming Interface) 사용 여부를 감지하는 그래픽 API 사용 여부 감지 기능;
    상기 타깃 애플리케이션이 상기 그래픽 API를 사용하는 것으로 감지되면, API 훅을 설치하는 API 훅 설치 기능;
    상기 API 훅의 설치 이후, 영상 데이터에 대한 재생 요청이 입력되면, 프로세스 간 통신 수단을 통해 영상 재생 관련 프로세서로부터 상기 영상 데이터를 전달받는 영상 데이터 수신 기능; 및
    상기 전달받은 영상 데이터에 대한 재생 화면을 상기 타깃 애플리케이션의 출력 화면에 추가하는 화면 출력 제어 기능
    을 구현하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  15. 타깃 애플리케이션이 그래픽 API를 사용하는 것으로 감지되면 API 훅을 설치하는 API 훅 설치 단계; 및
    상기 API 훅의 설치에 따라 인식된 화면 출력 시점에 영상 재생 애플리케이션으로부터 영상 데이터를 전달받고, 상기 전달된 영상 데이터의 재생 화면을 상기 타깃 애플리케이션의 출력 화면에 추가하는 화면 출력 제어 단계
    를 포함하는 것을 특징으로 하는 화면 출력 제어 방법.
  16. 특정 정보를 입력받는 단계;
    상기 입력된 특정 정보에 따라 특정 영상 데이터를 특정 애플리케이션의 데이터와 조합하여 조합 데이터를 생성하는 단계; 및
    상기 조합 데이터를 상기 특정 애플리케이션의 출력 화면에 출력하는 단계
    를 포함하는 것을 특징으로 하는 화면 출력 제어 방법.
KR1020090085802A 2009-09-11 2009-09-11 화면 출력 제어 방법, 장치 및 기록매체 KR101088129B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090085802A KR101088129B1 (ko) 2009-09-11 2009-09-11 화면 출력 제어 방법, 장치 및 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090085802A KR101088129B1 (ko) 2009-09-11 2009-09-11 화면 출력 제어 방법, 장치 및 기록매체

Publications (2)

Publication Number Publication Date
KR20110027950A true KR20110027950A (ko) 2011-03-17
KR101088129B1 KR101088129B1 (ko) 2011-12-02

Family

ID=43934477

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090085802A KR101088129B1 (ko) 2009-09-11 2009-09-11 화면 출력 제어 방법, 장치 및 기록매체

Country Status (1)

Country Link
KR (1) KR101088129B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101380953B1 (ko) * 2011-06-21 2014-04-22 주식회사 쉘위애드 스마트폰 광고 노출 관리 방법 및 스마트폰에서 실행 가능한 프로그램 저장매체
CN105282573A (zh) * 2014-07-24 2016-01-27 腾讯科技(北京)有限公司 一种嵌入式信息处理方法、客户端及服务器
KR101716862B1 (ko) * 2016-10-04 2017-03-15 (주)볼트마이크로 영상데이터 관리 장치 및 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101380953B1 (ko) * 2011-06-21 2014-04-22 주식회사 쉘위애드 스마트폰 광고 노출 관리 방법 및 스마트폰에서 실행 가능한 프로그램 저장매체
CN105282573A (zh) * 2014-07-24 2016-01-27 腾讯科技(北京)有限公司 一种嵌入式信息处理方法、客户端及服务器
CN105282573B (zh) * 2014-07-24 2020-04-07 腾讯科技(北京)有限公司 一种嵌入式信息处理方法、客户端及服务器、存储介质
KR101716862B1 (ko) * 2016-10-04 2017-03-15 (주)볼트마이크로 영상데이터 관리 장치 및 방법
WO2018066750A1 (ko) * 2016-10-04 2018-04-12 (주)볼트마이크로 영상데이터 관리 장치 및 방법
US10530980B2 (en) 2016-10-04 2020-01-07 Vault Micro, Inc. Apparatus for managing video data and method the same

Also Published As

Publication number Publication date
KR101088129B1 (ko) 2011-12-02

Similar Documents

Publication Publication Date Title
US20210216337A1 (en) Multi-process model for cross-platform applications
CN104598257B (zh) 远程应用程序运行的方法和装置
US8675000B2 (en) Command buffers for web-based graphics rendering
US6519594B1 (en) Computer-implemented sharing of java classes for increased memory efficiency and communication method
US8601449B2 (en) Cross-platform application framework
JP6397113B2 (ja) リモーティングセッションを通じた非サポートファイル形式の開封
AU2022211850B2 (en) Application function implementation method and electronic device
US20140143305A1 (en) Apparatus and system for providing software service using software virtualization and method thereof
US8418169B2 (en) Management method for managing software module and information processor
JP7346606B2 (ja) 画面共有処理方法、装置、機器及び記憶媒体
JP2010526390A (ja) メッシュ−分散デバイス集合にわたるデーター管理
EP3311565B1 (en) Low latency application streaming using temporal frame transformation
JP2009122947A (ja) 画面共有システム及びデータ転送方法
US9467495B2 (en) Transferring assets via a server-based clipboard
US10230855B1 (en) Asynchronous usage of redirected scanners with a single driver
KR101088129B1 (ko) 화면 출력 제어 방법, 장치 및 기록매체
CN104903863A (zh) 用于虚拟环境的控制反转组件服务模型
CN106027631B (zh) 一种数据传输方法及装置
WO2023173516A1 (zh) 数据交互的方法、装置、存储介质及电子设备
US20070025197A1 (en) Information-processing apparatus, recording medium and information-processing method
JP6772235B2 (ja) 設備リストを同期する方法、装置、設備、コンピュータ記憶媒体及びプログラム
US11431727B2 (en) Security of code between code generator and compiler
US20100088732A1 (en) Method and apparatus for using service based on objects for implementing different functions of service
JP2021522721A (ja) 画面キャプチャ方法、端末および記憶媒体
WO2020187008A1 (zh) 服务调用控制方法、服务调用方法、装置及终端

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