KR20070022063A - 자동으로 생성된 콘텐츠의 임포테이션 - Google Patents

자동으로 생성된 콘텐츠의 임포테이션 Download PDF

Info

Publication number
KR20070022063A
KR20070022063A KR1020067025533A KR20067025533A KR20070022063A KR 20070022063 A KR20070022063 A KR 20070022063A KR 1020067025533 A KR1020067025533 A KR 1020067025533A KR 20067025533 A KR20067025533 A KR 20067025533A KR 20070022063 A KR20070022063 A KR 20070022063A
Authority
KR
South Korea
Prior art keywords
text
user
information
user interface
computing device
Prior art date
Application number
KR1020067025533A
Other languages
English (en)
Other versions
KR101087312B1 (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 KR20070022063A publication Critical patent/KR20070022063A/ko
Application granted granted Critical
Publication of KR101087312B1 publication Critical patent/KR101087312B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Abstract

본 발명은 사용자 인터페이스(205)상에서 수행되는 전체 작업의 단계들을 완료함에 있어서, 작자(201)의 액션을 나타내는 정보를 자동으로 기록하기 위한 시스템(500)에 관한 것이다. 기록 시스템(200)은 서로 다른 구성을 갖는 서로 다른 컴퓨터(502 및 504)상에서 작업을 수행하기 위해 취해지는 단계들을 기록하기는 이용된다. 기록된 단계들은 작성 컴포넌트(240)에 임포팅되고, 여기서 기록된 단계들은 소정의 콘텐츠 내에 배열된다.
사용자 인터페이스, 기록 시스템, 콘텐츠 생성 시스템, 콘텐츠 생성 방법

Description

자동으로 생성된 콘텐츠의 임포테이션{IMPORTATION OF AUTOMATICALLY GENERATED CONTENT}
본 발명은 도움말 콘텐츠 등의 콘텐츠를 생성하기를 다룬다. 보다 구체적으로, 본 발명은 사용자 인터페이스상에서의 사용자의 액션을 나타내는 자동으로 생성된 콘텐츠의 임포테이션(importation)을 다룬다.
그래픽 사용자 인터페이스(GUI)는 널리 이용되는 인터페이스 메커니즘이다. GUI는 위치결정 작업(예컨대, 직사각형의 크기를 조정하기(resizing)), 시각적 수정 작업(예컨대, 대상에 흐릿한 푸른 음영이 지도록 하기), 또는 선택 작업(예컨대, 수백의 화상 I 중 하나가 회전되기를 원하는 것)에 매우 유용하다. GUI는 또한 민첩한 한 단계의 특징을 신속하게 액세스하는데 유용하다. 애플리케이션의 GUI는 작업 지향의 투사(예컨대, "내 컴퓨터를 해커로부터 보다 안정하게 하라(make my computer secure against hackers)" 등의 사용자가 원하는 고 수준의 작업에 의해 구성됨)라기보다는 기능 지향의 투사(예컨대, 메뉴, 도구 모음 등으로 구성됨)로부터 구성되는 유용한 도구 상자가다.
하지만, GUI는 마찬가지로 여러 문제들을 사용자에게 제시한다. 도구 상자 유추(analogy)를 이용하는 사용자는 상자 내에서 도구를 검색하거나 어떻게 그 도 구를 이용하여 다단계로 구성된 작업을 완성할지를 알아내는데 어려움을 갖는다. 한 단어로 기술된 인터페이스, 즉 불명료한 체계로 분류된 아주 작은 버튼(button)과 탭은 사람들이 작업에 대해 생각하는 방식에 대하여 적응되어 있지 않다. GUI는 작업을 달성하는데 필요한 요소가 무엇인지 판정하기 위해 사용자가 작업을 분해하도록 요구한다. 이런 요건은 복잡성을 초래한다. 복잡성 이외에, GUI 요소(즉, 메뉴 클릭, 다이얼로그 클릭 등)를 조합하는데에도 시간이 걸리게 된다. 이는 숙련된 사용자에게 조차 비효율적이며 시간 소모적일 수 있다.
GUI 문제를 해결하기 위한 한 가지 기존 메커니즘은 기입된 도움말 프로시저(written help procedure)이다. 도움말 프로시저는 종종 고객과 GUI 문제 간의 격차를 채워 주는 도움말 문서, 제품 지원 서비스(Product support services;PSS) 지식 기반(Knowledge base;KB) 조항, 및 뉴스그룹 포스트의 형태를 취한다. 그것들은 도구 상자가 딸려 있는 메뉴얼과 유사하며, 여러 이점을 갖는다. 이들 이점은 예로서 이하를 포함한다.
1) 기술적으로 말하기, 그것들은 비 기술자인 작자에게도 상대적으로 작성이 용이함;
2) 그것들은 서버상에서의 업데이트가 용이하므로 접속된 사용자가 새로운 콘텐츠를 쉽게 액세스함; 및
3) 그것들은 GUI에게 교시하여 사용자가 문제 해결을 제어하도록 해줌.
그러나, 도움말 문서, PSS KB 조항, 및 뉴스그룹은 그들 자신의 문제 세트를 갖는다. 이들 문제는 예로서 이하를 포함한다.
1) 복잡한 작업은 사용자 측에서의 상당한 량의 처리를 필요로 한다. 사용자는 GUI의 각 단계에서 언급된 것으로부터 매핑을 행할 필요가 있다. 이는 단계들이 생략되거나, 부정확하게 또는 부적절하게 기술되거나, 순서가 뒤바뀌어 기술되는 오류를 초래할 수 있다.
2) 문제해결사(Troubleshooters), 및 심지어 프로시저 도움말 문서는 종종 도움말 토픽 내의 복잡한 분기(branches)를 생성하는 상태 정보를 포함하여 최종 사용자가 판독하고 처리하기 어렵고 긴 토픽이 되게 한다. 도구 모음이 사라질 수 있으며, 다음 단계를 취하기 전에, 턴온될 필요가 있을 수 있다. 문제해결사는 종종 (문제해결자 스스로 해답을 찾을 수 있어야 하기 때문에) 최상의 경우 실망시키고 최악의 경우 비숙련자가 답할 수 없는 상태에 대해 질문한다.
3) 수백만 개의 문서가 존재하고, 해답을 찾는 것은 검색을 어디서 시작할지와, 반환된 수천 개의 검색 결과로부터 어떻게 최상의 검색 결과를 선별할지의 문제를 포함한다.
4) 공유된 작성 구조가 존재하지 않는다. 뉴스그룹 포스트, KB 조항, 문제해결사, 및 프로시저의 도움말 문서는 모두 서로 다른 구조 및 작성 전략을 갖으나, 그것들은 모두 유사한 문제들을 해결하고 있다.
5) 사용자를 위해, 단계별로 텍스트를 판독하고, 기술되어 있는 요소를 찾기 위해 UI를 시각적으로 검색하고, 그 요소에 관련된 액션을 취하는 것은 몹시 어렵다.
GUI 문제를 해결하기 위한 다른 기존의 메커니즘은 마법사(Wizard)이다. 마 법사는 GUI 및 기입된 도움말 프로시저의 단점을 해결하도록 만들어졌다. 현재 수천 개의 마법사가 존재하는데, 이들 마법사는 제조되는 거의 모든 소프트웨어 제품에서 발견될 수 있다. 이는 마법사가 기존의 텍스트 기반의 도움말 및 지원에 의해 현재 해결되지 않은 실질 필요를 해결해 주기 때문이다. 마법사에 의해 사용자는 작업 기반 방식으로 기능을 액세스하고, GUI 또는 도구를 자동으로 조합할 수 있게 된다. 마법사는 프로그램 관리자와 개발자에게 고객 작업을 처리하기 위한 수단을 허용해 준다. 마법사는 상자 내에 있는 전문가와 같으며, 작업 성공에 필요한 단계들로 사용자를 단계별로 인도한다. 일부 마법사는 고객이 시스템을 설정하도록 도와 주며(예컨대, 설정 마법사), 일부 마법사는 특징을 갖는 콘텐츠를 포함하여 고객이 콘텐츠를 생성하도록 도와 주며(예컨대, 뉴스레터 마법사 또는 파워포인트의 오토콘텐츠 마법사), 일부 마법사는 고객이 문제를 진단하고 해결하도록 도와 준다(예컨대, 문제해결사).
마법사는 사용자에게 여러 이점을 제공한다. 마법사의 이점들 중 일부는 다음과 같다.
1) 마법사는 "작업"의 개념을 구체화할 수 있다. 통상적으로 마법사가 사용자를 도와 어떤 것을 달성하도록 하는지를 사용자에게 명확하게 한다. 단계별 페이지에서, 사용자는 쉽게 선택을 행할 수 있고, 잘 설계된 마법사의 경우, 사용자가 시각적으로 압도당하는 경우는 종종 감소된다.
2) 마법사는 소프트웨어의 기초적인 특징을 자동으로 조합하고 이와 대화하며, 고객이 선택을 행하는데 필요한 정보 또는 전문적 지식을 포함한다. 이로써, 사용자는 작업을 실행하는데 드는 시간을 절약하게 된다.
3) 마법사는 자동으로 콘텐츠를 생성할 수 있고, 텍스트를 생성하고 레이아웃을 계획함으로써, 사용자에게 드는 시간을 절약해 줄 수 있다.
4) 마법사는 또한 질문하기, 응답 얻기, 및 가장 관련성 있는 다음 질문 또는 특징으로 분기하기 위한 유용한 수단이다.
하지만, 마법사는 또한 그들 자신의 문제 세트를 갖는다. 이들 문제 중 일부는 사람들이 달성하려고 노력하는 작업이 그 작업을 달성하기 위한 마법사보다 더 많이 존재한다는 것을 포함한다. 마법사와 IUI(Inductive User Interfaces)는 고객에게 기초적인 GUI를 사용하는 방법을 교시하지 않으며, 종종 마법사가 완료될 때, 사용자는 다음에 어디로 가야할지 확신할 수 없게 된다. 마법사의 작성 비용은 여전히 높아서, 마법사를 작성하기 위해서는 기술적 전문 지식을 갖는 개인(예컨대, 소프트웨어 개발자)을 필요로 한다.
또한, 이런 유형의 콘텐츠 전부는 다른 문제로 고생한다. 소정의 작업을 수행하는데 취해져야 하는 단계들은 그 작업을 수행할 컴퓨터의 구성에 기초하여 변경될 수 있다. 예를 들어, 컴퓨터상에서 배경 표시(또는 "벽지(wallpaper)")를 변경하는 경우 사용자는 사용자의 컴퓨터의 운영 체계에 따라 서로 다른 단계들을 수행하도록 요구될 수 있다. 실제로, 심지어 요구되는 단계들은 운영 체계의 버전 번호가 서로 다른 경우에도 달라질 수 있다. 마찬가지로, 단계들은 컴퓨터의 네트워크 구성에 따라(예컨대, 컴퓨터가 네트워크 도메인 또는 작업그룹상에 있는지 여부에 따라) 달라질 수 있다. 이는 사용자가 기입된 콘텐츠로 상당히 복잡한 분기 논리를 작성할 것을 요구한다. 또한, 사용자는 필요한 단계를 수행하기 위해, 복잡한 분기하는 도움말 텍스트를 통해 항해하는 것이 매우 성가시다는 것을 발견할 수 있다.
따라서, 사용자에 의해 취해지는 프로시저를 기술하는 이런 유형의 콘텐츠 전부를 작성하는 것은 종종 오류를 내기 쉽다. 단계들을 생략하거나, 단계들을 부정확하게 기술하거나, 일련의 긴 UI 조작 중에서 어느 단계가 현재 기술되고 있는지 추적하지 못하는 일이 상당히 쉽게 일어난다. 하지만, 이런 기입된 프로시저 도움말 콘텐츠는 상당히 일반적이다. 이런 도움말 콘텐츠는 종종 제품과 함께 운반되고, 온라인 도움말 콘텐츠가 제품 지원팀에게 제공되며, 회사 내의 프로시저가 종종 특정 비즈니스 프로세스를 위해 이런 방식으로 문서화된다. 따라서, 이런 유형의 정보는 작성하기 곤란하고, 종종 오류를 포함한다.
또한, 최종 사용자는 전형적으로 작성되어 있는 단계를 따라가야 한다. 단계별 텍스트를 판독하고, 기술되어 있는 특정 컨트롤 요소를 찾기 위해 UI를 검색하고, 그 컨트롤 요소에 관련된 적합한 액션을 취하는 것이 어려울 수 있다. 수많은 사용자는, 텍스트의 처음 한 단계 또는 두 단계를 단순히 스캔하고, 최선을 다해 어느 UI 요소가 다음에 구동될 필요가 있는지를 결정하여 간신히 기입된 텍스트 단계로 되돌아가는 것이 부담이 된다는 사실을 발견하였다. 또한, 눈이 단어를 판독하고, 마음속에서 단어를 화상으로 변환한 후, 대응하는 UI 컨트롤 요소를 검색하는 것보다, 화상을 훨씬 더 쉽게 검색하고 인식할 수 있음을 발견하였다. 그러나, 과거에, 이는 취해질 액션에 대한 임의 유형의 시각적 도시를 갖기 위해서, 작 자가 공들여 각 단계의 스크린샷을 취하고, 이미지를 자르고, 우측 위치에서 이미지를 문서에 붙여넣기 해야할 때 행해졌던 바로 그것이다.
본 발명의 일 실시예는, GUI에 통합되어 작업을 수행하기 위해 사용자에게 GUI를 사용하는 방법을 교시하거나 사용자를 대신하여 작업을 실행하며 수천 개의 작업을 작성하기 위한 용이한 방법을 고려하는 콘텐츠 컴포넌트(또는 마법사)를 제공함으로써, 마법사, 도움말, 지식 기반 조항 및 문제해결사의 문제 중 일부를 해결한다. 일 특정 실시예에서, 본 발명은 액티브 콘텐츠 마법사(active content wizard;ACW) 스크립 작성하기, 및 ACW 스크립의 일부인 텍스트와 이미지를 다룬다.
본 발명은 사용자 인터페이스상에서 수행되는 전체 작업에서 단계들을 완료함에 있어 사용자의 액션을 나타내는 정보를 자동으로 기록하기 위한 시스템에 관한 것이다. 기록 시스템은 서로 다른 구조를 갖는 서로 다른 컴퓨터상에서 작업을 수행하는데 취해지는 단계들을 기록하는데 이용된다. 기록된 단계들은 기록된 단계들을 원하는 콘텐츠로 배열하는 작성 컴포넌트로 임포팅된다.
일 실시예에서, 기록 시스템은 사용자 인터페이스상에서의 작자의 액션에 대응하는 이미지를 기록한다. 기록 시스템은 작자가 기록된 이미지에 대응하는 텍스트를 생성하여 액션을 기술할 수 있는 작성 컴포넌트에 그 이미지를 전달할 수 있다. 또한, 원한다면, 이미지는 텍스트 내에 내장되어 공개될 수 있다.
일 실시예에서, 기록 시스템은 이미지에 대응하는 텍스트를 자동으로 생성하는 텍스트 생성기를 포함한다. 이런 텍스트는 사용자에게 지시 또는 다른 정보를 제공하는 텍스트 문서를 형성하는데 이용될 수 있다. 텍스트 문서를 생성하는 프로세스 동안에 또는 이후에, 편집기를 이용하여 그 텍스트를 편집하여 문서의 이해도를 높일 수 있다.
도 1은 본 발명을 이용할 수 있는 일 예시적 환경의 블록도.
도 2는 본 발명의 일 실시예에 따른 기록 시스템의 컴포넌트들을 도시하는 블록도.
도 3은 사용자 액션에 관련된 텍스트를 생성 및 기록하는, 도 2에 도시된 시스템의 동작을 예시하는 흐름도.
도 4는 기록 시스템에 대한 컨트롤의 일 실시예를 도시하는 스크린 샷.
도 5는 텍스트를 생성하는데 이용될 수 있는 예시적인 디스플레이를 도시하는 스크린 샷.
도 6은 본 발명의 일 실시예에 따른 하이라이트된 특징을 예시하는 스크린 샷.
도 7은 자동 텍스트 생성의 일 실시예를 보다 상세히 예시하는 흐름도.
도 8은 생성된 텍스트를 편집하기 위해 작자에게 제시하는 한 가지 방식을 예시하는 스크린 샷.
도 9는 콘텐츠를 작성하는데 이미지를 이용할 수 있는 일 실시예를 보다 잘 예시하는 스크린 샷.
도 10은 본 발명의 일 실시예에 따른, 내장된 이미지를 갖는 최종 콘텐츠의 일 실시예를 예시하는 도면.
도 11은 서로 다른 구성을 갖는 시스템상에서 작업을 수행하기 위한 사용자 인터페이스 단계들을 기록하기 위한 시스템의 일 실시예의 블록도.
본 발명은 사용자 인터페이스상에서의 사용자 액션을 나타내는 콘텐츠를 자동으로 기록하기를 다룬다. 본 발명을 보다 상세히 기술하기 이전에, 본 발명을 이용할 수 있는 일 예시적인 환경을 기술할 것이다.
도 1은 본 발명이 구현될 수 있는 적합한 컴퓨팅 시스템 환경(100)의 예를 나타낸다. 컴퓨팅 시스템 환경(100)은 적합한 컴퓨팅 환경의 한 가지 예일 뿐이며, 본 발명의 사용 또는 기능의 범위를 제한하는 것으로 의도되지 않는다. 컴퓨팅 환경(100)이 예시적인 동작 환경(100)에서 도시된 컴포넌트들 중 하나 혹은 임의 결합에 관련하여 어떤 요건이나 종속성을 갖는 것으로 해석되어서는 안 된다.
본 발명은 수많은 기타 범용 또는 전용 컴퓨팅 시스템 환경 또는 구성에서 동작한다. 본 발명을 사용하기에 적합할 수 있는 공지된 컴퓨팅 시스템, 환경, 및/또는 구성의 예로서, 퍼스널 컴퓨터, 서버 컴퓨터, 휴대형 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서 기반의 시스템, 셋톱 박스, 프로그램가능한 소비자 전자제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템 또는 장치들 중 임의의 하나를 포함하고 있는 분산 컴퓨팅 환경 등을 들 수 있으나, 이에만 한정되지 않는다.
본 발명은 컴퓨터에 의해 실행되는 프로그램 모듈들과 같은 컴퓨터-실현 가 능 명령어들의 일반적인 관점에서 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 작업을 실행하거나 특정 추상화 데이터형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 작업이 통신 네트워크를 통해 링크된 원격 프로세싱 장치에 의해 수행되는 분산 컴퓨팅 환경에서 또한 실현 가능하다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함한 로컬 및/또는 원격 컴퓨터 저장 매체에 위치할 수 있다.
도 1을 참조해 보면, 본 발명을 구현하기 위한 예시적인 시스템은 컴퓨터(110) 형태인 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들은 프로세싱 유닛(120), 시스템 메모리(130), 및 시스템 메모리를 포함해서 다양한 시스템 컴포넌트들을 프로세싱 유닛(120)에 결합시키는 시스템 버스(121)를 포함할 수 있으나, 이에만 한정되지 않는다. 시스템 버스(121)는 메모리 버스 또는 메모리 제어기, 주변 장치 버스, 다양한 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스를 포함하여 여러 형태의 버스 구조들 중 임의의 것일 수 있다. 예로서, 이런 아키텍처는 업계 표준 구조(ISA) 버스, 마이크로 채널 아키텍처(MCA) 버스, Enhanced ISA(EISA) 버스, 비디오 전자 공학 표준 협회(VESA) 로컬 버스, 및 메자닌 버스라고 알려진 주변 장치 상호 연결(PCI) 버스를 또한 포함하나, 이에만 한정되지 않는다.
컴퓨터(110)는 전형적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 액세스 될 수 있는, 휘발성 혹은 비휘발성 매체, 분리형 혹은 비분리형 매체 모두를 포함하는 임의 이용가능한 매체일 수 있 다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체와 통신 매체를 포함할 수 있으며, 이에만 한정되지 않는다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어들, 데이터 구조, 프로그램 모듈들, 또는 기타 데이터와 같은 정보를 저장하기 위한 임의의 방법 또는 기술이 구현되는 휘발성 혹은 비휘발성, 분리형 혹은 비분리형 매체 모두를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD, 또는 기타 광디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치, 또는 기타 자기 저장 장치, 또는 컴퓨터(110)에 의해 액세스 될 수 있는 원하는 정보를 저장하는데 사용될 수 있는 기타 다른 매체들을 포함하며, 이에만 한정되지 않는다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어들, 데이터 구조, 프로그램 모듈, 또는 기타 데이터를 반송파 또는 기타 전송 메커니즘 등에 구현한 것이며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"란 용어는 신호의 하나 이상의 특징을 신호에 있는 정보를 부호화하는 방식으로 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크, 유선에 의한 직접 연결과 같은 유선 매체와, 음파, RF, 적외선 같은 무선 매체, 기타 무선 매체를 포함하며, 이에만 한정되지 않는다. 상기의 것들을 임의로 결합한 것도 컴퓨터 판독가능 매체의 범위 내에 또한 포함되어야 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM:130) 및 임의 접근 메모리(RAM:132)와 같은 휘발성 및/또는 비휘발성 형태의 컴퓨터 저장 매체를 포함한다. 시작할 때 등에 컴퓨터(110) 내의 구성 요소들 사이의 정보 전달을 돕는 기본적인 루틴들을 포함하는 기본 입력/출력 시스템(BIOS)은 전형적으로 ROM(131)에 저 장된다. RAM(132)은 전형적으로 프로세싱 유닛(120)에 의해 현재 동작되거나/되는 즉시 액세스 가능한 프로그램 모듈 및/또는 데이터를 포함한다. 예로서, 도 1은 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)를 예시하며, 이에만 한정되지 않는다.
컴퓨터(110)는 또한 기타 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 단지 예로서, 도 1은 비분리형 비휘발성 자기 매체로부터 판독하거나 이것에 기입하는 하드 디스크 드라이브(141), 분리형 비휘발성 자기 디스크(152)로부터 판독하거나 이것에 기입하는 자기 디스크 드라이브(151), 및 CD-ROM 디스크 또는 기타 광매체와 같은 분리형 비휘발성 광디스크(156)로부터 판독하거나 이것에 기입하는 광디스크 드라이브(155)를 예시한다. 예시적인 동작 환경에서 사용될 수 있는 기타 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테입 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테입, 고체 상태 RAM, 고체 상태 ROM 등이 될 수 있으며, 이에만 한정되지 않는다. 하드 디스크 드라이브(141)는 인터페이스(140)와 같은 비분리형 메모리 인터페이스를 통해 시스템 버스(121)에 전형적으로 연결되고, 자기 디스크 드라이브(151) 및 광디스크 드라이브(155)는 인터페이스(150)와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(121)에 전형적으로 연결된다.
도 1에서 예시 및 전술된 드라이브들 및 관련 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 및 기타 데이터를 컴퓨터(110)에 제공한다. 도 1에서, 예를 들면 하드 디스크 드라이브(141)는 운영 체제(144), 애플 리케이션 프로그램들(145), 기타 프로그램 모듈들(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시된다. 이런 컴포넌트들은 운영 체제(134), 애플리케이션 프로그램들(135), 기타 프로그램 모듈들(136), 및 프로그램 데이터(137)와 동일하거나 다를 수 있음에 유의해야 한다. 운영 체제(144), 애플리케이션 프로그램들(145), 기타 프로그램 모듈들(146), 및 프로그램 데이터(147)는 최소한 그것들이 다른 복제본이라는 것을 예시하기 위해 본원에서 다른 숫자를 부여받는다.
사용자는 마우스, 트랙볼, 또는 터치 패드 등의 포인팅 장치(161), 마이크로폰(163), 및 키보드(162) 등의 입력 장치를 통해 명령들과 정보를 컴퓨터(110)에 입력할 수 있다. 기타 입력 장치(도시 생략)는 조이스틱, 게임 패드, 위성 접시형 안테나, 스캐너 등을 포함할 수 있다. 상기 장치들과 기타 입력 장치들은 종종 시스템 버스(121)에 결합된 사용자 입력 인터페이스(160)를 통해 프로세싱 유닛(120)에 연결되지만, 예를 들면, 병렬 포트, 게임 포트, 또는 범용 직렬 버스(USB)와 같은 버스 구조 및 기타 인터페이스에 의해 연결될 수 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(190)와 같은 인터페이스를 통해 시스템 버스(121)에 연결된다. 모니터 이외에, 컴퓨터는 출력 장치 인터페이스(195)를 통해 연결될 수 있는 스피커(197)와 프린터(196) 등의 기타 주변 출력 장치들도 포함할 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터들로의 논리적 연결을 사용하는 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 핸드헬드 장치, 서버, 라우터, 네트워크 PC, 피어 장치, 또는 기타 공동 네트워크 노드일 수 있으며, 컴퓨터(110)에 관련되어 전술된 요소들 중 다수 혹은 전부를 전형적으로 포함한다. 도 1에 도시된 논리적 연결들은 근거리 통신망(LAN:171)과 광역 통신망(173:WAN)을 포함하나, 기타 네트워크들도 포함할 수 있다. 그러한 네트워킹 환경들은 사무실, 기업 규모 컴퓨터 네트워크, 인트라넷 및 인터넷에서 흔한 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스(170)나 어댑터를 통해 LAN(171)으로 연결된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 전형적으로 인터넷과 같은 WAN(173)을 거쳐 통신을 설정하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장 또는 외장될 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메커니즘을 통해 시스템 버스(121)로 연결될 수 있다. 네트워크 환경에서, 컴퓨터(110)에 관련되어 도시된 프로그램 모듈이나 그들의 일부는 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 1은 원격 컴퓨터(180)에 상주하는 원격 애플리케이션 프로그램(185)을 예시하며, 이에만 한정되지 않는다. 도시된 네트워크 연결들은 예시적이며, 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단들이 사용될 수 있다는 것을 인식해야 한다.
도 2는 본 발명의 일 실시예에 따른 기록 시스템(200)의 컴포넌트들을 예시하는 블록도이다. 도 2는 또한 기록기(207) 및 자동 텍스트 생성기(203)를 갖는 시스템(200)을 도시한다. 기록기(207)는 기록 컴포넌트(210), 후크 컴포넌트(hook component;212), 및 사용자 인터페이스(UI) 자동화 컴포넌트(214)를 포함한다. 텍스트 생성기(203)는 텍스트 데이터베이스(220)(또는 데이터 저장소), 및 텍스트 생 성 컴포넌트(230)를 포함한다. 시스템(200)은 사용자 인터페이스(205)와 대화한다. 작자는 사용자 인터페이스(205)의 컨트롤들상에서 수행되는 액션에 대응하는 이미지를 자동으로 기록하도록 시스템(200)의 컴포넌트들을 구성할 수 있고, 이들 액션을 기술하는 텍스트(235)를 자동으로 생성하는 텍스트 생성기(203)를 구성할 수 있다. 작자는 또한 자동으로 생성된 텍스트(235)를 편집하거나, 편집기(240)상에서 작업을 기술하는 최종 텍스트(245)(또는 UI 컨트롤 액션)를 획득하기 위해 스크래치(scratch)로부터 텍스트를 생성할 수 있다. 최종 텍스트(245)는 또한 예시적으로 내장된 이미지를 포함할 수 있다. 이제 도 2의 여러 컴포넌트에 대해 보다 상세히 기술할 것이다.
사용자 인터페이스(205)는, 일 실시예에서, 사용자가 작업을 수행하기 위해 액션을 취하도록 하는, 컨트롤들을 갖는 종래의 그래픽 사용자 인터페이스이다. 사용자 인터페이스(205)는 도 1에 도시된 디스플레이 장치(191)상에 예시적으로 디스플레이된다. 이런 유형의 그래픽 사용자 인터페이스(GUI)는 널리 이용되는 인터페이스 메커니즘이다.
기록 컴포넌트(210)는 일 실시예에서 작자(201), 또는 다른 사용자가 사용자 인터페이스(205)상에서 작업을 수행하도록 하는 애플리케이션 프로그램이며, 작업의 각각의 단계에 대한 이미지를 캡쳐링함으로써 작업을 기록한다. 하기에 보다 상세히 기술된 바와 같이, 작자(201)가 사용자 인터페이스(205)상에서 작업에 관련된 단계들을 수행하는 동안, 기록 컴포넌트(210)는 작자가 사용자 인터페이스(205)상에서 어떤 컨트롤들 및 윈도우들과 대화하는지에 대한 정보를 기록한다. 이 정 보는 도움말 문서 등의 문서에 텍스트를 자동으로 생성하는 텍스트 생성기(230)에 예시적으로 제공된다.
기록 컴포넌트(210)는 후크 컴포넌트(212) 및 사용자 인터페이스(UI) 자동화 컴포넌트(214)를 통해 사용자 인터페이스와 대화한다. 이들 컴포넌트는 기록 컴포넌트(210)와 분리될 수 있거나, 일부 실시예에서, 이들 컴포넌트는 기록 컴포넌트(210)에 통합될 수 있다.
후크 컴포넌트(212)는 일 실시예에서, 컴퓨터에 의해 이용되는 운영 체제 내의 모듈 또는 컴포넌트이다. 후크가 마우스 클릭용으로 설정되는 경우, 예컨대, 마우스 클릭을 나타내는 정보(메시지 등)가 이것을 착신하는 후크 컴포넌트(212)에 전달되고, 그 관련 이미지가 기록 컴포넌트(210)에 의해 기록된 이후에, 이는 마우스 클릭을 수신하도록 등록한 컴퓨터 내의 다른 컴포넌트에 대해 재생된다. 따라서, 일반적으로, 후크 컴포넌트(212)는 운영 체제와 대상 애플리케이션 사이의 버퍼로서 동작한다.
후크 컴포넌트(212)는 예컨대, 싱글 클릭, 더블 클릭, 우측 또는 좌측 클릭, 키보드 액션, 터치-감응 스크린 입력과 같은 수신된 신호의 유형 등의 임의 입력 액션을 실제로 검색하도록 구성될 수 있다. 일단 액션을 나타내는 정보가 기록 컴포넌트(210)에 의해 기록되면, 마우스 클릭을 나타내는 정보는(또는 기록되는 액션은 어느 것이라도) 후크 컴포넌트(212)에 의해 애플리케이션에게 재생된다. 이에 대한 한 가지 이유는 사용자가 제1 액션을 기록하기 전에 제2 액션을 취할 수 있다는 것이다. 제2 액션에 의해 사용자 인터페이스의 상태가 완전히 변경될 수 있어 서, 제1 액션의 부적절한 기록을 초래한다. 일단 기록이 완료되면, 제1 마우스 메시지를 착신하고 이를 재생함으로써, 이는 제1 액션이 적절히 기록될 것을 보장한다.
후크 컴포넌트(212)에 의해 수행되는 기능(즉, 마우스 클릭을 리스닝하고 이를 재생함)은 예시적으로 분리된 쓰레드상에서 수행된다. 이는 모든 사용자 인터페이스 액션(예컨대, 마우스 클릭, 키보드 액션 등)이 적절히 기록되고 어떤 손상없이 재생될 것을 보장한다. 또한, 후크 컴포넌트(212)의 기록 및 재생 메커니즘은 예시적으로 운영 체제 내의 함축적인 임의 타임아웃 특징을 오버라이드할 수 있다. 이는 운영 체제의 타임아웃 기간이 너무 짧아서 액션의 적절한 기록을 고려하지 못하는 경우 필요할 수 있다.
사용자 인터페이스 자동화 컴포넌트(214)는, 예시적으로, 작자 또는 사용자에 의해 수행되는 전체 작업에 대한 세부(atomic) 단계들을 사용자 인터페이스(205)를 통해 해석하도록 구성된 컴퓨터 프로그램이다. 일 실시예에서, 사용자 인터페이스 자동화 컴포넌트(214)는 워싱턴 레드몬드 소재의 마이크로소프트사에 의한 마이크로소프트 사용자 인터페이스 자동화(Microsoft User Interface Automation)를 이용하여 구현된 GUI 자동화 모듈이다. 이 모듈은 시각적 사용자 인터페이스에 대한 정보를 액세스하여 시각적 사용자 인터페이스와 프로그램적으로 대화하기 위한 프로그램적 방식을 제공한다. 그러나, 시스템 설정에 따라, 사용자 인터페이스 자동화 컴포넌트(214)는 그래픽 사용자 인터페이스를 프로그램적으로 탐색하여 사용자 인터페이스상에서의 명령들을 검출(즉, 선택적으로 GUI를 프로그 램적으로 탐색하여 수행 및 실행)할 수 있는 임의 애플리케이션을 이용하여 구현될 수 있다.
따라서 사용자 인터페이스 자동화 컴포넌트(214)는 작업 순서대로 사용자 인터페이스(205)상에서 작자(201)(또는 다른 사용자)에 의해 수행되는 원하는 작업에 관련된 각각의 단계를 검출한다. 예를 들어, 하기에 보다 상세히 기술한 바와 같이, 작업이 사용자가 새로운 메뉴 또는 윈도우를 디스플레이하는 GUI상에서 버튼을 클릭할 것을 필요로 하는 경우, 사용자 인터페이스 자동화 컴포넌트(214)는 어떤 컨트롤이 사용자 인터페이스(205)상에서 마우스 커서의 위치에 위치되는지와, 그 크기 및 그 부모 윈도우를 판정한다. 기록 컴포넌트(210)는 후크 컴포넌트(212)로부터의 정보(예컨대, 컨트롤의 유형, 컨트롤의 이름 및 상태)를 이용하여 단계를 수행하는데 사용되었던 컨트롤의 이름 및 속성을 기록한다. 이 정보는 사용자 인터페이스 자동화 컴포넌트(214)와 후크 컴포넌트(212)로부터 기록 컴포넌트(210)에 제공되어 기록 컴포넌트(210)가 작자에 의해 단계를 수행하기 위해 사용되었던 컨트롤 또는 버튼의 이미지를 기록할 수 있게 된다. 이미지를 획득하기는 도 3에 관련하여 하기에 보다 상세히 기술된다.
텍스트 생성 컴포넌트(230)는 기록 프로세스 동안 수행 또는 실행되는 액션들을 기술하는 자연어 텍스트를 생성하도록 구성된 프로그램 또는 모듈이다. 텍스트 생성 컴포넌트(230)는 기록 컴포넌트(210)에 의해 기록되는 기록된 이미지와 다른 정보를 이용하여 텍스트 데이터베이스(220)를 검색하고, 텍스트 데이터베이스(220)로부터 기록된 단계에 해당하는 올바른 템플릿 또는 엔트리를 선택한다.
텍스트 데이터베이스(220)는 예시적으로 텍스트 생성기(230)에 의해 검색될 수 있는 데이터베이스 또는 다른 정보 저장 시스템이다. 텍스트 데이터베이스(220)는 사용자 인터페이스(205)상에서 이용가능한 컨트롤들에 관련된 정보를 포함한다. 이런 정보는 예컨대, 컨트롤의 이름, 컨트롤의 유형, 그 컨트롤상에서 수행되는 액션, 및 자연어 문장 등의 액션의 텍스트적 기술을 포함할 수 있다.
일부 실시예에서, 엔트리에 대한 텍스트적 기술은 복수의 언어로 제공된다. 텍스트적 기술이 복수의 언어로 제공될 때, 올바른 언어가 선택되도록 하는 언어 식별자가 각 엔트리에 대해 제공된다.
하지만, 시스템의 요건에 따라, 다른 정보가 텍스트 데이터베이스(220)에 제공될 수 있다. 일 실시예에서, 텍스트 데이터베이스(220) 내의 일부 엔트리들은 순차적으로 수행되는 복수의 컨트롤에 의해 예시되는 2개 이상의 액션에 관련된 정보를 갖는다. 텍스트 데이터베이스(220) 내의 단일 엔트리가 복수의 컨트롤상에서 복수의 액션을 나타낼 때, 그 엔트리에 대한 텍스트는 단일 문장으로서 모든 컨트롤상에서 수행되는 액션에 대한 자연어 기술을 포함한다. 2개 명령에 대한 기술을 단일 문장으로 결합함으로써, 최종 텍스트 문서의 가독성을 향상시킨다.
일 실시예에서, 텍스트 데이터베이스(220)는 확장성 생성 언어(Extensible Markup Language;XML)로 기입된다. 엔트리 각각에 대한 데이터는 일련의 서브엔트리로서 저장될 수 있고, 엔트리 중 서브엔트리 각각은 작업을 식별하는데 필요한 개별 정보 조각을 지칭한다. 하지만, 다른 포맷이 데이터를 저장하는데 이용될 수 있다.
일 실시예에서, 텍스트 생성 컴포넌트(230)는 텍스트 데이터베이스(220) 내의 엔트리들을 검색할 때 2개 이상의 기록된 액션을 보게 된다. 이는 보다 유동성있는 텍스트 문서를 제공하기 위해 행해질 수 있다. 예를 들어, 양호한 절차적 문서화는 종종 2개 이상의 단계를 단일 문장으로 결합하여 가독성을 강화한다. 텍스트 생성 컴포넌트(230)가 텍스트 데이터베이스(220) 내에 기록된 정보와 일치하는 2개 이상의 정보를 식별하는 경우, 텍스트 생성 컴포넌트(230)는 공지된 방법을 이용하여 데이터베이스 내의 어느 엔트리를 선택할지를 각각의 엔트리의 점수화에 근거하여 단계들을 명확히하고 최고 점수를 갖는 엔트리를 선택함으로써, 결정한다.
일 실시예에 따르면, 사용자 인터페이스상에서 구동되는 컨트롤의 유형과 수행된 액션에 근거하여, 텍스트 생성 컴포넌트(230)는 실행된 컨트롤 유형과 액션에 일치하는 엔트리를 찾기 위해 텍스트 데이터베이스(220)를 검색한다. 일단 텍스트 데이터베이스(220) 내에서 일치가 식별되면, 텍스트 생성 컴포넌트(230)는 텍스트 데이터베이스(220)로부터 액션에 대한 관련 자연어 기술을 획득하고, 이를 문장 지시(sentence instruction)로서 생성된 텍스트 문서(235) 내에 저장한다. 다른 실시예에서, 텍스트 생성 컴포넌트(220)는 또한 UI 자동화 모듈(214)에 의해 제공된 정보에 근거하여 텍스트 문서의 실행가능한 버전을 생성할 수 있다.
텍스트적 기술을 텍스트 데이터베이스(235)로부터 선택할 때, 텍스트 생성 컴포넌트는 또한 컨트롤의 상태를 볼 수 있다. 이는 컨트롤이 체크 상자(checkbox), 혹은 확대가능하거나 축소가능한 트리일 때 중요할 수 있다. 컨트롤상의 액션이 원하는 결과에 관계없이 동일할 때, 단순히 상자에서 클릭하여 액션 을 기술하는 것이 부적절할 수 있다. 따라서, 이들 경우에는, 컨트롤의 새로운 상태가 선택된 텍스트에 영향을 미칠 것이다. 예를 들어, 컨트롤이 체크 상자이고 이것이 선택해제되는 경우, 일치되는 텍스트는 컨트롤의 새로운 상태 외에 컨트롤의 이름에 근거할 것이다.
텍스트 편집기(240)는 정보 또는 텍스트를 변경 또는 정정하거나, 자동으로 생성된 텍스트(235)에 추가하도록 구성되는 편집기이다. 텍스트 생성기(230)에 의해 생성되는 결과적 텍스트와, 작자에 의해 수행되는 액션에 따라, 텍스트를 편집하여 그 가독성을 보다 강화시키는 것이 필요할 수 있다. 따라서, 텍스트 편집기(240)는 생성된 텍스트(235)를 수신하고 작자(201)가 생성된 텍스트를 편집하도록 허용한다.
텍스트 편집하기는 예컨대, 문법적 필요성으로 인해, 또는 기록된 스텝 중 하나가 사용자 액션을 요구하고, 시스템이 이것이 기록되었던 시점에 사용자 액션에 대한 기술을 요청하지 않았기 때문에 필요로 될 수 있다. 이런 경우(사용자 입력이 요구되는 경우), 일 실시예에 따라 기록되는 작업을 수행하면서, 텍스트 생성기(230)는 단지 사용자가 이 단계에서 행해야만 하는 것에 대한 지시/기술을 작자가 제공하도록 텍스트 내에 공간을 제공한다.
예를 들어, 사용자에 의해 수행되고, 또 기록 컴포넌트에 의해 기록되는 작업이 컴퓨터 스크린상에서 배경 패널을 변경한다고 가정한다. 이는 사용자가 배경 패턴을 선택할 것을 요구한다. 따라서, 배경을 변경하기 위한 기록된 사용자 액션을 위해 텍스트 데이터베이스에 의해 반환되는 텍스트는 "Please select [insert description of action]"일 수 있고, 작자는 "Please select the desired background from the list"라는 텍스트를 편집할 것이다. 또한 편집하기 단계 동안, 작자(201)는 전체 작업에 대한 기술을 작업을 기록하기 이전에 이것이 제공되지 않았던 경우 제공할 수 있다. 일단 텍스트를 편집하고 나면, 최종 텍스트(245)가 작성 도구(200)로부터 출력되고, 적절한 저장 모드에서 저장되어, 원할 때 사용자가 최종 텍스트를 검색하게 된다.
도 3은 본 발명의 일 실시예에 따른 시스템의 동작 방법을 보다 상세히 예시하는 흐름도이다. 먼저, 작자(201)가 기록 컴포넌트(210)를 개시한다. 이는 도 3에서 블록(400)에 의해 나타난다. 이를 행하기 위해, 작자(201)는 도 4에 도시된 컨트롤(402) 등의 컨트롤을 단순히 구동한다. 기록을 시작하기 위해 작자(201)가 기록(Record) 버튼(404)을 구동할 수 있다. 정지(Stop) 버튼(406)은 기록을 정지하기 위해 구동된다. 하기에 기술된 바와 같이, 작자(201)는 텍스트 편집기(240)에서 텍스트를 편집 동안에 사용자 액션에 대한 기술을 삽입할 수 있다. 이를 행하기 위해, 사용자는 액션(Action) 버튼(408)을 구동한다. 마찬가지로, 하기에 기술된 바와 같이, 작자(201)는 자동으로 생성된 텍스트를 편집할 수 있다. 이는 도 4에서 텍스트(Text) 버튼(410)을 구동함으로써 행해질 수 있다. 또한, 일부 실시예에서, 사용자가 값을 설정할 수 있도록 하는 추가 버튼이 제공될 수 있다. 이는 올바른 텍스트가 즉시, 예컨대, 런타임 시에, 사용자가 텍스트를 편집 상자 내에 타이핑할 필요가 있을 때, 생성될 수 있도록 해준다. 물론, 기타 또는 다른 컨트롤들이 마찬가지로 이용될 수 있다.
도 3을 다시 참조해 보면, 일단 작자(201)가 기록 컴포넌트(210)를 개시하면, 시스템은 사용자가 사용자 인터페이스(205) 상에서 단순히 액션을 취하도록 단순히 대기한다. 도 2는 사용자가 작자(201)임을 나타내고 있지만, 사용자는 다른 사용자일 수 있음을 인식해야 한다.
일단 사용자가 사용자 인터페이스(205)상에서의 액션(사용자 인터페이스상에서의 컨트롤 요소를 조작하는 등)을 취하면, 후크 컴포넌트(212)는 사용자 액션을 나타내는 메시지 또는 다른 신호를 수신한다. 후크 컴포넌트(212)에 관련하여 전술한 바와 같이, 후크 컴포넌트(212)는 메시지를 착신하고 그 메시지를 기록용 큐에 저장한다. UI(205)상에서 액션을 취하는 사용자는 도 3의 블록(412)에 의해 지시된다.
기록 컴포넌트(210)는 UI 자동화 컴포넌트(214)로부터 이미지 식별 정보를 수신한다. 이는 도 3의 블록(414)에 의해 지시된다. 일 예시적인 실시예에서, UI 자동화 컴포넌트(214)는 기록 컴포넌트(210)가 사용자 인터페이스(205)에서 사용자에 의해 취해지는 액션을 나타내거나 이에 대응하는 이미지를 디스플레이 스크린상에 기록할 수 있도록 하는 수많은 정보 항목을 기록 컴포넌트(210)에게 제공한다. 일 예시적인 실시예에서, 이들 정보 항목은 사용자가 구동했거나 달리 조작했던, 디스플레이 스크린상의 컨트롤 요소의 위치, 그 컨트롤 요소의 크기, 및 그 컨트롤 요소를 포함하는 부모 윈도우이다.
기록 컴포넌트(210)는 사용자 인터페이스(205)와 연관되고 사용자에 의해 취해진 액션을 반영하거나 이에 대응하는 스크린 샷을 나타내는 실제 이미지 정보를 획득한다. 이는 도 3의 블록(416)에 의해 지시된다.
이 단계를 수행하기 위해, 기록 컴포넌트(210)는 시스템의 동작을 향상시키기 위해 수많은 일을 행할 수 있다. 예를 들어, 기록 컴포넌트(210)는 사용자에 의해 조작된 컨트롤 요소보다 많은 실제 이미지 정보(또는 실제 스크린 샷)를 기록하는 것이 도움이 된다고 판정할 수 있다. 이는 예컨대, 사용자에 의해 조작되는 디스플레이상에서 현재 2개 이상의 유사한 컨트롤 요소가 존재하는 경우, 사실일 수 있다. 예를 들어, 사용자가 사용자 인터페이스상에서의 "OK 버튼"을 클릭했다고 가정한다. 하지만, 그 시점에 디스플레이 스크린상에는 2개 이상의 "OK 버튼"이 존재할 수 있다. 따라서, 여러 "OK 버튼" 중에서 판별하기 위해, 기록 컴포넌트(210)는 사용자에 의해 조작되는 특정 "OK 버튼"에 대해서뿐만 아니라 그 "OK 버튼" 주위의 소정 개수의 화소에 대해서 실제 스크린 샷 정보를 획득할 수 있다. 이는 단순히 컨트롤의 이미지 그 자체 이상의 문맥(context)을 이미지에 제공한다.
마찬가지로, 기록 컴포넌트(210)는 또한 컨트롤 요소를 포함하는 전체 부모 윈도우의 스크린 샷 이미지를 기록할 수 있다. 물론, 이는 사용자가 조작했던 컨트롤 요소를 구체적으로 식별하는데 이용될 수 있는 상당한 여분의 문맥을 포함한다.
추가 문맥이 기록 컴포넌트(210)에 의해 기록될 필요가 있는가를 판정하기 위해, 기록 컴포넌트(210)는 매우 다양한 여러 기술들 중 하나를 이용하여 이런 판정을 행할 수 있다. 예를 들어, 기록 컴포넌트(210)는 귀납법(heuristics)을 이용하여 기록될 문맥의 량을 식별할 것이다. 귀납법은 조작되는 컨트롤 요소의 크기 및 형태, 조작되는 컨트롤 요소의 특정 기능, 스크린상에서의 컨트롤 요소의 위치에 근거할 수 있거나(예컨대, 컨트롤 요소가 상단 좌측 구석에 있는 경우, 기록 컴포넌트(210)는 컨트롤 요소의 하단 우측상에서 더 많은 화소를 취할 수 있음), 귀납법은 컨트롤 요소가 위치되는 장소와 컨트롤 요소에 의해 어떤 기능이 수행되는지에 관계없이, 컨트롤 요소 주위에서 취해진 고정 개수의 화소를 단순히 반영할 수 있다.
기록 컴포넌트(210)는 공지된 기술을 이용하여 실제 스크린 샷 이미지 정보를 획득할 수 있다. 예를 들어, 대다수 운영 체제에서는, 애플리케이션 또는 다른 컴퓨팅 컴포넌트가 현재 디스플레이되는 스크린 샷 정보를 획득하게끔 하는 공개된 애플리케이션 프로그래밍 인터페이스(API)가 존재한다. 따라서, 일 예시적인 실시예에서, 기록 컴포넌트(210)는, 일단 이것이 그것이 원하는 스크린샷 이미지 정보의 좌표, 문맥 정보의 량, 및 선택적으로 컨트롤 요소의 부모 윈도우를 알게 되면, 정보를 획득하기 위해 API 호출을 행한다.
실제 이미지 정보를 획득한, 기록 컴포넌트(210)는 실제 이미지 정보를 나중 사용을 위해 기록한다. 이는 도 3의 블록(418)에 의해 지시된다. 물론, 이 시점에서 기록 컴포넌트(210)가 UI 자동화 컴포넌트(214)에 의해 제공되는 다른 정보를 기록할 수 있음을 또한 인식해야 한다. 예를 들어, UI 자동화 컴포넌트(210)는 예시적으로 기록 컴포넌트(214)에 컨트롤의 이름, 컨트롤의 유형, 그 컨트롤상에서 수행되는 액션, 수행되는 조작 유형(마우스 클릭, 마우스 휠 회전, 키보드 키스트로크(keystrokes), 터치 패드 입력 등)을 제공한다. 이런 정보는 기록 컴포넌 트(210)에 의해 모두 기록될 수 있다.
본 발명의 일 실시예에 따르면, 텍스트 생성 컴포넌트(230)는 텍스트 데이터베이스(220)에 관련하여, 캡쳐된 이미지와 연관되며 사용자 인터페이스(205)상에서 사용자에 의해 취해지는 액션에 연관되는 텍스트를 자동으로 생성한다. 이들 항목을 사용하는 일 실시예에서, 기록 컴포넌트(210)는 캡쳐된 실제 이미지 정보를 텍스트 생성 컴포넌트(230)에 전송한다. 이는 도 3의 블록(420)에 의해 지시된다. 자동으로 생성된 텍스트는 예시적으로 사용자 인터페이스(205)의 복수의 조작을 필요로 하는 전체 작업을 수행하기 위해 사용자 인터페이스(205)의 사용자 조작 각각에 대한 단계별 지시에 대응하는 기입된 프로시저를 제공한다.
텍스트를 자동으로 생성하는 위한 일 실시예가 도 5 내지 도 8에 관련하여 하기에 기술된다. 요약하자면, 이런 텍스트를 생성하기 위해, 텍스트 생성 컴포넌트(230)는 임의 적합한 방법을 사용할 수 있다. 일 예시적인 방법에서, 텍스트 생성 컴포넌트(230)는 기록 컴포넌트(210)로부터 수신된 정보에 대응하는 엔트리를 찾기 위해 텍스트 데이터 저장소(220)를 검색한다. 예를 들어, 텍스트 데이터 저장소(220)는 사용자에 의해 조작되는 사용자 인터페이스상에서의 다른 항목, 또는 컨트롤 유형, 액션 유형, 및 그 액션에 대응하는 텍스트를 포함하는 복수의 엔트리를 포함하는 XML 데이터베이스일 수 있다. 물론, 다른 데이터 저장 방법을 이용하여 데이터 저장소(220)를 구현할 수 있으며, 데이터 저장소(220)는 마찬가지로 추가적인 또는 서로 다른 정보를 포함할 수 있다.
예를 들어, 기록 컴포넌트(210)로부터 수신된 정보가 사용자가 "OK 버튼"을 클릭(또는 호출)했음을 나타낸다고 가정한다. 그런 다음, 텍스트 생성 컴포넌트(230)는 이런 유형의 액션에 일치하는 엔트리를 찾기 위해 텍스트 데이터 저장소(220)를 검색한다. 일단 일치가 발견되면, 텍스트 생성 컴포넌트(230)는 텍스트 데이터 저장소(220) 내의 그 엔트리로부터 액션의 유형을 기술하는 텍스트를 검색한다. 예컨대, 텍스트는 단순히 "Click OK"일 수 있다.
어느 경우라도, 텍스트 생성 컴포넌트(230)는 예시적으로 사용자 인터페이스(205)상에서 취해지고 기록 컴포넌트(230)에 의해 기록되는 사용자 액션을 기술하는 텍스트를 자동으로 생성한다. 이는 도 3의 블록(422)에 의해 지시된다.
생성된 텍스트는 도 2의 블록(235)에 의해 지시된다. 일 예시적인 실시예에서, 기록 컴포넌트(210)에 의해 기록된 이미지는 생성된 텍스트(235)에 자동으로 내장되거나, 적어도 생성된 텍스트(235)와 연관되어, 프로세스 중 나중 다른 것에 관련되어 재호출되고 디스플레이될 수 있게 된다.
다음에, 기록 컴포넌트(210)에 의해 기록된 이미지 데이터와 자동으로 생성된 텍스트는 편집기 컴포넌트(240)에 제공된다. 기록 컴포넌트(210)에 의해 기록된 이미지와 자동으로 생성된 텍스트는 편집기(240)의 디스플레이 스크린상에 예시적으로 디스플레이되고, 작자(210)는 이들 이미지에 대응하는 텍스트를 생성할 수 있게 된다. 생성 컴포넌트(230)에 의해 생성된 텍스트와 이미지를 디스플레이하기는 도 3의 블록(424)에 의해 지시된다.
작자는 자동으로 생성된 텍스트를 수정하거나 새로운 텍스트를 생성할 수 있다. 이는 도 3의 블록(436)에 의해 지시된다. 최후에, 최종 텍스트(245)가 원하 는 포맷 또는 방식에 따라 출력 또는 저장된다. 최종 텍스트(245)는 내장된 캡쳐된 이미지를 선택적으로 포함할 수 있다. 이는 도 3의 블록(438)에 의해 지시된다.
자동으로 텍스트를 생성하도록 시스템(200)을 설정하기 위해, 작자는 먼저 도 5에서 예시된 윈도우와 유사한 윈도우를 오픈함으로써, 기록 컴포넌트(210)를 활성화한다. 이 시점에, 작자는 생성되는 문서의 제목 등의 정보와 작업에 관한 임의 입문 정보를 포함하도록 라인(450 및 452)에 의해 지시된 스크린의 위치를 편집할 수 있다. 하지만, 이런 정보는 나중에 편집하는 동안에 텍스트 문서에 추가될 수도 있다.
시스템(200)이 이미지를 기록하기 시작할 때, UI 자동화 컴포넌트(214)는 사용자 인터페이스(205)상에서 이용가능한 사용자 인터페이스 요소를 판정한다. 또한 기록 컴포넌트(210)는 UI 자동화 컴포넌트(214)로부터 제공되는 정보를 이용하여 액세스되는 컨트롤로서 어떤 컨트롤이 현재 사용자 인터페이스상에서 식별되는지에 대한 지시를 제공한다. 컨트롤에 대한 이런 하이라이팅은 도 6의 참조 부호(454)에 의해 예시된다.
도 7은 본 발명의 일 실시예에 따른 수신된, 기록된 단계에 대한 텍스트를 생성하기 위해 수행되는 단계들을 보다 상세히 예시하는 흐름도이다. 블록(460)은 기록된 단계에 관련된 정보가 기록 컴포넌트(210)로부터 텍스트 생성 컴포넌트(230)에 수신되는 것을 예시한다.
일단 기록된 단계에 관련된 정보가 텍스트 생성 컴포넌트(230)에 수신되면, 텍스트 생성 컴포넌트(230)가 수신된 명령에 일치하는 엔트리를 찾기 위해 텍스트 데이터베이스(220)를 검색하는 것으로 진행한다. 이는 블록(462)에 의해 지시된다. 일 실시예에서, 텍스트 데이터베이스(220)는 컨트롤 유형 또는 이와 대화하는 다른 항목들, 액션 유형, 컨트롤의 새로운 상태(예컨대, 체크됨, 체크해제됨, 확대됨, 축소됨 등), 및 액션에 대한 대응하는 텍스트를 포함하는 복수의 엔트리를 포함하는 XML 데이터베이스이다. 하지만, 다른 데이터 저장 방법도 텍스트를 저장하는데 이용될 수 있다. 또한, 다른 정보가 텍스트 데이터베이스(220)에 보유될 수 있다. 일 실시예에 따른 텍스트 데이터베이스의 일부에 대한 예시가 하기의 표 1에 제공된다.
Figure 112006089828184-PCT00001
예를 들어, 기록 컴포넌트로부터 수신된 명령에 대한 정보는 action type = "invoke", control type = "button", control name = "click OK"라고 가정하면, 텍스트 생성 컴포넌트(230)는 텍스트 데이터베이스(220)를 검색하여 이런 정보와 일치하는 엔트리를 발견한다. 그런 다음 이것은 "click OK"에 대응하는 엔트리로부터 텍스트를 검색해 낸다. 일치된 엔트리와 연관된 텍스트를 획득하기는 블록(464)에 도시되어 있다.
당해 단계의 기록 동안, 작자가 도 4에 도시된 사용자 인터페이스(402)상에서 사용자 액션 버튼(408)을 선택함으로써 사용자 액션 단계인 단계를 지정하는 경우, 또는 텍스트 데이터베이스(220) 내의 엔트리가 액션이 사용자 액션임을 나타내는 경우, 텍스트 생성 컴포넌트(230)는 일 실시예에서 작자가 액션에 대한 기술을 획득된 텍스트에 추가하게끔 할 수 있다. 이는 블록(466)에 도시되어 있다. 작자는 블록(468)에서 원하는 텍스트를 제공할 수 있다. 하지만, 작자가 이 단계를 무시하고 그 정보를 편집 단계 동안에 나중에 추가할 수도 있다. 임의 추가된 텍스트는, 블록(470)에서, 텍스트(235)에 추가된다.
요구되는 사용자 액션이 존재하지 않는 경우, 또는 필요한 사용자 액션 정보를 작자가 제공하지 않는 경우, 텍스트 생성기(230)는 새로이 획득된 텍스트를 텍스트 문서에 추가한다. 이는 블록(472)에 도시되어 있다.
생성된 텍스트에 대한 예는 참조 부호(474 내지 486)에 의해 도 8에 도시되어 있다. 이런 텍스트는 사용자에게 원하는 작업에 대한 단계별 지시를 제공한다. 이 텍스트는 텍스트 데이터베이스(220) 및 텍스트 생성 컴포넌트(230)에 관련하여, 또는 수신된 입력 명령들로부터 자동으로 텍스트를 생성하도록 하는 임의 방법에 따라 기술될 때 생성될 수 있다. 자동으로 생성된 텍스트는 캡쳐된 이미지와 함께 편집을 위해 작자에게 제시될 수 있다.
도 9는 캡쳐된 이미지와 자동으로 생성된 텍스트 모두가 편집기(240)에서 작자(201)에게 디스플레이될 수 있는 한 가지 방법을 예시하는 스크린 샷이다. 도 9는 본 발명에 관련된 2개의 주요 부분을 포함한다. 제1 부분은 텍스트 디스플레이부(426)를 포함하고, 제2 부분은 이미지 디스플레이부(428)를 포함한다. 텍스트 디스플레이부(426)는 선택적인 자동으로 생성된 텍스트(235) 또는 작자(201)에 의해 작성되는 텍스트를 디스플레이한다. 이미지 디스플레이부(428)는 기록 컴포넌트(210)에 의해 기록된 캡쳐된 스크린 샷 이미지를 디스플레이한다.
텍스트가 자동으로 생성되는 일 실시예에서, 참조 부호(235)의 텍스트는 디스플레이부(426)에 도시되고, 이는 편집기 컴포넌트(240)를 이용하여 작자에 의해 편집될 수 있다(이에 대한 한 가지 스크린샷이 도 9에 도시됨). 따라서, 작자는 디스플레이부(426)상에 디스플레이된 액션 또는 다른 항목들 각각을 하이라이팅할 수 있다. 하이라이팅된 항목에 연관된 이미지가 디스플레이부(428)에 디스플레이된다. 따라서, 도 9에 도시된 일 실시예에서, 작자는 접근성 옵션(Accessibility Options) 컨트롤을 구동하는 것에 대응하는 액션 번호 2를 하이라이팅했으며, 대응하는 이미지가 디스플레이부(428)에 디스플레이된다. 사용자는, 사용자 인터페이스(205)에서 사용자에 의해 수행되는 단계에 대한 전체 기술을 획득하기 위해, 원한다면, 텍스트를 입력하거나 텍스트를 수정할 수 있다. 도 9에 도시된 일 실시예에서, 사용자는 사용자 인터페이스(205)상에서 접근성 옵션 컨트롤(430)을 구동했다. 기록 컴포넌트(210)가 접근성 옵션 컨트롤에 대응하는 컨트롤 상자(430)뿐만 아니라, 접근성 옵션 컨트롤을 둘러싼 수많은 화소를 포함하는 보다 큰 문맥 상자(432)도 획득하였음을 알 수 있다. 문맥 상자(432)는 접근성 옵션 컨트롤(430) 주위의 추가적 문맥을 디스플레이하여 이것이 스크린상에서 보다 쉽게 위치찾기될 수 있도록 해준다.
도 9는 또한 기록 컴포넌트(210)가 접근성 옵션 컨트롤(430)을 포함하는 부모 윈도우(434)를 획득하였음을 도시한다. 따라서, 작자는 정확히 어느 컨트롤이 사용자 인터페이스(205)상에서 사용자에 의해 조작되었는지와, 그 컨트롤이 그 부모 윈도우 상의 어디에 존재하는지를 알 수 있다. 이는 작자가 사용자 인터페이스상에서 취해지는 액션을 기술하는 텍스트를 생성 또는 수정하도록 도와 준다.
이런 관점에서 기술된 본 발명이 매우 다양한 다른 방식에 이용될 수 있음을 인식해야 한다. 예를 들어, 본 발명은 캡쳐된 이미지를 텍스트 내에 또는 도움말 텍스트 내에 내장한 콘텐츠(도움말 콘텐츠 등)을 생성하는데 이용될 수 있다. 이런 한 가지 예가 도 10에 도시되어 있다. 프로세스 내의 각각의 단계는 그 단계를 달성하기 위해 행해야 할 것을 기술하는 텍스트뿐만 아니라, 그 단계를 수행할 위치를 나타내는 시각적 이미지도 포함하는 것을 알 수 있다. 텍스트에 내장된 이미지를 생성하는 이런 실시예에서는, 내장된 이미지를 갖는 최종 텍스트(245)가 출력된다. 이는 도 4의 선택적인 블록(438)에 의해 지시된다.
하지만, 본 발명이 텍스트에 이미지를 내장시키는데만 이용될 필요는 없다. 대신, 본 발명은 작자가 취해진 단계에 대한 기입된 기술을 생성하고 이에 대한 이미지가 캡쳐되는 경우, 단순히 캡쳐된 이미지를 작자에게 디스플레이하는데 이용될 수 있다. 예를 들어, 작자는 컴퓨터로부터 바이러스를 제거 또는 정정하는 프로세스를 기술하는 텍스트를 생성할 수 있다. 작자는 그 텍스트에 내장된 이미지를 포함시키길 원하지 않을 수 있다. 그런 경우, 이미지는 단순히 디스플레이되고, 자동으로 생성된 텍스트가 또한 선택적으로 작자에게 디스플레이되며, 작자는 이것이 제공되는 일 실시예에서 스크래치로부터 텍스트를 생성하거나 자동으로 생성된 텍스트를 수정할 수 있다.
어느 경우라도, 최종 텍스트(245)는 콘텐츠가 최종으로 어떤 방식으로 공개되든지 간에 예시적으로 생성 또는 번역된다. 이는 예컨대, MAML(Microsoft Assistance mark up language), HTML, 또는 일부 다른 XML 포맷일 수 있다.
도 11은 2개의 서로 다른 시스템상에서(또는 2개의 서로 다른 구성을 갖는 시스템상에서) 작업을 수행하기 위해 사용자에 의해 취해지는 단계들을 기술하는 콘텐츠(최종 텍스트(245) 등)을 생성하기 위한 시스템(500)의 블록도이다. 배경기술에서 기술한 바와 같이, 전체 작업을 수행하기 위해 사용자에 의해 취해지는 단계들을 기술하는 콘텐츠를 생성하기 위한 종래 시스템은 임의 소정의 작업을 수행하기 위해 취해져야 하는 단계들이 그 작업을 수행하는 컴퓨터의 구성에 근거하여 변경될 수 있다는 사실로 인해 어려움을 가졌다.
따라서, 수행될 단계들을 나타내는 이미지가 캡쳐되는 경우라도, 이들 단계를 기술하는 텍스트가 자동으로 또는 수동으로 생성되는 경우라도, 그 단계들은 컴퓨터에 의해 수행되는 특정 운영 체제에 근거하여, 혹은 컴퓨터 구성에 있어서의 임의 서로 다른 차이점에 근거하여 완전히 변경될 수 있다. 실제로, 운영 체제 또는 컴퓨터에 의해 실행되는 다른 소프트웨어의 버전 번호가 서로 다른 경우 조차도, 요구되는 단계들이 서로 다를 수 있다. 물론, 매우 다양한 구성상의 기타 차이에 의해 소정의 작업을 수행하는데 요구되는 단계들이 마찬가지로 서로 다를 수 있다. 예를 들어, 사용자 인터페이스는 머신의 서로 다른 상태에 따라 달라질 수 있다. 예로서, 원격 머신에 접속되는 일련의 사용자 인터페이스 단계들은 컴퓨터가 네트워크 도메인 상에 있는지 또는 워크 그룹상에 있는지에 따라 달라질 수 있다.
따라서, 소정의 작업을 수행하는데 요구되는 단계들을 자동으로 기록하기 위해, 도 2에 도시된 기록 시스템은 콘텐츠가 의도하는 서로 다른 구성 전부를 갖도록 구성되는 머신상에 단계들을 기록해야 한다. 작업을 수행하기 위한 기록된 단계들은, 이런 서로 다른 구성 전부에 대해 기록되며, 서로 다른 구성하에서 작업을 수행하기 위한 방법을 기술하는 하나의 전체 콘텐츠 세트로 결합되어야 한다. 선택적으로, 콘텐츠를 사용자에게 최종적으로 디스플레이하는 시스템은 사용자 시스템의 구성을 검출할 것이고, 관련 콘텐츠만(예컨대, 최종 사용자에 관련된 단계들만)을 디스플레이할 것이다.
따라서, 시스템(500)은 각각이 도 2에 도시된 시스템 등의 기록 시스템(200)을 포함하는 제1 컴퓨터(502)와 제2 컴퓨터(504)를 도시한다. 컴퓨터(502)는 구성 A와 같이 본원에 지시된 제1 구성에 따라 예시적으로 구성된다. 한편, 컴퓨터(504)는 구성 B와 같이 본원에 지시된 제2 구성에 따라 구성된다.
구성 A 및 B는 기록되고 이에 대해 콘텐츠가 작성되는 소정의 작업을 수행하는데 요구되는 단계들에 영향을 주고, 임의 유형의 서로 다른 구성일 수 있다. 따라서, 예로서, 구성 A는 네트워크 도메인상에 있는 컴퓨터 일 수 있고, 반면에 구성 B는 워크 그룹상에 컴퓨터이다. 마찬가지로, 구성 A는 제1 운영 체제상에서 실행되는 컴퓨터일 수 있고, 반면에 구성 B는 제2 운영 체제상에서 실행되는 컴퓨터이다. 마찬가지로, 구성 A는 운영 체제의 제1 버전상에서 동작하는 컴퓨터일 수 있고, 반면에 구성 B는 동일한 운영 체제의 다른 버전상에서 동작하는 컴퓨터이다. 콘텐츠의 작자가 원하는 대로, 다른 상이한 구성들이 마찬가지로 이용될 수 있다. 물론, 컴퓨터(502 및 504)는 실제로 서로 다른 컴퓨터 또는 가상 머신들상에 설치된 컴퓨터일 수 있음을 또한 인식해야 한다.
도 11에 도시된 기록 시스템(200)은 도 2에 도시된 시스템과 동일할 수 있고, 따라서 같은 번호를 부여받는다. 하지만, 하기에 보다 상세히 기술된 바와 같이, 자동 텍스트 생성부(207)는 작성 컴퓨터(506)상에 배치될 수 있으며, 이런 경우 하나의 자동 텍스트 생성부(207)만이 필요로 된다.
컴퓨터(502 및 504)가 예시적으로 작성 컴퓨터(506)에 연결된다. 작성 컴퓨터(506)는 예시적으로 임포터(importer) 메커니즘(508)과 콘텐츠 편집기 컴포넌트(도 2에 관련하여 기술된 편집기 컴포넌트(240) 등)를 포함한다.
작성 컴퓨터(506)는 예시적으로 컴퓨터(502 또는 504)이거나, 다른 컴퓨터일 수 있다. 마찬가지로, 컴퓨터(506)는 컴퓨터(502 및 504) 중 하나와 동일한 운영 체제상에서, 또는 다른 운영 체제상에서 작동할 수 있다. 또한, 전술된 바와 같이, 편집기 컴포넌트(240)는 자동 텍스트 생성 시스템(207)을 구비할 수 있거나, 단순히 도 2에 관련하여 기술된 편집기 컴포넌트(240)일 수 있다.
동작 시, 컴퓨터(502 및 504)상의 기록 시스템(200)에 의해 사용자는 컴퓨터(502 및 504) 각각에 연관된 사용자 인터페이스상에서의 작업을 수행하게 되는 동시에, 기록 시스템(200)은 원하는 작업을 수행하기 위해 취해지는 사용자 인터페이스 단계들을 기록 및 저장한다. 따라서, 기록 시스템(200)은 예시적으로 사용자에 의해 취해진 액션에 대응하는 스크린 샷 이미지를 기록하고, 또한 전술된 바와 같이, 이들 이미지에 대응하는 텍스트를 선택적으로 자동으로 생성할 수 있다.
기록 시스템(200)은 예시적으로 기록된 단계들을 임포터 컴포넌트(508)가 허용할 수 있는 포맷으로 포맷팅한다. 예를 들어, 컴퓨터(502)상의 기록 시스템(200)은 예시적으로 소정의 작업을 수행하기 위해 컴퓨터(502)의 사용자 인터페이스상에서 사용자에 의해 수행된 일련의 단계를 기록할 것이고, 이들 기록된 단계들을 XML 포맷에 따라 기록된 플래그먼드(fragment) A(또한 참조 부호(510)로 지시됨)로 포맷팅할 것이다. 마찬가지로, 컴퓨터(504)상의 기록 시스템(200)은 예시적으로 단계들을 기록하고 이들 단계들을 XML 포맷에 따라 기록된 프래그먼트 B(또는 참조 부호(512)로 지시됨)로 포맷팅할 것이다.
기록된 프래그먼트(510 및 512)는 컴퓨터(502 및 504)들로부터 임포터 컴포넌트(508)에 제공된다. 임포터 컴포넌트(508)는 컴퓨터(506)상에 도시되어 있지만, 임포터 컴포넌트(508)가, 시스템(500)에 도시된 다양한 컴퓨터들 중에 분산된 기능을 갖거나, 이들 컴퓨터 전체와는 분리되어 존재하거나, 컴퓨터(506) 이외의 컴퓨터들 중 다른 하나에 제공되는 컴포넌트일 수 있음을 물론 인식해야 한다. 어느 경우라도, 임포터 컴포넌트(508)는 기록된 프래그먼트(510 및 512)를 수신하고, 사용자에게 프리젠테이션하기 위해 이들을 편집기 컴포넌트(240)에 제공하기 위한 임의 적절한 임포팅 메커니즘일 수 있다.
임포터 컴포넌트(508)는 예시적으로 작성 컴퓨터(506)상에 기록된 프래그먼트(510 및 512)를 저장하고, 이들을 편집기 컴포넌트(240)에 다양한 여러 방식들 중 한 가지로 임포팅한다. 이는 예를 들어, 프래그먼트(510 및 512)를 공유된 디렉토리를 통해 임포팅함으로써 달성될 수 있다. 마찬가지로, 이는 기록된 프래그먼트(510 및 512)를 디스크상에 또는 다른 외부 메모리 장치상에 저장함으로써 행해질 수 있으며, 그 외부 메모리 장치는 프래그먼트(510 및 512)를 편집기 컴포넌트(240)에 로드하는 컴퓨터(506)에 물리적으로 전송된다. 마찬가지로, 컴퓨터(506)는 원격으로 컴퓨터(502 및 504)를 동작시키는데 이용될 수 있고, 기록된 프래그먼트(510 및 512)를 컴퓨터가 액세스할 수 있는 클립보드상에 또는 다른 공유된 애플리케이션 공간상에 저장할 수 있다. 이런 공유된 공간의 일 실시예는 워싱턴주 레드몬드 소재의 마이크로소프트사에 의해 제공되는 윈도우즈 클립보드(Windows Clipboard) 시스템이다.
프래그먼트(510 및 512)가 공유된 애플리케이션 공간을 이용하여 제공되는 일 실시예에서, 컴퓨터(506)는 프래그먼트(510 및 512)를 공유된 애플리케이션 공간으로부터 판독하고, 이들을 편집기 컴포넌트(240)에 임포팅한다. 예를 들어, 윈도우즈 클립보드 애플리케이션 공간을 사용하는 일 실시예에서는, 워싱턴주 레드몬드 소재의 마이크로소프트사에 의해 제공되는 원격 데스크톱(Remote Desktop)으로 지칭되는 프로그램에 의해 클립보드 공간이 원격 컴퓨터와 로컬 컴퓨터 간에(컴퓨터(502 및 504)와 컴퓨터(506) 간에) 공유될 수 있다.
어느 경우라도, 임포터 컴포넌트(508)는 기록된 프래그먼트(510 및 512)를 편집기 컴포넌트(240)에 임포팅하는데 이용된다. 컴퓨터(502 및 504)상의 기록 시스템(200)이 자동 텍스트 생성 시스템(207)을 포함하는 일 실시예에서는, 기록 프래그먼트(510 및 512)가 자동으로 생성된 텍스트를 포함할 것이다. 또한, 편집기 컴포넌트(240)에서 텍스트가 자동으로 또는 수동으로 생성될 수 있다.
편집기 컴포넌트(240)는 프래그먼트(510 및 512)를 사용자에게 디스플레이하므로, 적절한 조건을 사용자가 삽입할 수 있게 된다. 예를 들어, 도 11에 예시된 최종 텍스트(245)의 실시예는 조건 문장(514 및 516)을 사용자가 삽입한 이후에 기록된 프래그먼트(510)와 기록된 프래그먼트(512)가 최종 텍스트(245)에 삽입된 것을 도시한다. 조건 문장(514)은 예를 들어, "Condition: If configuration A, then:"이다. 이는 컴퓨터가 구성 A로 구성되는 경우 기록된 프래그먼트(510)에 의해 지시된 단계들이 사용자에게 디스플레이되거나, 자동으로 수행되는 것을 나타낸다.
조건 문장(516)은 "Condition: If configuration B, then:"이라 한다. 이는 컴퓨터가 구성 B에 따라 구성되는 경우, 기록된 프래그먼트(512)에 의해 지시된 단계들이 사용자에게 디스플레이되거나 수행되는 것을 나타낸다.
물론, 작자가 마찬가지로 임의 다른 원하는 방식으로 텍스트를 삭제 또는 수정할 수 있음을 인식할 것이다. 이는 종래의 편집 기술을 이용하여 편집기 컴포넌트(210)상에서 행해질 수 있다.
표 2는 2개 서로 다른 구성으로부터 기록하기로부터 형성된 예시적인 XML 문서를 도시한다. 2개의 XML 프래그먼트는 하나는 네트워크 도메인상에서 그리고 다른 하나는 네트워크 작업그룹상에서 실행되는 컴퓨터상에 기록된다. 어느 프래그먼트를 실행시킬지를 판정하기 위한 if-then 로직을 다루기 위해, condition = "Network_connection: domain" 속성이 마크된다.
Figure 112006089828184-PCT00002
따라서, 본 발명에 의해 작자는 매크로의 전체 또는 일부를 서로 다른 구성하에서 서로 다른 머신상에 기록하게 되고, 최종 콘텐츠를 도출하기 위해 기록된 프래그먼트들을 하나의 작성 머신상에서 조합할 수 있다. 이에 의해 매크로는 서로 다른 머신상에서 기록되지만, 주요 작성 단계들은 한 곳에서 수행될 수 있다. 이는 종래의 시스템보다 콘텐츠의 작성을 보다 염가로, 보다 덜 복잡하게, 보다 더 자동화할 수 있게 한다.
본 발명이 특정 실시예를 참조하여 기술되었지만, 당업자는 본 발명의 사상과 범위 내에서 구성 및 상세한 부분에 있어서의 변경들이 행해질 수 있음을 인식할 것이다.

Claims (20)

  1. 작업을 수행하기 위해 사용자 인터페이스상에서 취해지는 단계들을 나타내는 콘텐츠를 생성하는 방법으로서, 상기 방법은
    제1 구성의 제1 컴퓨팅 장치의 사용자 인터페이스상에서의 사용자 인터페이스 요소에 대한 사용자 조작을 나타내는 제1 사용자 입력을 수신하는 단계;
    상기 제1 사용자 입력에 응답하여, 상기 사용자 인터페이스 요소에 대한 조작을 나타내는 제1 정보를 상기 제1 컴퓨팅 장치상에 기록하는 단계;
    제2 구성의 제2 컴퓨팅 장치의 사용자 인터페이스상에서의 사용자 인터페이스 요소에 대한 사용자 조작을 나타내는 제2 사용자 입력을 수신하는 단계;
    상기 제2 사용자 입력에 응답하여, 상기 사용자 인터페이스 요소에 대한 조작을 나타내는 제2 정보를 상기 제2 컴퓨팅 장치상에 기록하는 단계; 및
    상기 콘텐츠를 획득하기 위해 상기 제1 및 제2 정보를 결합하는 단계
    를 포함하는 콘텐츠 생성 방법.
  2. 제1항에 있어서,
    상기 결합 단계는 제3 컴퓨팅 장치상에서 수행되는 콘텐츠 생성 방법.
  3. 제1항에 있어서,
    상기 결합 단계는 상기 제1 및 제2 컴퓨팅 장치 중 하나에서 수행되는 콘텐 츠 생성 방법.
  4. 제1항에 있어서,
    상기 제1 사용자 입력에 대응하는 제1 텍스트를 자동으로 생성하는 단계; 및
    상기 제2 사용자 입력에 대응하는 제2 텍스트를 자동으로 생성하는 단계
    를 더 포함하는 콘텐츠 생성 방법.
  5. 제4항에 있어서,
    상기 제1 텍스트를 자동으로 생성하는 단계는 상기 제1 컴퓨팅 장치상에서 수행되는 콘텐츠 생성 방법.
  6. 제4항에 있어서,
    상기 제2 텍스트를 자동으로 생성하는 단계는 상기 제2 컴퓨팅 장치상에서 수행되는 콘텐츠 생성 방법.
  7. 제1항에 있어서,
    상기 콘텐츠는 상기 제1 및 제2 구성을 갖는 상기 컴퓨팅 장치들상에서 상기 작업을 완료하기 위해 수행되는 단계들에 대한 기술을 포함하는 콘텐츠 생성 방법.
  8. 제1항에 있어서,
    상기 제1 정보는 상기 제1 컴퓨팅 장치의 상기 사용자 인터페이스상에서 조작되는 상기 사용자 인터페이스 요소의 적어도 일부에 대한 제1 이미지를 포함하고, 상기 제2 정보는 상기 제2 컴퓨팅 장치의 상기 사용자 인터페이스상에서 조작되는 상기 사용자 인터페이스 요소의 적어도 일부에 대한 제2 이미지를 포함하는 콘텐츠 생성 방법.
  9. 제8항에 있어서,
    상기 결합 단계는, 상기 제1 및 제2 이미지를 상기 사용자 인터페이스 요소들에 대한 사용자 조작들에 대한 텍스트적 기술을 상기 제1 및 제2 컴퓨팅 장치상에서 수신하도록 구성되는 편집기 컴포넌트상에 디스플레이하는 것을 포함하는 콘텐츠 생성 방법.
  10. 제3항에 있어서,
    상기 결합 단계는 상기 제1 및 제2 이미지를 텍스트적 기술에 내장시키는 것을 포함하는 콘텐츠 생성 방법.
  11. 사용자 인터페이스상에서의 작업을 수행하기 위해 사용자에 의해 취해지는 단계들을 기술하는 콘텐츠를 생성하기 위한 콘텐츠 생성 시스템으로서,
    제1 구성을 갖는 제1 컴퓨팅 장치상에 배치되는 제1 기록 시스템-상기 제1 기록 시스템은 사용자가 상기 제1 컴퓨팅 장치상에서 소정의 단계를 취했다는 지시 를 수신하고 상기 단계를 나타내는 제1 정보를 기록하도록 구성됨-;
    제2 구성을 갖는 제2 컴퓨팅 장치상에 배치되는 제2 기록 시스템-상기 제2 기록 시스템은 사용자가 상기 제2 컴퓨팅 장치상에서 소정의 단계를 취했다는 지시를 수신하고 상기 단계를 나타내는 제2 정보를 기록하도록 구성됨-; 및
    상기 제1 및 제2 정보를 수신하고, 상기 제1 및 제2 정보를 결합하여 상기 콘텐츠를 형성하도록 구성되는 편집기 컴포넌트
    를 포함하는 콘텐츠 생성 시스템.
  12. 제11항에 있어서,
    상기 편집기 컴포넌트는 제3 컴퓨팅 장치상에 배치되는 콘텐츠 생성 시스템.
  13. 제11항에 있어서,
    상기 편집기 컴포넌트는 상기 제1 및 제2 컴퓨팅 장치 중 하나에 배치되는 콘텐츠 생성 시스템.
  14. 제11항에 있어서,
    상기 제1 및 제2 기록 시스템은 상기 제1 및 제2 정보를 상기 제1 및 제2 컴퓨팅 장치상에서 사용자들에 의해 수행되는 단계들을 나타내는 각각의 제1 및 제2 이미지로서 기록하도록 구성되는 콘텐츠 생성 시스템.
  15. 제14항에 있어서,
    상기 편집기 컴포넌트는 상기 제1 및 제2 기록된 이미지를 디스플레이하고 관련 텍스트를 수신하도록 구성되는 콘텐츠 생성 시스템.
  16. 제15항에 있어서,
    상기 편집기 컴포넌트는 상기 이미지들을 상기 관련 텍스트에 내장시킨 최종 콘텐츠를 생성하는 콘텐츠 생성 시스템.
  17. 제11항에 있어서,
    상기 제1 정보를 수신하고, 상기 제1 정보에 근거하여 상기 제1 컴퓨팅 장치상에서 상기 사용자에 의해 수행되는 단계를 기술하는 텍스트를 자동으로 생성하도록 구성되는 자동 텍스트 생성 시스템을 더 포함하는 콘텐츠 생성 시스템.
  18. 제17항에 있어서,
    상기 자동 텍스트 생성 시스템은 상기 제2 정보를 수신하고, 상기 제2 정보에 근거하여 상기 제2 컴퓨팅 장치상에서 상기 사용자에 의해 수행되는 단계를 기술하는 텍스트를 자동으로 생성하도록 구성되는 콘텐츠 생성 시스템.
  19. 제18항에 있어서,
    상기 자동 텍스트 생성 시스템은 제3 컴퓨팅 장치상에 배치되는 콘텐츠 생성 시스템.
  20. 제18항에 있어서,
    상기 자동 텍스트 생성 시스템은
    상기 제1 컴퓨팅 장치상에 배치되며, 상기 제1 정보에 근거하여 텍스트를 생성하는 제1 자동 텍스트 생성기; 및
    상기 제2 컴퓨팅 장치상에 배치되며, 상기 제2 정보에 근거하여 텍스트를 생성하는 제2 자동 텍스트 생성기
    를 포함하는 콘텐츠 생성 시스템.
KR1020067025533A 2004-07-08 2004-07-08 자동으로 생성된 콘텐츠의 임포테이션 KR101087312B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/887,543 US7036079B2 (en) 2003-01-07 2004-07-08 Importation of automatically generated content
PCT/US2004/022053 WO2006016865A1 (en) 2004-07-08 2004-07-08 Importation of automatically generated content
US10/887,543 2004-07-08

Publications (2)

Publication Number Publication Date
KR20070022063A true KR20070022063A (ko) 2007-02-23
KR101087312B1 KR101087312B1 (ko) 2011-11-25

Family

ID=35839538

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067025533A KR101087312B1 (ko) 2004-07-08 2004-07-08 자동으로 생성된 콘텐츠의 임포테이션

Country Status (6)

Country Link
US (1) US7036079B2 (ko)
EP (1) EP1766531A4 (ko)
JP (1) JP2008506183A (ko)
KR (1) KR101087312B1 (ko)
CN (1) CN100573503C (ko)
WO (1) WO2006016865A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100983443B1 (ko) * 2007-11-09 2010-09-20 주식회사 엔씨소프트 웹 상에서 배포 가능한 리스트 구조의 편집방법
KR101020138B1 (ko) * 2008-03-28 2011-03-08 주식회사 씽크풀 컨텐츠 자동 생성 방법 및 그 장치

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050114785A1 (en) * 2003-01-07 2005-05-26 Microsoft Corporation Active content wizard execution with improved conspicuity
US20040130572A1 (en) * 2003-01-07 2004-07-08 Aravind Bala Active content wizard: execution of tasks and structured content
US7627821B2 (en) * 2004-06-15 2009-12-01 Microsoft Corporation Recording/playback tools for UI-based applications
US7653896B2 (en) * 2004-06-30 2010-01-26 Microsoft Corporation Smart UI recording and playback framework
CN101421776B (zh) * 2004-07-08 2012-03-21 微软公司 用于生成内容的自动图像捕捉
KR101120756B1 (ko) * 2004-07-08 2012-03-23 마이크로소프트 코포레이션 사용자 인터페이스 상에서의 사용자 액션을 설명하는텍스트를 자동으로 생성하는 시스템, 방법 및 그 컴퓨터실행가능 명령어를 포함하는 컴퓨터 판독가능 매체
US7870487B2 (en) * 2004-07-29 2011-01-11 International Business Machines Corporation Inserting into a document a screen image of a computer software application
US7620895B2 (en) * 2004-09-08 2009-11-17 Transcensus, Llc Systems and methods for teaching a person to interact with a computer program having a graphical user interface
US20060055704A1 (en) * 2004-09-10 2006-03-16 Kruk James L Empty space reduction for auto-generated drawings
US7574625B2 (en) * 2004-09-14 2009-08-11 Microsoft Corporation Active content wizard testing
US7653721B1 (en) 2004-10-29 2010-01-26 Sun Microsystems, Inc. Mechanism for capturing high level events on user interface components
US8566716B2 (en) * 2005-01-10 2013-10-22 International Business Machines Corporation Selective macro event recording
US7587668B2 (en) * 2005-02-17 2009-09-08 Microft Corporation Using existing content to generate active content wizard executables for execution of tasks
US20060184880A1 (en) * 2005-02-17 2006-08-17 Microsoft Corporation Discoverability of tasks using active content wizards and help files - the what can I do now? feature
US20060224956A1 (en) * 2005-04-05 2006-10-05 International Business Machines Corporation Intelligent document saving
US7810156B2 (en) * 2006-04-20 2010-10-05 Agiliance Inc. Automated evidence gathering
US20070294260A1 (en) * 2006-06-16 2007-12-20 Tom Lam Software emulation tutorials
US8176467B2 (en) * 2006-07-25 2012-05-08 Harris Corporation Computer program generation system and method thereof
US8281234B2 (en) * 2007-03-20 2012-10-02 Microsoft Corporation Definable application assistant
US8316351B2 (en) * 2007-05-07 2012-11-20 Microsoft Corporation Utilizing a schema for documenting managed code
US7930636B2 (en) * 2007-08-28 2011-04-19 International Business Machines Corporation Systems, methods and computer products to automatically complete a GUI task
US8266524B2 (en) * 2008-02-25 2012-09-11 Microsoft Corporation Editing a document using a transitory editing surface
US7983512B2 (en) * 2008-06-24 2011-07-19 Microsoft Corporation Embedding large images within one another
US7870212B2 (en) 2008-12-31 2011-01-11 International Business Machines Corporation System and method for embedding a record of activity within electronic messages
KR101545875B1 (ko) * 2009-01-23 2015-08-20 삼성전자주식회사 멀티미디어 아이템 조작 장치 및 방법
KR20110136881A (ko) * 2009-04-03 2011-12-21 인터내셔널 비지네스 머신즈 코포레이션 협력 크롤링에 의한 리치 인터넷 어플리케이션을 위한 접근성을 향상시키는 방법 및 컴퓨터 프로그램
US8429541B1 (en) * 2009-04-30 2013-04-23 Intuit Inc. Method and system for video sharing between users of an application
US8419534B2 (en) 2009-09-30 2013-04-16 Disney Enterprises, Inc. Systems and methods for using images to generate gameplay content
US8396815B2 (en) 2010-04-29 2013-03-12 International Business Machines Corporation Adaptive business process automation
US8677253B2 (en) * 2010-05-25 2014-03-18 International Business Machines Corporation Replicating recorded actions across computer systems in a collaborative environment
CN102467365A (zh) * 2010-10-29 2012-05-23 国际商业机器公司 提供帮助信息的方法和装置
US8407159B2 (en) 2010-11-17 2013-03-26 Microsoft Corporation Automatic batching of GUI-based tasks
US20120131456A1 (en) * 2010-11-22 2012-05-24 Microsoft Corporation Capture and Playback for GUI-Based Tasks
US8924884B2 (en) 2010-12-06 2014-12-30 International Business Machines Corporation Automatically capturing and annotating content
US20120185767A1 (en) * 2011-01-14 2012-07-19 Apple Inc. Modifying application behavior
US9355150B1 (en) * 2012-06-27 2016-05-31 Bryan R. Bell Content database for producing solution documents
CN104375848B (zh) * 2013-08-14 2017-06-16 英华达(上海)科技有限公司 信息实时记录***及方法
US9223558B2 (en) 2014-06-02 2015-12-29 International Business Machines Corporation Software installation and configuration
US9684522B2 (en) * 2014-10-03 2017-06-20 Avery Dennison Retail Information Services, Llc Customizable food freshness printer startup wizard
US10388182B2 (en) * 2014-11-20 2019-08-20 International Business Machines Corporation Socially enabled guidance for products with GUIs
CN106162344A (zh) * 2015-03-25 2016-11-23 中兴通讯股份有限公司 界面处理方法、装置及***
CN105635758B (zh) * 2015-12-30 2019-02-12 深圳创维数字技术有限公司 一种智能电视桌面后台管理方法及服务器
US10083106B2 (en) * 2016-05-09 2018-09-25 College Of William & Mary Computer aided bug reporting system for GUI applications
US20190147164A1 (en) * 2017-11-11 2019-05-16 Robert P. Wing Novel methodology, process and program for the repair of disabled, badly infected or slow windows computers
TWI676906B (zh) * 2018-04-13 2019-11-11 和碩聯合科技股份有限公司 提示方法及其電腦系統
US20190347078A1 (en) * 2018-05-09 2019-11-14 International Business Machines Corporation Generating Application Mock-Ups Based on Captured User Sessions
CN109558183B (zh) * 2018-11-30 2019-07-26 北京数聚鑫云信息技术有限公司 一种自动实现api应用的方法及装置
US11734032B1 (en) * 2022-03-31 2023-08-22 Microsoft Technology Licensing, Llc Virtual desktop switching and communications

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4772206A (en) * 1986-03-10 1988-09-20 International Business Machines Corporation Multi-mode teaching simulator
US4941829A (en) * 1987-12-23 1990-07-17 International Business Machines Corporation Method for providing a dynamic tutorial display
JP3288460B2 (ja) * 1993-01-29 2002-06-04 松下電器産業株式会社 表示データ生成装置及び方法
JPH0744343A (ja) * 1993-07-27 1995-02-14 Matsushita Electric Ind Co Ltd 操作支援情報自動生成装置
US6259445B1 (en) * 1997-07-07 2001-07-10 Informix, Inc. Computer-based documentation and instruction
US6532023B1 (en) * 1999-08-12 2003-03-11 International Business Machines Corporation Recording selected applet events of a user interaction sequence
US7490292B2 (en) * 1999-12-17 2009-02-10 International Business Machines Corporation Web-based instruction
JP2001236155A (ja) * 2000-02-24 2001-08-31 Hitachi Ltd ガイダンスシステム
JP2002215578A (ja) * 2001-01-23 2002-08-02 Matsushita Electric Ind Co Ltd 取扱説明提示システム及び取扱説明提示装置
AT413228B (de) 2002-08-19 2005-12-15 Kaindl M Verkleidungsplatte
US20040130572A1 (en) * 2003-01-07 2004-07-08 Aravind Bala Active content wizard: execution of tasks and structured content
US7694223B2 (en) 2003-06-04 2010-04-06 Sony Computer Entertainment Inc. Methods and systems for recording user actions in computer programs

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100983443B1 (ko) * 2007-11-09 2010-09-20 주식회사 엔씨소프트 웹 상에서 배포 가능한 리스트 구조의 편집방법
KR101020138B1 (ko) * 2008-03-28 2011-03-08 주식회사 씽크풀 컨텐츠 자동 생성 방법 및 그 장치

Also Published As

Publication number Publication date
EP1766531A1 (en) 2007-03-28
US20040255270A1 (en) 2004-12-16
US7036079B2 (en) 2006-04-25
EP1766531A4 (en) 2008-08-27
KR101087312B1 (ko) 2011-11-25
WO2006016865A1 (en) 2006-02-16
CN1969272A (zh) 2007-05-23
JP2008506183A (ja) 2008-02-28
CN100573503C (zh) 2009-12-23

Similar Documents

Publication Publication Date Title
KR101087312B1 (ko) 자동으로 생성된 콘텐츠의 임포테이션
KR101076867B1 (ko) 콘텐츠를 생성하기 위한 자동 이미지 캡처
KR101120756B1 (ko) 사용자 인터페이스 상에서의 사용자 액션을 설명하는텍스트를 자동으로 생성하는 시스템, 방법 및 그 컴퓨터실행가능 명령어를 포함하는 컴퓨터 판독가능 매체
EP1693749B1 (en) Using existing content to generate active content wizard executables for execution of tasks
KR101038395B1 (ko) Gui를 갖는 컴퓨터 시스템에서 태스크를 실행하는 방법, help 파일을 구성하는 방법 및 컴퓨터 판독가능 매체
US7093199B2 (en) Design environment to facilitate accessible software
US7574625B2 (en) Active content wizard testing
Akiki CHAIN: Developing model-driven contextual help for adaptive user interfaces
Maskrey et al. Writing Our First App

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