KR101667287B1 - 응용 프로그램의 사용 빈도를 획득하기 위한 방법과 장치 - Google Patents

응용 프로그램의 사용 빈도를 획득하기 위한 방법과 장치 Download PDF

Info

Publication number
KR101667287B1
KR101667287B1 KR1020167022515A KR20167022515A KR101667287B1 KR 101667287 B1 KR101667287 B1 KR 101667287B1 KR 1020167022515 A KR1020167022515 A KR 1020167022515A KR 20167022515 A KR20167022515 A KR 20167022515A KR 101667287 B1 KR101667287 B1 KR 101667287B1
Authority
KR
South Korea
Prior art keywords
application program
path
name
designated
installation path
Prior art date
Application number
KR1020167022515A
Other languages
English (en)
Other versions
KR20160103549A (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 텐센트 테크놀로지(센젠) 컴퍼니 리미티드
Publication of KR20160103549A publication Critical patent/KR20160103549A/ko
Application granted granted Critical
Publication of KR101667287B1 publication Critical patent/KR101667287B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Complex Calculations (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)

Abstract

본 발명은 지정된 응용 프로그램의 사용 빈도를 얻기 위한 방법 또는 장치에 관한 것이다. 상기 방법은, 시스템 레지스터링 정보 리스트에 의하여 상기 지정된 응용 프로그램의 설치 경로를 획득하는 단계; 상기 지정된 응용 프로그램의 실행을 모니터링하도록 응용프로그램 인터페이스를 호출하는 단계; 상기 지정된 응용 프로그램의 마지막 기동 시간과 설치 경로를 기록하는 단계; 상기 설치 경로를 인덱스로 하는 것에 의하여 상기 지정된 응용 프로그램의 마지막 기동 시간을 획득하는 단계; 상기 마지막 기동 시간과 현재 시간을 비교하여 상기 지정된 응용 프로그램의 사용 빈도를 확정하도록 하는 단계를 포함한다. 본 발명은 운영 시스템의 프로세스 기동 함수를 인터셉트(intercept)할 수 있어 쉽고 효과적으로 상기 지정된 응용 프로그램의 사용 빈도를 얻도록 하고, 컴퓨터에 설치된 응용 프로그램을 쉽게 관리할 수 있으며 컴퓨터의 운영 시스템을 최적화하기 위한 기초를 제공한다.

Description

응용 프로그램의 사용 빈도를 획득하기 위한 방법과 장치{METHOD AND DEVICE FOR OBTAINING USING-FREQUENCY OF APPLICATION PROGRAM}
본원 발명은 2011년 9월 27일에 출원한 것으로서 출원번호가 2011102965138인 중국 특허 출원의 우선권이다.
본 발명은 컴퓨터 기술에 관한 것으로, 더 구체적으로 응용 프로그램의 사용 빈도를 획득하기 위한 방법과 장치에 관한 것이다.
컴퓨터 기술의 발전과 더불어, 사용자는 사용자의 각종 사용 요구를 만족시키기 위하여 컴퓨터의 운영 시스템에 여러가지 응용 프로그램을 설치할 수 있다. 여러가지 응용 프로그램에 있어서, 중요한 것은 여러가지 응용 프로그램의 사용 빈도를 획득하여 이를테면 여러가지 응용 프로그램에 따른 사용 빈도로 컴퓨터의 운영 시스템을 최적화하는 것이다.
현재, Windows의 운영 시스템 자체에 구비된 설치/삭제 리스트는 응용 프로그램의 사용 빈도를 판단할 수 있고 또한 이 판단은 간단한 알고리즘에 의해 진행된다. 따라서, 그 결과는 결코 정확하지 않고 또 응용 프로그램의 실제 사용빈도를 얻기 어렵기 때문에 진일보로 사용자에게 시스템 최적화 방안을 제공할 수 없다.
응용 프로그램의 실제 사용빈도를 얻어 사용자에게 시스템 최적화 방안을 제공하는 것을 목적으로 한다.
본 발명의 실시예는 응용 프로그램의 사용 빈도를 획득하기 위한 방법 또는 장치를 제공하였는데 상기 방법 또는 장치는 컴퓨터의 운영 시스템에 설치된 응용 프로그램의 사용 빈도를 정확히 계산하여, 사용한 응용 프로그램의 정황을 사용자에게 실제로 보고함으로써 사용자에게 시스템 최적화 방안을 제공할 수 있다.
본 발명의 실시예가 제공한 지정된 응용 프로그램의 사용 빈도를 획득하기 위한 방법은,
시스템 레지스터링 정보 리스트에 의하여 상기 지정된 응용 프로그램의 설치 경로를 획득하는 단계;
상기 지정된 응용 프로그램의 실행을 모니터링하도록, 응용프로그램 인터페이스(API)를 호출하는 단계;
상기 지정된 응용 프로그램의 마지막 기동 시간과 설치 경로를 기록하는 단계;
상기 설치 경로를 인덱스로 하는 것에 의하여 상기 지정된 응용 프로그램의 마지막 기동 시간을 획득하는 단계;
상기 마지막 기동 시간과 현재 시간을 비교하여 상기 지정된 응용 프로그램의 사용 빈도를 확정하는 단계를 포함한다.
상응하게, 본 발명의 다른 실시예가 제공한 지정된 응용 프로그램의 사용 빈도를 얻기 위한 장치는,
시스템 레지스터링 정보 리스트에 의하여 상기 지정된 응용 프로그램의 설치 경로를 획득하기 위한 경로 획득 모듈;
상기 지정된 응용 프로그램의 실행을 모니터링하도록 응용프로그램 인터페이스(API)를 호출하기 위한 프로그램 모니터링 모듈;
상기 지정된 응용 프로그램의 마지막 기동 시간과 설치 경로를 기록하기 위한 정보 기록 모듈;
상기 설치 경로를 인덱스로 하는 것에 의하여 상기 정보 기록 모듈로부터 상기 지정된 응용 프로그램의 마지막 기동 시간을 획득하기 위한 시간 획득 모듈;
상기 마지막 기동 시간과 현재 시간을 비교하여 상기 지정된 응용 프로그램의 사용 빈도를 확정하기 위한 빈도 계산 모듈을 포함한다.
본 발명은 운영 시스템의 프로세스 기동 함수를 인터셉트할 수 있어 쉽고 효과적으로 상기 지정된 응용 프로그램의 사용 빈도를 얻도록 한다. 따라서, 본 발명은 컴퓨터에 설치된 응용 프로그램을 쉽게 관리할 수 있으며 컴퓨터의 운영 시스템을 최적화 하기 위한 기초를 제공한다.
이하, 본 발명의 실시예가 제공한 기술방안을 보다 명확히 해석하기 위하여, 실시예에 대한 설명에 필요한 도면을 간략하게 소개한다. 이하에서 설명하는 도면은 본 발명의 모든 실시예이며, 본 기술분야의 통상의 지식을 가진 자는 진보성 창출에 힘쓰지 않는 전제하에 이러한 도면에 의하여 진일보로 다른 도면을 얻을 수 있는 것은 물론이다.
도 1은 본 발명의 제1 예시적 실시예에 따른 지정된 응용 프로그램의 사용 빈도를 얻기 위한 방법의 흐름도이다.
도 2는 상기 방법 중의 지정된 응용 프로그램의 설치 경로를 획득하기 위한 설명도인 바, 그 중 상기 방법은 본 발명의 제1 예시적 실시예에 의하여 지정된 응용 프로그램의 사용 빈도를 획득한다.
도 3은 상기 방법 중의 지정된 응용 프로그램의 설치 경로를 획득하기 위한 다른 설명도인 바, 그 중 상기 방법은 본 발명의 제1 예시적 실시예에 의하여 지정된 응용 프로그램의 사용 빈도를 획득한다.
도 4는 상기 방법 중의 지정된 응용 프로그램의 설치 경로를 획득하기 위한 또 다른 설명도인 바, 그 중 상기 방법은 본 발명의 제1 예시적 실시예에 의하여 지정된 응용 프로그램의 사용 빈도를 획득한다.
도 5는 본 발명의 제2 예시적 실시예에 따른 지정된 응용 프로그램의 사용 빈도를 얻기 위한 방법의 흐름도이다.
도 6은 본 발명의 제3 예시적 실시예에 따른 지정된 응용 프로그램의 사용 빈도를 얻기 위한 방법의 흐름도이다.
도 7은 본 발명의 제1 예시적 실시예에 따른 지정된 응용 프로그램의 사용 빈도를 얻기 위한 장치의 설명도이다.
도 8는 본 발명의 제2 예시적 실시예에 따른 지정된 응용 프로그램의 사용 빈도를 얻기 위한 장치의 설명도이다.
도 9은 본 발명의 제3 예시적 실시예에 따른 지정된 응용 프로그램의 사용 빈도를 얻기 위한 장치의 설명도이다.
도 10은 본 발명의 제4 예시적 실시예에 따른 지정된 응용 프로그램의 사용 빈도를 얻기 위한 장치의 설명도이다.
아래의 실시예를 참조하여, 본 발명을 더 구체적으로 설명한다. 이 발명의 바람직한 실시예에 대한 설명은 단지 예시와 설명을 위한 것 임을 주의해야 한다. 상세하고 빠짐없이 설명하거나 공개된 정확한 형식을 한정하려는 것이 아니다.
본 발명은 지정된 응용 프로그램의 사용 빈도를 획득하기 위한 기술을 제공하는데 이 기술은 컴퓨터의 운영 시스템에 설치된 지정된 응용 프로그램의 사용 빈도를 정확히 계산하여, 사용한 응용 프로그램의 정황을 사용자에게 실제로 보고함으로써 사용자에게 시스템 최적화 방안을 제공하도록 한다.
이하, 본 발명의 예시적 실시예를 명확히 설명하기 위하여 먼저 본 발명의 예시적 실시예에서 언급한 기술용어를 설명한다.
API(Application Programming Interface,응용프로그램 인터페이스): 사전에 정의한 함수이며 응용 프로그램과 개발 인원에게 소프트웨어나 하드웨어에 기반한 일련의 루틴(routine)을 방문하는 능력을 제공하기에 소스 코드에 접근하거나 내부 실행 매커니즘의 세부사항을 이해할 필요가 없다.
프로세스: 운영 시스템의 기초이고, 처리중인 응용 프로그램이며, 컴퓨터 내에서 실행하는 프로그램의 실례이며, 중앙처리장치(CPU)에 분할되고 중앙처리장치에 의해 처리될 수 있는 실체이며, 단일 순서로 디스플레이되고 현재의 상태와 관련 그룹시스템 자원으로 설명을 하는 액션 유닛이다.
Hook: DOS하의 중단을 대체하기 위하여 Windows에 제공된 시스템 매커니즘이다. 특정된 시스템 이벤트에 대해 hook를 진행한 후 이미 hook 이벤트가 발생하면 이 이벤트에 대하여 hook를 진행한 프로그램은 시스템 통지를 받기 때문에 응용 프로그램은 즉시 이 이벤트에 대해 응답할 수 있다.
응용 프로그램: "응용 소프트웨어"라고도 하는데 어떤 특정 용도를 위하여 개발된 소프트웨어이다. 응용 프로그램은 사진 브라우저와 같은 특정된 프로그램이거나 Office소프트웨어와 같은 일련의 프로그램의 집합일 수 있는데 상기 프로그램은 기능에서 밀접하게 연관되고 서로 상호 작용한다. 또는, 응용 프로그램은 데이터 베이스 관리 시스템과 같이 수많은 독립적인 프로그램으로 이루어진 대형 소프트웨어 시스템일 수도 있다.
도 1은 본 발명의 제1 예시적 실시예에 따른 지정된 응용 프로그램의 사용 빈도를 얻기 위한 방법의 흐름도이다.
본 발명의 예시적 실시예에서 제공한 지정된 응용 프로그램의 사용 빈도를 얻기 위한 방법은,
100 단계: 시스템 레지스터링 정보 리스트에 의하여 상기 지정된 응용 프로그램의 설치 경로를 획득한다.
101 단계: 상기 지정된 응용 프로그램의 실행을 모니터링하도록, 응용프로그램 인터페이스(API)를 호출한다.
102 단계: 상기 지정된 응용 프로그램의 마지막 기동 시간과 설치 경로를 기록한다.
103 단계: 상기 설치 경로를 인덱스로 하는 것에 의하여 상기 지정된 응용 프로그램의 마지막 기동 시간과 현재 시간을 획득한다.
104 단계: 상기 마지막 기동 시간과 현재 시간을 비교하여 상기 지정된 응용 프로그램의 사용 빈도를 확정한다.
본 발명의 예시적 실시예는 시스템 레지스터링 정보 리스트를 사용하여 지정된 응용 프로그램의 설치 경로를 정확히 획득하고, 상기 설치 경로에 의하여 상기 지정된 응용 프로그램의 기동 정황을 모니터링함으로써, 이를테면 기록된 마지막 기동시간에 의하여 상기 지정된 응용 프로그램의 사용 빈도를 판단한다. 본 발명의 예시적 실시예에서 제공한 지정된 응용 프로그램의 사용 빈도를 얻기 위한 방법은 실제적이고 효과적이며, 객관적이고 정확하기에 사용자는 컴퓨터의 운영 시스템에 설치된 응용 프로그램의 사용 정황을 명확히 알 수 있다. 뿐만 아니라 사용자는 획득한 응용 프로그램의 사용빈도에 의해 컴퓨터의 운영 시스템을 더 최적화 할 수 있다.
상기 시스템 레지스터링 정보 리스트에 의하여 상기 지정된 응용 프로그램의 설치 경로를 획득하는 단계는 하기의 모드로 수행될 수 있다.
제1모드: 상기 시스템 레지스터링 정보 리스트 중 키 할당값이 InstallLocation인 항에 의하여 상기 지정된 응용 프로그램의 설치 경로를 획득한다.
구체적으로, 프로그램을 호출하여 키 할당값이 InstallLocation인 항에서 지정된 응용 프로그램의 설치 경로를 획득하는 바, 여기서 키 할당값이 InstallLocation인 항은 시스템 레지스터링 정보 리스트의 SOFTWARE\\Microsoft\\Windows\\Current Version\\Uninstall 하에 위치한다.
예를 들면, 도 2는 시스템 레지스터링 정보 리스트의 SOFTWARE\\Microsoft\\Windows\\Current Version\\Uninstall 하에 위치한 응용 프로그램 "Autodesk Express Viewer" 모든 항을 나타내기 위한 설명도이다. 도 2에서, 키 할당값이 "InstallLocation"인 항에서 "C:\Program Files\Autodesk\Autodesk Express Viewer"인 설치 경로를 볼 수 있다.
제2모드: 상기 시스템 레지스터링 정보 리스트 중 키 할당값이 UnstallString인 항에 의하여 지정된 응용 프로그램의 설치 경로를 획득한다.
구체적으로, 일부 응용 프로그램은 시스템 레지스터링 정보 리스트 중 키 할당값이 "InstallLocation"인 항을 가지지 않는다. 따라서, 프로그램을 호출하기 위하여 제2모드를 실행함으로써 시스템 레지스터링 정보 리스트중 SOFTWARE\\Microsoft\\windows\\Current Version\\Uninstall 하의 키 할당값이 UnstallString인 항을 읽은 후, 응용 프로그램의 설치 경로를 획득하기 위하여 exe 파일명을 없앤다.
예를 들면, 도 3은 시스템 레지스터링 정보 리스트중 "SOFTWARE\\Microsoft\\Windows\\Current Version\\Uninstall"하의 지정된 응용 프로그램 "Adobe Flash Player Activex"의 모든 항을 나타내기 위한 설명도이다. 도 3에서, 키 할당값이 "InstallLocation"인 항은 존재하지 않는다. 따라서, 키 할당값이 "UnstallString"인 항을 찾으면 "C:\\WINDOWS\system32\Macromed\Flash\FlashUtil10w_ActiveX.exe-matntain activex"라고 나타낸다. 다음 exe 파일명을 삭제하면 "C:\WINDOWS\system32\Macromed\Flash\"인 설치 경로를 획득한다.
제3모드: 응용 프로그램의 단축 아이콘의 명칭과 상기 시스템 레지스터링 정보 리스트에 기록된 상기 지정된 응용 프로그램의 명칭을 퍼지 매칭하여, 응용 프로그램의 단축 아이콘의 명칭과 시스템 레지스터링 정보 리스트에 기록된 지정된 응용 프로그램의 명칭이 성공적으로 매칭되면 단축 아이콘의 지향 경로를 지정된 응용 프로그램의 설치 경로로서 획득한다.
구체적으로, 일부 응용 프로그램은 시스템 레지스터링 정보 리스트 중 키 할당값이 "UnstallLocation"인 항을 가지지 않을 뿐만 아니라 키 할당값이 "UnstallString"인 항도 가지지 않는다. 따라서, 본 발명은 더 응용 프로그램의 단축 아이콘을 열거(enumerate)할 수 있는데, 그 중 상기 단축 아이콘은 사용자의 바탕화면, 시작 메뉴 또는 시작 단축 아이콘 등에 위치할 수 있고, 이어서 응용 프로그램의 단축 아이콘의 명칭과 시스템 정보 리스트에서 지정된 응용 프로그램의 명칭에 대해 퍼지 매칭을 진행한다. 만약 성공적으로 매칭되면 본 발명의 단축 아이콘의 지향 경로를 지정된 응용 프로그램의 설치 경로로 간주한다.
예를 들면, 컴퓨터의 운영 시스템은 예컨대 "Tencent TM2009", "CHATM2010", "Windstorm Image Sound"등과 같이 설치된 응용 프로그램을 구비하는데, 이러한 응용 프로그램의 단축 아이콘은 각각 사용자의 바탕화면, 시작 메뉴 또는 시작 단축 아이콘 등에 위치한다. 예시적 실시예는 단축 아이콘을 열거한 후, 이러한 단축 아이콘의 명칭과 시스템 레지스터링 정보 리스트 중의 응용 프로그램의 명칭에 대해 매칭을 진행한다. 퍼지 매칭을 진행할 때, 단축 아이콘의 명칭 "CHATM2010"이고 이 단축 아이콘이 시스템 레지스터링 정보 리스트 중의 "CHATM trademark-querying software"와 성공적으로 매칭되면 상기 단축 아이콘의 지향 경로를 획득하며, 도 4에서 도시한 바와 같이, 상기 단축 아이콘의 지향 경로는 "Target(T)C:\Rabbit\chatm\exe\Quety_net.exe"이다. 이어서 상기 지향 경로를 응용 프로그램 "CHATM2010"의 설치 경로로 간주한다.
제4모드: 각각의 디스크의 각각의 프로젝트 폴더의 응용 프로그램의 명칭과 상기 시스템 레지스터링 정보 리스트에 기록된 상기 지정된 응용 프로그램의 명칭을 퍼지 매칭하여, 디스크의 프로젝트 폴더의 응용 프로그램의 명칭과 상기 시스템 레지스터링 정보 리스트에 기록된 상기 지정된 응용 프로그램의 명칭이 성공적으로 매칭되면 디스크의 상기 프로젝트 폴더의 응용 프로그램의 경로를 지정된 응용 프로그램의 설치 경로로 간주한다.
구체적으로, 일부 응용 프로그램에 있어서, 상기 모든 세개 모드는 그 설치 경로를 얻을 수 없다. 따라서 제4모드를 사용하여 각각의 디스크의 프로그램 파일(Program Files)의 항목 리스트 중의 각각의 폴더의 응용 프로그램을 열거하여 각각의 디스크의 프로그램 파일(Program Files)의 항목 리스트 중의 각각의 폴더의 응용 프로그램의 명칭과 시스템 레지스터링 정보 리스트 중의 명칭에 대해 매칭을 진행한다. 디스크의 프로그램 파일의 항목 리스트 중의 각각의 폴더의 응용 프로그램의 명칭과 시스템 레지스터링 정보 리스트 중의 명칭이 성공적으로 매칭되면 이 프로젝트의 응용 프로그램의 경로를 지정된 응용 프로그램의 설치 경로로 간주한다.
예를 들면, 명칭이 "Movie Maker"인 폴더는 C 드라이브의 프로그램 파일의 폴더에 저장된다. 명칭 "Movie Maker"와 시스템 레지스터링 정보 리스트 중의 지정된 응용 프로그램의 명칭이 성공적으로 매칭되면 응용 프로그램 "Movie Maker"의 경로 "C\Program Files\Movie Maker"를 지정된 응용 프로그램의 설치 경로로 간주한다.
시스템에 위치한 리스트 중의 소프트웨어에 있어서, 예컨대 Application Verifier, Flash Player는 exepath를 사용하여 매칭을 진행해야 하는데 이 방법은 상기의 방법과 비슷하기에 여기서는 더이상 설명하지 않는다.
주의할 것은, 예시적 실시예는 제1모드에서 제4모드까지 순서대로 설치 경로를 획득한다. 본 발명의 예시적 실시예는 위의 네개 모드를 사용하여 응용 프로그램의 설치 경로를 얻기 때문에 지정된 응용 프로그램의 사용 빈도를 분석하기 위한 지정된 응용 프로그램의 설치 경로를 최대한 정확하게 획득할 수 있다.
지정된 응용 프로그램의 설치 경로를 획득할 때 또는 획득한 후에, 본 발명의 예시적 실시예는 지정된 응용 프로그램의 실행을 모니터링하도록 응용프로그램 인터페이스를 호출한다.
도 5를 참조하면, 도 5는 본 발명의 제2 예시적 실시예에 따른 지정된 응용 프로그램의 사용 빈도를 얻기 위한 방법의 흐름도이다.
제2 예시적 실시예가 상세히 설명하는 지정된 응용 프로그램의 실행을 모니터링하도록 응용프로그램 인터페이스를 호출하는 단계는 하기와 같은 단계를 포함한다.
200 단계: 응용프로그램 인터페이스를 호출하여 실행중인 응용 프로그램의 명령 행 변수(command-line argument)를 획득한다.
구체적으로, 먼저 응용프로그램 인터페이스 Create Process의 모니터를 작동시킨다. Create Process가 호출되면, Create Process중의 명령 행 변수가 획득된다.
201 단계: 응용 프로그램의 명령 행 변수를 별도의 처리 스레드에 입력한다.
구체적으로, Create Process를 호출하는 성능에 영향을 주지 않기 위하여 명령 행 변수를 위의 201 단계 중의 별도의 처리 스레드에 입력한다.
202 단계: 각각 상기 각각의 명령 행 변수에 대응하는 응용 프로그램을 모니터링한다.
제2예시적 실시예는 여러가지 응용 프로그램을 모니터링하기 위한 방법을 제공하고 상기 모니터링 모드는 여러가지 응용 프로그램의 실행 정황을 정확하게 획득하여 여러가지 응용프로그램의 기동 시간을 획득하도록 한다.
도 6을 참조하면, 그 중 도 6은 본 발명의 제3 예시적 실시예에 따른 지정된 응용 프로그램의 사용 빈도를 얻기 위한 방법의 흐름도이다.
제3 예시적 실시예는 어떻게 응용 프로그램의 마지막 기동 시간 및 그 사용빈도를 획득하는가 하는 과정을 나타내는데 이에 대한 설명은 하기와 같다.
300단계: 상기 처리 스레드로부터 지정된 응용 프로그램의 마지막 기동 시간을 획득하여 기록한다.
구체적으로, 본 발명은 처리 스레드 에서 여러가지 응용 프로그램을 모니터링하여 임의의 하나의 지정된 응용 프로그램의 기동 시간을 획득한다. 예시적 실시예는 응용 프로그램의 마지막 기동 시간만 기록하면 된다. 그 기동 시간을 기록하기 위한 도구로는 노트패드 또는 SQlite이다. 주의할 것은, SQlite은 경량 데이터베이스이고 ACID 관련 데이터베이스 관리 시스템을 준수한다. SQlite는 내장형이고 아주 작은 자원만 차지하며 또한 Windows 또는 Linux또는 Unix 등과 같은 메인 운영 시스템을 지지할 수 있다.
301단계: 설치 경로에 대하여 표준화 처리를 진행한다.
구체적으로, 본 발명의 상기 모드에서 획득한 설치 경로는 형식상에서 다를 수 있다. 따라서 예시적 실시예는 설치 경로에 대하여 표준화 처리를 수행해야 함으로써 설치 경로들을 신속하게 찾고 비교를 진행할 수 있다. 설치 경로를 위한 표준화 처리는, 설치 경로의 문자부호를 소문자로 통일하는 단계; 상기 설치 경로의 명칭을 짧은 파일명, 긴 파일명과 환경 변수를 포함하는 명칭으로 통일하는 단계; 상용명(common-name) 규칙에 의하여 상기 설치 경로를 표준화하는 단계를 포함한다. 예를 들면, 설치 경로 "%system%"와 "C:\windows\system32"는 통일적으로 "ㅊc:\windows\system32"로 표준화해야 한다.
302단계: 표준화된 설치 경로를 기록한다. 구체적으로, 본 발명은 노트 패드 또는 SQlite와 같은 도구를 사용하여 여러가지 응용 프로그램의 마지막 기동 시간과 설치 경로를 기록하기 위한 응용 프로그램 정보 리스트를 구축하도록 하되, 이는 표 1과 같다.
응용 프로그램 설치 경로 마지막 기동 시간
Autodesk Express Viewer C:\Program Files\Autodesk\
Autodesk Express Viewer
2011년 9월 8일
15:00
Adobe Flash Player Activex C:\WINDOWS\system32\Macromed\Flash\FlashUtil10w_ActiveX.exe-matntain activex 2011년 6월 8일 15:00
CHATM2010 C:\Rabbit\chatm\exe\Quety_net.exe 2011년 3월 20일
18:00
Movie Maker C:\Program Files\Movie Maker 2011년 4월 26일
17:30
303 단계: 표준화된 설치 경로를 인덱스로 하는 것에 의하여 지정된 응용 프로그램의 마지막 기동 시간을 획득한다.
구체적으로, 본 발명은 상기 표의 표준화된 설치 경로를 인덱스로 하여 응용 프로그램의 마지막 기동 시간을 찾는다.
304 단계: 마지막 기동 시간과 현재 시간을 비교하여 지정된 응용 프로그램의 사용 빈도를 확정하도록 한다.
구체적으로, 지정된 응용 프로그램의 마지막 기동 시간을 획득할 때, 예시적 실시예는 마지막 기동 시간과 현재시간을 비교한다. 마지막 기동 시간과 현재시간 사이의 시간 간격이 3일 미만이면 이 응용 프로그램을 자주 사용하는 프로그램이라고 판정한다. 마지막 기동 시간과 현재시간 사이의 시간 간격이 7일 미만이고 3일을 초과하면, 이 프로그램을 가끔 사용하는 프로그램이라고 판정한다. 마지막 기동 시간과 현재시간 사이의 시간 간격이 30일 미만이고 7일을 초과하면, 이 프로그램을 좀처럼 사용하지 않는 프로그램이라고 판정한다. 만약 마지막 기동 시간과 현재시간 사이의 시간 간격이 30일을 초과하면 이 프로그램을 한번도 사용한 적이 없는 프로그램으로 판정한다.
주의할 것은, 특별히 처리할 일부 응용 프로그램에 있어서, 예컨대 입력방식의 소프트웨어, 플러그-인(plug-in) 소프트웨어 등은 exe 파일을 구비하지 않는다. 이러한 응용 프로그램에 있어서, 본 발명은 dll 파일의 사용 정황을 모니터링하도록 응용 프로그램 인터페이스 Create Process를 호출해야 하는데 이는 상기의 exe 파일에 대한 설명과 같기에 아래에서는 더 이상 설명하지 않는다.
본 발명에 따른 응용 프로그램의 사용 빈도를 획득하기 위한 방법은 시스템의 프로세스 기동 함수를 인터셉트할 수 있어, 쉽고 효과적으로 컴퓨터 운영 시스템 중의 응용 프로그램의 사용 빈도를 얻도록 한다. 따라서, 본 발명은 컴퓨터에 설치된 응용 프로그램을 쉽게 관리할 수 있으며 컴퓨터의 운영 시스템을 최적화하기 위한 기초를 제공한다.
도 7은 본 발명의 제1 예시적 실시예에 따른 지정된 응용 프로그램의 사용 빈도를 얻기 위한 장치의 설명도이다.
본 발명의 예시적 실시예에서 제공한 지정된 응용 프로그램의 사용 빈도를 획득하기 위한 장치는,
시스템 레지스터링 정보 리스트에 의하여 지정된 응용 프로그램의 설치 경로를 획득하기 위한 경로 획득 모듈(10);
지정된 응용 프로그램의 실행을 모니터링하도록 응용프로그램 인터페이스(API)를 호출하기 위한 프로그램 모니터링 모듈(11);
지정된 응용 프로그램의 마지막 기동 시간과 설치 경로를 기록하기 위한 정보 기록 모듈(12);
설치 경로를 인덱스로 하는 것에 의하여 정보 기록 모듈로부터 지정된 응용 프로그램의 마지막 기동 시간과 현재시간을 획득하기 위한 시간 획득 모듈(13);
지정된 응용 프로그램의 마지막 기동 시간과 현재 시간을 비교하여 응용 프로그램의 사용 빈도를 확정하기 위한 빈도 계산 모듈(14)을 포함한다.
본 발명의 예시적 실시예에 따른 장치는, 시스템 레지스터링 정보 리스트에 의하여 지정된 응용 프로그램의 설치 경로를 정확히 획득하고, 설치 경로에 의하여 응용 프로그램의 기동 정황을 모니터링함으로써, 이를테면 기록된 마지막 기동 시간에 의하여 응용 프로그램의 사용 빈도를 판단한다. 본 발명의 예시적 실시예에서 제공한 응용 프로그램의 사용 빈도를 얻기 위한 방법은 진실하고 효과적이며, 객관적이고 정확하기에 사용자는 컴퓨터의 운영 시스템에 설치된 응용 프로그램의 사용 정황을 명확히 알 수 있다. 뿐만 아니라, 사용자는 획득한 응용 프로그램의 사용 빈도에 의하여 컴퓨터의 운영 시스템을 최적화할 수도 있다.
도 8은 본 발명의 제2 예시적 실시예에 따른 지정된 응용 프로그램의 사용 빈도를 얻기 위한 장치의 설명도이다.
예시적 실시예는 경로 획득 모듈(10)의 부품을 설명하는 바, 이는 지향 획득 유닛(100)을 포함한다.
지향 획득 유닛(100)은 시스템 레지스터링 정보 리스트 중 키 할당값이 InstallLocation인 항에 의하여 지정된 응용 프로그램의 설치 경로를 획득하거나 시스템 레지스터링 정보 리스트 중 키 할당값이 UnstallString인 항에 의하여 지정된 응용 프로그램의 설치 경로를 획득한다.
구체적으로, 프로그램을 호출하여, 시스템 레지스터링 정보 리스트의 SOFTWARE\\Microsoft\\Windows\\Current Version\\Uninstall 하의 키 할당값이 "InstallLocation"인 항에서 응용 프로그램의 설치 경로를 획득한다.
예를 들면, 도 2에 도시된 바와 같이, 도 2는 시스템 레지스터링 정보 리스트의 SOFTWARE\\Microsoft\\Windows\\Current Version\\Uninstall 중의 응용 프로그램 "Autodesk Exprress Viewer"인 모든 항을 나타내는 설명도인데, 도 2의 항에서 키 할당값이 "InstallLocation"인 항을 찾으면 "C:\Program Files\Autodesk\Autodesk Express Viewer"인 설치 경로가 나타난다.
나아가, 일부 응용 프로그램은 시스템 레지스터링 정보 리스트 중 키 할당값이 "InstallLocation"인 항을 구비하지 않는다. 따라서, 제2모드가 실행되어 프로그램을 호출하여 시스템 레지스터링 정보 리스트의 SOFTWARE\\Microsoft\\Windows\\Current Version\\Uninstall 중의 키 할당값이 UnstallString인 항을 읽은 후, exe 파일명을 삭제하여 응용 프로그램의 설치 경로를 획득한다.
예를 들면, 도3에 도시된 바와 같이, 도 3은 시스템 레지스터링 정보 리스트의 "SOFTWARE\\Microsoft\\Windows\\Current Version\\Uninstall" 중의 응용 프로그램 "Adobe Flash Player Activex"인 모든 항을 나타내기 위한 설명도이다. 도 3에는, 키 할당값이 "InstallLocation"인 항은 존재하지 않는다. 따라서, 키 할당값이 "UnstallString"인 항을 찾으면 "C:\\WINDOWS\system32\Macromed\Flash\FlashUtil10w_ActiveX.exe-matntain activex"라고 나타낸다. 이어서 exe 파일명을 삭제하여 설치 경로 "C:\WINDOWS\system32\Macromed\Flash\"를 획득한다.
경로 획득 모듈(10)은 매칭 유닛(101)과 경로 획득 유닛(102)을 더 포함한다.
매칭 유닛(101)은 응용 프로그램의 단축 아이콘의 명칭과 상기 시스템 레지스터링 정보 리스트에 기록된 지정된 응용 프로그램의 명칭을 퍼지 매칭하거나 각각의 디스크의 각각의 프로젝트 폴더의 응용 프로그램의 명칭과 시스템 레지스터링 정보 리스트 중의 지정된 응용 프로그램의 명칭을 비교하기 위한 것이다.
경로 획득 유닛(102)은 응용 프로그램의 단축 아이콘의 명칭과 시스템 레지스터링 정보 리스트에 기록된 지정된 응용 프로그램의 명칭이 성공적으로 매칭되면 단축 아이콘의 지향 경로를 지정된 응용 프로그램의 설치 경로로서 획득하거나, 디스크의 프로젝트 폴더의 응용 프로그램의 명칭과 시스템 레지스터링 정보 리스트 중의 지정된 응용 프로그램의 명칭이 성공적으로 매칭되면 디스크의 프로젝트 폴더의 응용 프로그램의 경로를 지정된 응용 프로그램의 설치 경로로 간주하기 위한 것이다.
구체적으로, 시스템 레지스터링 정보 리스트에서, 일부 응용 프로그램은 키 할당값이 "InstallLocation"인 항을 구비하지 않을 뿐만 아니라 키 할당값이 "UnstallString"인 항도 구비하지 않는다. 따라서, 본 발명은 응용 프로그램의 단축 아이콘을 열거할 수도 있는데, 상기 단축 아이콘은 사용자의 바탕화면, 시작 메뉴 또는 시작 단축 아이콘 등에 있을 수 있다. 이어서 매칭 유닛(101)으로 응용 프로그램의 단축 아이콘의 명칭과 시스템 레지스터링 정보 리스트 중의 지정된 응용 프로그램의 명칭을 퍼지 매칭한다. 성공적으로 매칭되면, 본 발명은 단축 아이콘의 지향경로를 지정된 응용 프로그램의 설치 경로로 간주한다.
예를 들면, 컴퓨터의 운영 시스템은 예컨대 "Tencent TM2009", "CHATM2010", "Windstorm Image Sound"등과 같이 설치된 응용 프로그램을 구비하는데, 이러한 응용 프로그램의 단축 아이콘은 각각 사용자의 바탕화면, 시작 메뉴 또는 시작 단축 아이콘 등에 위치한다. 이 단계는 이러한 단축 아이콘을 열거한 다음 이러한 단축 아이콘의 명칭과 시스템 레지스터링 정보 리스트 중의 응용 프로그램의 명칭에 대해 매칭을 진행한다. 퍼지 매칭을 진행할 때, 단축 아이콘의 명칭 "CHATM2010"이 시스템 레지스터링 정보 리스트 중의 "CHATM trademark-querying software"와 성공적으로 매칭되면 단축 아이콘의 지향 경로를 획득하며, 도 4에 도시된 바와 같이, 상기 단축 아이콘의 지향 경로는 "타겟(Target)(T)C:\Rabbit\chatm\exe\Quety_net.exe"이다. 이어서, 이 지향 경로를 응용 프로그램 "CHATM2010"의 설치 경로로 간주한다.
나아가, 매칭 유닛(101)은 각각의 디스크의 각각의 프로젝트 폴더의 응용 프로그램의 명칭과 시스템 레지스터링 정보 리스트중의 응용 프로그램의 명칭을 퍼지 매칭하여, 디스크의 프로젝트 폴더의 응용 프로그램의 명칭과 시스템 레지스터링 정보 리스트중의 응용 프로그램의 명칭이 성공적으로 매칭되면, 경로 획득 유닛(102)은 디스크의 프로젝트 폴더의 응용 프로그램의 경로를 응용 프로그램의 설치 경로로 간주한다.
구체적으로, 일부 응용 프로그램에 있어서, 각각의 디스크의 프로그램 파일의 프로젝트 디렉터리 중의 각각의 폴더의 응용 프로그램을 열거해야 한다. 매칭 유닛(101)은 반드시 응용 프로그램의 명칭과 시스템 레지스터링 정보 리스트 중의 응용 프로그램의 명칭에 대해 매칭을 진행해야 한다. 성공적으로 매칭되면, 경로 획득 유닛(102)은 시스템 레지스터링 정보 리스트의 응용 프로그램의 명칭과 매칭되는 프로젝트 폴더의 응용 프로그램의 경로를 상기 응용 프로그램의 설치 경로로 간주한다.
예를 들면, 명칭이 "Movie Maker"인 폴더는 C 드라이브의 프로그램 파일의 폴더에 저장된다. 매칭 유닛(101)이 명칭 "Movie Maker"와 시스템 레지스터링 정보 리스트 중의 응용 프로그램의 명칭을 성공적으로 매칭하면 경로 획득 유닛(102)은 응용 프로그램 "Movie Maker"의 경로 "C:\Program Files\Movie Maker"를 상기 응용 프로그램의 설치 경로로 간주한다.
시스템 디렉터리 중의 소프트웨어에 있어서, 예컨대 Application Verifier, Flash Player는 exepath를 사용하여 매칭을 진행해야 하는데 이 방법은 상기의 방법과 비슷하기에 여기서는 더이상 설명하지 않는다.
본 발명의 예시적 실시예의 경로 획득 모듈은 위의 네개 모드를 사용하여 응용 프로그램의 설치 경로를 얻기 때문에 응용 프로그램의 사용 빈도를 분석하기 위한 응용 프로그램의 설치 경로를 최대한 정확하게 획득할 수 있다.
도 9는 본 발명의 제3 예시적 실시예에 따른 지정된 응용 프로그램의 사용 빈도를 얻기 위한 장치의 설명도이다.
예시적 실시예는 본 발명의 프로그램 모니터링 모듈(11)에 대해 상세하게 설명하는 바, 상기 프로그램 모니터링 모듈(11)은 인터페이스 호출 유닛(110), 명령 행 처리 유닛(111)과 프로그램 모니터링 유닛(112)을 포함한다.
인터페이스 호출 유닛(110)은 응용프로그램 인터페이스를 호출하여 실행중인 응용 프로그램의 명령 행 변수를 획득하기 위한 것이다.
구체적으로, 인터페이스 호출 유닛(110)의 응용프로그램 인터페이스 Create Process의 모니터링을 작동시킨다. Create Process가 호출되면, Create Process 중의 명령 행 변수가 획득된다.
명령 행 처리 유닛(111)은 응용 프로그램의 명령 행 변수를 별도처리 스레드에 입력하기 위한 것이다.
구체적으로, Create Process를 호출하는 성능에 영향을 주지 않기 위하여 명령 행 처리 유닛(111)은 명령 행 변수를 별도의 처리 스레드에 입력한다.
프로그램 모니터링 유닛(112)은 각각 명령 행 변수에 대응하는 응용 프로그램의 실행을 모니터링하기 위한 것이다.
예시적 실시예에 따른 장치는 사전에 여러가지 응용 프로그램의 실행정황을 모니터링할 수 있으며, 상기 모니터링 모드는 여러가지 응용 프로그램의 정황을 정확하게 획득할 수 있어 여러가지 응용 프로그램의 기동 시간을 얻도록 한다.
도 10은 본 발명의 제4 예시적 실시예에 따른 지정된 응용 프로그램의 사용 빈도를 얻기 위한 장치의 설명도이다.
이하, 예시적 실시예는 정보 기록 모듈(12)의 부품 및 그 기능에 대하여 설명한다.
정보 기록 모듈(12)은 시간 기록 유닛(120)을 포함한다. 시간 기록 유닛(120)은 처리 스레드로부터 응용 프로그램의 마지막 기동 시간을 획득하고 기록한다.
구체적으로, 프로그램 모니터링 유닛(112)은 처리 스레드 중의 여러가지 응용 프로그램을 모니터링하고, 시간 기록 유닛(120)은 임의의 하나의 지정된 응용 프로그램의 기동 시간을 획득할 수 있다. 예시적 실시예에서, 시간 기록 유닛(120)은 응용 프로그램의 마지막 기동 시간만 기록하면 된다. 구체적으로, 시간 기록 유닛(120)은 노트패드 또는 SQlite를 사용하여 여러가지 응용 프로그램의 기동 시간을 기록할 수 있다. 주의할 것은, SQlite은 경량데이터베이스이고 ACID 관련 데이터베이스 관리 시스템을 준수한다. SQlite는 내장형이고 아주 작은 자원만 차지하며 예컨대 Windows 또는 Linux또는 Unix 등과 같은 메인 운영 시스템을 지원한다.
정보 기록 모듈(12)은 설치 경로에 있어서 표준화 처리를 진행하기 위한 경로 표준화 유닛(121)을 더 포함한다.
구체적으로, 본 발명의 상기 모드에서 획득한 설치 경로는 형식상에서 다를 수 있다. 예시적 실시예에서, 경로 표준화 유닛(121)은 설치 경로에 있어서 표준화 처리를 실시함으로써 설치 경로들을 신속하게 찾고 비교를 진행할 수 있다. 설치 경로에 있어서 진행하는 표준화 처리는, 설치 경로의 문자 부호를 소문자로 통일하는 단계; 설치 경로의 명칭을 짧은 파일명, 긴 파일명, 환경 변수를 포함하는 명칭으로 통일하는 단계; 상용명 규칙에 의하여 설치 경로를 표준화하는 단계를 포함한다.
정보 기록 모듈(12)은 표준화된 설치 경로를 기록하기 위한 경로 기록 유닛(122)을 더 포함한다. 구체적으로, 경로 기록 유닛(122)은 노트 패드 또는 SQlite 같은 도구를 사용하여 여러가지 응용 프로그램의 마지막 기동 시간과 설치 경로를 기록하기 위한 응용 프로그램 정보 리스트를 구축하는 바, 이는 표 1과 같다.
시간 획득 모듈(13)은 경로 기록 유닛(122)에 기록된 표 1에서, 설치 경로를 인덱스로 하는 것에 의하여 설치 경로 하의 응용 프로그램의 마지막 기동 시간을 찾는다.
빈도 계산 모듈(14)은 마지막 기동 시간과 현재 시간을 비교하여 응용 프로그램의 사용 빈도를 확정하기 위한 것이다.
구체적으로, 시간 획득 모듈(13)이 응용 프로그램의 마지막 기동 시간을 획득할 때, 빈도 계산 모듈(14)은 마지막 기동 시간과 현재 시간을 비교한다. 마지막 기동 시간과 현재시간 사이의 시간 간격이 3일 미만이면 이 응용 프로그램을 자주 사용하는 프로그램이라고 판정한다. 마지막 기동 시간과 현재시간 사이의 시간 간격이 7일 미만이고 3일 초과하면, 이 프로그램을 가끔 사용하는 프로그램이라고 판정한다. 마지막 기동 시간과 현재시간 사이의 시간 간격이 30일 미만이고 7일 초과하면, 이 프로그램을 좀처럼 사용하지 않는 프로그램이라고 판정한다. 마지막 기동 시간과 현재시간 사이의 시간 간격이 30일 초과하면 이 프로그램을 한번도 사용한 적이 없는 프로그램으로 판정한다.
주의할 것은, 특별히 처리할 일부 응용 프로그램에 있어서, 예컨대 입력방식의 소프트웨어, 플러그-인(plug-in) 소프트웨어 등은 exe 파일을 구비하지 않는다. 이러한 응용 프로그램에 있어서, 본 발명은 dll 파일의 사용 정황을 모니터링하도록 응용 프로그램 인터페이스 Create Process를 호출해야 하는데 이는 상기의 exe 파일에 대한 설명과 같기에 아래에서는 더이상 설명하지 않는다.
본 발명에 따른 응용 프로그램의 사용 빈도를 획득하기 위한 장치는 시스템의 프로세스 기동 함수를 인터셉트할 수 있어, 쉽고 효과적으로 컴퓨터 운영 시스템 중의 응용 프로그램의 사용 빈도를 얻도록 한다. 따라서, 본 발명은 컴퓨터에 설치된 응용 프로그램을 쉽게 관리할 수 있으며 컴퓨터의 운영 시스템을 최적화하기 위한 기초를 제공한다.
본 기술분야의 통상의 지식을 가진 자는, 컴퓨터 프로그램이 지시하는 해당 하드웨어를 거쳐 위에서 언급한 실시예의 방법 중의 모든 또는 일부분 처리를 완료할 수 있다는 것을 이해할 것이다. 프로그램은 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 상기 프로그램을 실행할 때, 위에서 언급한 방법 실시예의 처리를 포함할 수 있다. 저장 매체는 디스켓, 콤팩트 디스크(CD), 읽기 전용 기억장치(ROM) 또는 랜덤 기억장치(RAM) 등 일 수 있다.
위에서 언급한 것은 단지 본 발명의 바람직한 실시예일 뿐 본 발명을 한정하기 위한 것이 아니다. 본 발명의 정신과 원리의 범주 내에서 진행하는 모든 수정, 등가적 대체와 개선은 모두 본 발명의 보호범위내에 속해야 할 것이다.
10 : 경로 획득 모듈 11 : 프로그램 모니터링 모듈
12 : 정보 기록 모듈 13 : 시간 획득 모듈
14 : 빈도 계산 모듈 100 : 지향 획득 유닛
101 : 매칭 유닛 102 : 경로 획득 유닛
111 : 명령 행 처리 유닛 112 : 프로그램 모니터링 유닛
120 : 시간 기록 유닛 121 : 경로 표준화 유닛
122 : 경로 기록 유닛

Claims (4)

  1. 지정된 응용 프로그램의 사용 빈도를 얻기 위한 장치에 있어서,
    시스템 레지스터링 정보 리스트에 의하여 상기 지정된 응용 프로그램의 설치 경로를 획득하기 위한 경로 획득 모듈;
    상기 지정된 응용 프로그램의 실행을 모니터링하도록, 응용프로그램 인터페이스(API)를 호출하기 위한 프로그램 모니터링 모듈;
    상기 지정된 응용 프로그램의 마지막 기동 시간과 설치 경로를 기록하기 위한 정보 기록 모듈;
    상기 설치 경로를 인덱스로 하는 것에 의하여 상기 정보 기록 모듈로부터 상기 지정된 응용 프로그램의 마지막 기동 시간을 획득하기 위한 시간 획득 모듈;
    상기 마지막 기동 시간과 현재 시간을 비교하여 상기 지정된 응용 프로그램의 사용 빈도를 확정하기 위한 빈도 계산 모듈을 포함하며,
    상기 경로 획득 모듈은,
    상기 시스템 레지스터링 정보 리스트 중 키 할당값이 InstallLocation인 항에 의하여 상기 지정된 응용 프로그램의 설치 경로를 획득하거나 상기 시스템 레지스터링 정보 리스트 중 키 할당값이 UnstallString인 항에 의하여 상기 지정된 응용 프로그램의 설치 경로를 획득하기 위한 지향 획득 유닛;
    응용 프로그램의 단축 아이콘의 명칭과 상기 시스템 레지스터링 정보 리스트에 기록된 상기 지정된 응용 프로그램의 명칭을 퍼지 매칭하거나 각각의 디스크의 각각의 프로젝트 폴더의 응용 프로그램의 명칭과 상기 시스템 레지스터링 정보 리스트에 기록된 상기 지정된 응용 프로그램의 명칭을 퍼지 매칭하기 위한 매칭 유닛; 및
    응용 프로그램의 단축 아이콘의 명칭과 상기 시스템 레지스터링 정보 리스트에 기록된 상기 지정된 응용 프로그램의 명칭이 성공적으로 매칭되면 상기 단축 아이콘의 지향 경로를 상기 시스템 레지스터링 정보 리스트에 기록된 상기 지정된 응용 프로그램의 설치 경로로서 획득하거나, 디스크의 프로젝트 폴더의 응용 프로그램의 명칭과 상기 시스템 레지스터링 정보 리스트에 기록된 상기 지정된 응용 프로그램의 명칭이 성공적으로 매칭되면 상기 디스크의 상기 프로젝트 폴더의 상기 응용 프로그램의 경로를 상기 지정된 응용 프로그램의 설치 경로로 간주하기 위한 경로 획득 유닛;을 포함하는 것을 특징으로 하는 지정된 응용 프로그램의 사용 빈도를 얻기 위한 장치.
  2. 제1항에 있어서,
    상기 프로그램 모니터링 모듈은,
    상기 응용프로그램 인터페이스를 호출하여, 실행중인 응용 프로그램의 명령 행 변수를 획득하기 위한 인터페이스 호출 유닛;
    상기 응용 프로그램의 상기 명령 행 변수를 별도의 처리 스레드에 입력하기 위한 명령 행 처리 유닛;
    각각 상기 명령 행 변수에 대응하는 상기 응용 프로그램의 실행을 모니터링하기 위한 프로그램 모니터링 유닛을 포함하는 것을 특징으로 하는 지정된 응용 프로그램의 사용 빈도를 얻기 위한 장치.
  3. 제2항에 있어서,
    상기 정보 기록 모듈은,
    상기 처리 스레드로부터 상기 지정된 응용 프로그램의 마지막 기동 시간을 획득하여 기록하기 위한 시간 기록 유닛;
    상기 설치 경로에 대하여 표준화 처리를 진행하기 위한 경로 표준화 유닛;
    표준화된 설치 경로를 기록하기 위한 경로 기록 유닛을 포함하는 것을 특징으로 하는 지정된 응용 프로그램의 사용 빈도를 얻기 위한 장치.
  4. 제3항에 있어서,
    상기 경로 표준화 유닛이 수행한 상기 표준화 처리는,
    상기 설치 경로의 문자 부호를 소문자로 통일하는 단계;
    상기 설치 경로의 명칭을 짧은 파일명, 긴 파일명과 환경 변수를 포함하는 명칭으로 통일하는 단계 및;
    상용명 규칙에 의하여 상기 설치 경로를 표준화하는 단계를 포함하는 것을 특징으로 하는 지정된 응용 프로그램의 사용 빈도를 얻기 위한 장치.
KR1020167022515A 2011-09-27 2012-09-07 응용 프로그램의 사용 빈도를 획득하기 위한 방법과 장치 KR101667287B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201110296513.8 2011-09-27
CN201110296513.8A CN103019918B (zh) 2011-09-27 2011-09-27 一种获取应用程序使用频率的方法和装置
PCT/CN2012/081150 WO2013044725A1 (en) 2011-09-27 2012-09-07 Method and device for obtaining using-frequency of application program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR20147001463A Division KR20140025587A (ko) 2011-09-27 2012-09-07 응용 프로그램의 사용 빈도를 획득하기 위한 방법과 장치

Publications (2)

Publication Number Publication Date
KR20160103549A KR20160103549A (ko) 2016-09-01
KR101667287B1 true KR101667287B1 (ko) 2016-10-19

Family

ID=47968545

Family Applications (2)

Application Number Title Priority Date Filing Date
KR20147001463A KR20140025587A (ko) 2011-09-27 2012-09-07 응용 프로그램의 사용 빈도를 획득하기 위한 방법과 장치
KR1020167022515A KR101667287B1 (ko) 2011-09-27 2012-09-07 응용 프로그램의 사용 빈도를 획득하기 위한 방법과 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR20147001463A KR20140025587A (ko) 2011-09-27 2012-09-07 응용 프로그램의 사용 빈도를 획득하기 위한 방법과 장치

Country Status (7)

Country Link
US (1) US8930970B2 (ko)
EP (1) EP2761462B1 (ko)
KR (2) KR20140025587A (ko)
CN (1) CN103019918B (ko)
BR (1) BR112013032005B1 (ko)
RU (1) RU2014107674A (ko)
WO (1) WO2013044725A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105512014B (zh) * 2015-12-10 2018-09-25 北京金山安全管理系统技术有限公司 一种应用程序使用情况数据采集的方法和装置
CN105740125B (zh) * 2016-01-29 2018-03-30 四川秘无痕信息安全技术有限责任公司 获取Android应用程序启动次数和时间的方法
US10311500B2 (en) * 2016-09-01 2019-06-04 Facebook, Inc Methods and systems for developer onboarding for software-development products
US10802853B2 (en) * 2016-10-14 2020-10-13 Seagate Technology Llc Active drive
CN111240949B (zh) * 2020-01-13 2024-04-26 奇安信科技集团股份有限公司 一种确定国产操作系统中的软件使用频率的方法及装置
CN111459765B (zh) * 2020-04-16 2023-02-24 Oppo广东移动通信有限公司 统计方法、统计装置、电子设备和存储介质
CN113590244B (zh) * 2021-07-05 2024-03-22 青岛海信移动通信技术有限公司 应用于终端设备的设置功能的控制方法及终端设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011039615A (ja) 2009-08-06 2011-02-24 Kyocera Mita Corp 情報処理装置、動作制御システム、及びウェブアプリケーション生成プログラム
JP2011159077A (ja) 2010-01-29 2011-08-18 Fujitsu Toshiba Mobile Communications Ltd 携帯端末装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324546B1 (en) * 1998-10-12 2001-11-27 Microsoft Corporation Automatic logging of application program launches
US7197431B2 (en) * 2000-08-22 2007-03-27 International Business Machines Corporation Method and system for determining the use and non-use of software programs
JP2002259010A (ja) * 2001-03-05 2002-09-13 Fujitsu Ltd ショートカットアイコンの自動作成・削除プログラム
US7032229B1 (en) * 2001-06-04 2006-04-18 Palmsource, Inc. Automatic tracking of user progress in a software application
US7925635B1 (en) * 2004-04-23 2011-04-12 Bmc Software, Inc. System and method for collecting statistics related to software usage
KR100625867B1 (ko) * 2004-06-05 2006-09-20 소프트온넷(주) 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템,방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수있는 기록매체
US8457108B1 (en) * 2004-12-27 2013-06-04 At&T Intellectual Property Ii, L.P. Method and apparatus for monitoring client software usage in end user device
US7356590B2 (en) * 2005-07-12 2008-04-08 Visible Measures Corp. Distributed capture and aggregation of dynamic application usage information
CN100442901C (zh) 2005-10-25 2008-12-10 华为技术有限公司 在设备管理中监控和升级软件的方法及装置
JP5048683B2 (ja) * 2006-12-18 2012-10-17 株式会社Access アプリケーション更新管理端末、システム、方法およびプログラム
US8473607B2 (en) * 2008-09-02 2013-06-25 Belarc, Inc. System and method for software usage discovery
US8713157B2 (en) * 2008-11-14 2014-04-29 Interpret, Llc System for collecting computer application usage data of targeted application programs executed on a plurality of client devices
KR101170122B1 (ko) * 2009-10-07 2012-07-31 무하디지털(주) 외부 저장장치에 저장된 응용프로그램의 실행 시스템 및 그 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011039615A (ja) 2009-08-06 2011-02-24 Kyocera Mita Corp 情報処理装置、動作制御システム、及びウェブアプリケーション生成プログラム
JP2011159077A (ja) 2010-01-29 2011-08-18 Fujitsu Toshiba Mobile Communications Ltd 携帯端末装置

Also Published As

Publication number Publication date
US20140130065A1 (en) 2014-05-08
BR112013032005A2 (pt) 2016-12-27
EP2761462A4 (en) 2015-06-24
WO2013044725A1 (en) 2013-04-04
CN103019918A (zh) 2013-04-03
RU2014107674A (ru) 2015-09-10
BR112013032005B1 (pt) 2021-07-06
KR20140025587A (ko) 2014-03-04
CN103019918B (zh) 2015-07-15
KR20160103549A (ko) 2016-09-01
EP2761462B1 (en) 2018-01-03
EP2761462A1 (en) 2014-08-06
US8930970B2 (en) 2015-01-06

Similar Documents

Publication Publication Date Title
KR101667287B1 (ko) 응용 프로그램의 사용 빈도를 획득하기 위한 방법과 장치
KR101928127B1 (ko) 애플리케이션용 선택적 파일 액세스 기법
US8930915B2 (en) System and method for mitigating repeated crashes of an application resulting from supplemental code
KR101643022B1 (ko) 카탈로그-기반 소프트웨어 컴포넌트 관리
KR101246623B1 (ko) 악성 애플리케이션 진단 장치 및 방법
US9405777B2 (en) Registry emulation
US20060037079A1 (en) System, method and program for scanning for viruses
WO2018129509A1 (en) Managing, using, and updating application resources
US8046692B2 (en) User interface mapping modules to deployment targets
US20130247032A1 (en) Method of and system for computer system state checks
JP2006520966A (ja) サーバの統合分析
US20080294764A1 (en) Storage medium bearing hba information provision program, hba information provision method and hba information provision apparatus
US8825909B1 (en) Application directed dynamic driver substitution
JP4370525B2 (ja) アプリケーション環境チェック装置及び方法とそのプログラム
US20150186126A1 (en) System and Method of Automating Installation of Applications
JP6238221B2 (ja) ソフトウェアの実行を監視する装置、方法およびプログラム
EP2877915A1 (en) Recording external processes
US10114951B2 (en) Virus signature matching method and apparatus
CN113360396A (zh) 一种软件性能压测方法及装置
US11687490B2 (en) Management of contextual information for data
US10423578B2 (en) Management of contextual information for data
KR102416292B1 (ko) 안드로이드 앱 동적 분석 방법, 이를 수행하기 위한 기록 매체 및 장치
WO2022195737A1 (ja) 活動痕跡抽出装置、活動痕跡抽出方法及び活動痕跡抽出プログラム
WO2022195728A1 (ja) 活動痕跡抽出装置、活動痕跡抽出方法及び活動痕跡抽出プログラム
JP2018109908A (ja) 類似度判定プログラム、類似度判定方法および情報処理装置

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 4