본문 바로가기

Application Programming Interface

Windows DDK 문서 IMEIMES.DOC - 8. IME Menu Functions (IME 메뉴 함수) IME 개발을 위한 Win32 다국어 IME 개요 버전 1.32 최종 수정일: 1998년 4월 1일, 번역: Luciano Jeong IME 메뉴 함수 이 함수 집합의 목적은 시스템 작업 표시줄에서 IME 관련 아이콘의 개수를 줄이기 위함입니다. 이는 Windows 98 및 2000의 새로운 기능입니다. 현재의 hKL이 IME일 때, Windows 시스템 프로그램은 작업표사줄에 2개의 아이콘을 추가합니다. 하나는 System ML 아이콘으로, 시스템 작업 표시줄에서 현재의 키보드 레이아웃을 지시하고, 다른 하나는 시스템 펜 아이콘으로 활성화된 윈도우의 IME 상태를 보여줍니다. 보통 IME는 작업표시줄에 추가적으로 아이콘을 더 만들기도 합니다. 이 아이콘을 클릭 시 나타날 컨텍스트 메뉴는 전적으로 IME.. 더보기
Windows DDK 문서 IMEIMES.DOC - 7. Reconversion(재변환) IME 개발을 위한 Win32 다국어 IME 개요 버전 1.32 최종 수정일: 1998년 4월 1일, 번역: Luciano Jeong 리컨버전(Reconversion) 리컨버전은 Windows 98 및 Windows 2000을 위한 새로운 IME 기능입니다. 이는 이미 어플리케이션의 문서에 입력된 문자열을 재변환하는 능력을 지원합니다. 특히 어떤 문자열이든 IME는 해당 문자열을 인식할 수 있고 이 문자열에 대한 발음 또는 글쇠 정보로 역변환할 수 있고, 이 발음 또는 글쇠에 대응되는 다른 단어들에 대한 후보 목록을 보여줄 수 있습니다. 새롭고 진보된 지능형 IME는 완전한 문장에 대해서도 인식하고 해석할 수 있습니다. IME가 완전한 문장 또는 문장의 일부분 같이 문자열과 관련하여 더 나은 정보를 제공.. 더보기
Windows DDK 문서 IMEIMES.DOC - 5. ImeSetCompositionString 함수, 6. Soft Keyboard(소프트 키보드) IME 개발을 위한 Win32 다국어 IME 개요 버전 1.32 최종 수정일: 1998년 4월 1일, 번역: Luciano Jeong ImeSetCompositionString 함수 ImeSetCompositionString 함수는 IME 조합 문자열(Composition String)을 다루는 데 어플리케이션이 사용하는 함수입니다. 서로 다른 플래그를 지정함으로써 어플리케이션은 조합 문자열, 속성, 절(clause) 등을 수정할 수 있습니다. 이 함수의 두 번째 매개변수인 dwIndex는 어떻게 조합 문자열이 IME에서 조정되어야 하는지를 지정합니다. 이 값은 SCS_SETSTR ,SCS_CHANGEATTR, SCS_CHANGECLAUSE, SCS_QUERYRECONVERTSTRING와 같은 값을 포함.. 더보기
Windows DDK 문서 IMEIMES.DOC - 4. Generating Messages(메시지 생성하기) IME 개발을 위한 Win32 다국어 IME 개요 버전 1.32 최종 수정일: 1998년 4월 1일, 번역: Luciano Jeong 메시지 생성하기 IME는 IME 메시지를 생성해야 합니다. IME가 변환 과정을 시작할 때 IME는 WM_IME_STARTCOMPOSITION 메시지를 생성합니다. 만일 IME가 조합 문자열을 변경할 때는 WM_IME_COMPOSITION 메시지를 생성합니다. IME가 메시지를 생성하는 방법에는 두 가지가 있습니다. 하나는 ImeToAsciiEx가 제공하는 lpdwTransKey 버퍼를 사용하는 방법이 있고 다른 하나는 ImmGenerateMessage 함수를 호출하는 방법입니다. 메시지를 생성하기 위해 lpdwTransBuf를 사용하기 IME가 초기화하는 이벤트는 입력 .. 더보기
Windows DDK 문서 IMEIMES.DOC - 3. IME Input Context(IME 입력 컨텍스트) IME 개발을 위한 Win32 다국어 IME 개요 버전 1.32 최종 수정일: 1998년 4월 1일, 번역: Luciano Jeong IME 입력 컨텍스트 각 윈도우는 IME 입력 컨텍스트와 연결되어 있습니다. IMM은 IME 상태, 데이터 등을 관리하고 IME 및 어플리케이션과 통신하기 위해 입력 컨텍스트를 사용합니다. 기본 입력 컨텍스트 기본적으로 시스템은 기본 입력 컨텍스트를 각 쓰레드마다 생성합니다. IME를 인식하지 않는 모든 창에 대한 쓰레드는 이 컨텍스트를 공유합니다. 어플리케이션이 생성한 입력 컨텍스트 어플리케이션 윈도우는 중간 조합 문자열(Intermediate Composition String)을 포함하여 IME의 모든 상태를 관리하기 위해 윈도우 핸들을 입력 컨텍스트에 연결할 수 있습.. 더보기
Windows DDK 문서 IMEIMES.DOC - 2. IME User Interface(IME 사용자 인터페이스) IME 개발을 위한 Win32 다국어 IME 개요 버전 1.32 최종 수정일: 1998년 4월 1일, 번역: Luciano Jeong IME 사용자 인터페이스 IME 사용자 인터페이스는 IME 윈도우, UI 윈도우 및 UI 윈도우에 포함되는 구성요소로 이루어집니다. 특징 IME 클래스는 미리 정의된 전역 클래스로서 파생 가능합니다. IME 클래스의 일반적인 특징은 다른 공용 컨트롤과 같습니다. 윈도우 인스턴스는 CreateWindowEx로 생성 가능합니다. STATIC 컨트롤처럼 IME 클래스로 만들어진 윈도우도 사용자 입력 자체에는 반응하지 않지만 컨트롤이 받을 수 있는 다양한 메시지를 수신하여 IME 사용자 인터페이스가 반응할 수 있게 합니다. 어플리케이션은 이 IME 클래스를 이용해 직접 생성하거나.. 더보기
Windows DDK 문서 IMEIMES.DOC - 1. Overview (개요) IME 개발을 위한 Win32 다국어 IME 개요 버전 1.32 최종 수정일: 1998년 4월 1일, 번역: Luciano Jeong 이 문서는 어떻게 Windows 95, Windows 98, Windows NT 및 2000을 위한 IME를 개발할 지에 대한 기초를 소개합니다. 또한 이 문서는 IME 개발을 위해 Win32 다국어 IME를 위해 쓰일 API 레퍼런스 내용을 보충합니다. Overview(개요) IME User Interface(IME 사용자 인터페이스) IME Input Context(IME 입력 컨텍스트) Generating Messages(메시지 발생) ImeSetCompositionString 함수 Soft Keyboard(소프트 키보드) Reconversion(재전환) IME Me.. 더보기
윈도우 프로그램에서 콘솔창 띄우기 AllocConsole: 콘솔창을 하나 엽니다. 프로세스당 1개의 콘솔창만 생성할 수 있습니다. AttachConsole: 지정된 프로세스 번호가 소유한 콘솔창에 연결하고 텍스트를 입출력합니다. FreeConsole: 이 프로세스가 갖는 콘솔창을 닫습니다. 사용예 /* 사용 예 */ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPreviousInstance, LPSTR lpCmdLine, int nCmdShow) { AllocConsole(); freopen("CONIN$", "r", stdin); freopen("CONOUT$", "w", stdout); freopen("CONOUT$", "w", stderr); printf("Hello, World!\.. 더보기
Visual C++로 MSXML 사용하기 #7 이전 포스팅에서 저장한 test.xml을 불러오는 기능은 XMLDOMDocument의 load 메서드입니다. _variant_t variant = TEXT("test.xml"); xmlDocument->load(variant); test.xml을 불러와 콘솔에 출력해보겠습니다. /* ex12.cpp */ #include #include #include #import int main(int argc, char * argv[]) { ::setlocale(LC_ALL, ""); if (SUCCEEDED(::CoInitialize(NULL))) { { _bstr_t bstr1, bstr2; _variant_t variant; IXMLDOMDocumentPtr xmlDocument; IXMLDOMProcessin.. 더보기
Visual C++로 MSXML 사용하기 #6 루트 엘리먼트, 자식 엘리먼트, 어트리뷰트, 텍스트 등 XML을 구성하는 기본적인 노드들을 VARIANT와 BSTR을 사용해 삽입해 보았습니다. 만든 XML 파일을 파일에 저장하는 방법은 XMLDOMDocument 클래스에 있는 save 메서드를 사용하면 됩니다. save 메서드는 매개변수로 VARIANT 형 구조체를 받습니다. _bstr_t path = TEXT("test.xml"); _variant_t variant = path; xmlDocument->save(variant); 이렇게 하면 프로그램이 실행되고 있는 위치에 test.xml을 생성하고 현재까지의 내용을 이 파일에 저장시킵니다. 제시된 XML대로 노드를 구성하고 파일로 저장해보겠습니다. Hello, World! 이를 코드로 작성하면 /*.. 더보기
Visual C++로 MSXML 사용하기 #5 루트 엘리먼트 내부에 텍스트와 자식 엘리먼트를 넣어보겠습니다. 먼저 루트 엘리먼트인 "document"에 "Hello, Word!"라는 문장을 넣어보겠습니다. Hello, World! 이를 소스코드로 표현하면 /* ex09.cpp */ #include #include #include #import int main(int argc, char * argv[]) { ::setlocale(LC_ALL, ""); if (SUCCEEDED(::CoInitialize(NULL))) { { _bstr_t bstr1, bstr2, bstr3; _variant_t variant; IXMLDOMDocumentPtr xmlDocument; IXMLDOMProcessingInstructionPtr xmlProcessingIns.. 더보기
Visual C++로 MSXML 사용하기 #4 BSTR과 마찬가지로 VARIANT형도 자신이 싣게될 데이터형에 따라 알아서 처리하는 _variant_t 클래스를 제공합니다. V_VT와 V_자료형 매크로를 사용해 일일이 데이터형을 지정하지 않아도 된다는 뜻입니다. 3편에서 보였던 소스를 _variant_t 형으로 다시 작성해보겠습니다. /* ex08.cpp */ #include "stdafx.h" int main(int argc, char * argv[]) { ::setlocale(LC_ALL, ""); if (SUCCEEDED(::CoInitialize(NULL))) { { _bstr_t bstr1, bstr2, bstr3; _variant_t variant; IXMLDOMDocumentPtr xmlDocument; IXMLDOMProcessingI.. 더보기
Visual C++로 MSXML 사용하기 #3 BSTR 자료형의 근본은 wchar_t * 형입니다. 인텔리센스로 확인해 보면 typedef OLECHAR * BSTR; 이고 OLECHAR은 다시 typedef wchar_t OLECHAR; 이므로 겉모양으로는 Wide Char 문자열과 똑같다는 뜻입니다. 다만 저장되는 문자열의 구조가 통상적인 C-Style이 아닌 맨 처음에 문자열의 길이가 명시되는 BSTR이라는 차이가 있는 것이지요 BSTR을 사용하기 위해서 이전 포스팅에서는 SysAllocString, SysFreeString의 함수를 사용하여 C-Style의 문자열을 변환하였지만 문자열을 사용하는 매 순간마다 이런 함수들을 호출해 일일이 변환하는 것은 번거롭기 그지없습니다. 그래서 BSTR의 사용과 변환에 관련된 기능들을 묶어놓은 클래스가 _b.. 더보기
Visual C++로 MSXML 사용하기 #2 아래의 간단한 XML 코드를 MSXML을 통해 생성하고 파일로 저장해보겠습니다. 먼저 XML 문서를 다루기 위한 XMLDOMDocument 인스턴스를 생성합니다. COM 클래스는 이름 끝에 Ptr이라 붙는 자료형을 제공하는데 이는 일종의 스마트포인터(smart pointer)로서 자신이 선언된 스코프가 끝날 때 메모리를 자동으로 해제하도록 만들어진 것입니다. 아래와 같이 IXMLDOMDocumentPtr형의 변수를 선언하고 CreateInstance 메서드를 호출합니다. 매개변수로는 XMLDocument의 CLSID를 전달합니다. HRESULT를 반환하며 SUCCEEDED 매크로를 통해 성공 또는 실패를 판별할 수 있습니다. /* ex03.cpp */ #include #import int main(int.. 더보기
Visual C++로 MSXML 사용하기 #1 Visual C++에서 XML 파일을 읽거나 쓸 때 MSXML을 사용합니다. MSXML을 사용하기 위해서는 COM을 알아야 하는데요. COM(Component Object Model)은 서로 다른 언어로 작성된 프로그램을 가져다 사용하는 기술로 Windows 운영체제에서 쓰입니다. 요즘은 닷넷이라는 좋은 플랫폼이 있어서 COM이 지향하고자 하는 기능들을 간편하게 활용할 수 있지만, Visual C++로 COM을 사용하기 위해서는 약간 복잡한 과정을 거칩니다. 1 단계. COM을 사용하기 위해 windows.h를 include합니다. #include 2 단계. CoInitialize 함수를 호출해 지금부터 COM을 사용할 것임을 운영체제에 알립니다. 매개변수로 NULL이 전달되는데 차기 버전을 위해 마련해.. 더보기
waveOut 함수 사용 예제 #2 이번에는 웨이브 출력에 따라 콜백함수를 선언해 호출되도록 하겠습니다. (첨부파일:) #pragma comment(lib, "winmm.lib") #include #include #include #include #include #include #include #pragma pack(push, 1) typedef struct { CHAR szChunkID[4]; // 항상 'R', 'I', 'F', 'F'라는 4개의 ASCII 문자가 옵니다. DWORD dwChunkSize; // 이 필드 바로 다음부터 파일의 맨 끝까지의 크기를 저장합니다. CHAR dwFormat[4]; // 이 필드 다음에 오는 형식의 종류를 지정합니다. 여기에서는 'W', 'A', 'V', 'E'의 4개의 ASCII 문자가 옵니다. .. 더보기
waveOut 함수 사용 예제 #1 waveOut 함수는 Windows API에서 사운드 파일을 직접 읽어서 사운드 드라이버에 전달하는 저수준 출력 함수입니다. 저수준 함수인만큼 mp3, flac 등의 압축된 형식을 직접 읽을수는 없고 PCM 방식으로 저장된 파일(일명 wav 파일)을 읽습니다. 이를 이해하기 위해서는 먼저 웨이브 파일의 구조를 이해해야 합니다. (자세한 내용은 http://crystalcube.co.kr/123참조.) 웨이브 파일의 구조를 C 스타일의 구조체로 표현하면 다음과 같이 3개의 구조체로 표현가능합니다. /* WAVE 파일을 구성하는 3개의 구조체 */ // 파일에서 PCM WAVE가 기록된 가장 첫 부분에 해당하는 내용입니다. // 보통은 파일의 가장 첫 부분에 이 구조체에 들어맞는 내용이 옵니다. #pragm.. 더보기
마법사 없이 SDI Frame-View-Document를 사용하는 최소 구조 이번 포스팅에서는 Visual Studio의 프로젝트 생성 마법사를 사용하지 않고 순수 코딩과 편집만으로 Frame-View-Document가 연결된 SDI 인터페이스를 만들어 보도록 하겠습니다. SDI를 구현하기 위해서는 1. 최소한 Application, Frame, View, Document의 4개의 클래스가 선언되어야 합니다. 2. MainFrame에서 사용하기 위해 최소한 Menu, Accelerator, Icon, String의 4개의 리소스(ID가 같아야 함)가 필요합니다. 4개의 리소스 중 하나라도 빠지면 Application의 InitInstance 함수를 수행하는 중 Debug Assertion Error가 뜹니다. SDI 구조를 만들기 위한 최소한의 Application 클래스 내용 .. 더보기
마법사 없이 코딩만으로 리본 UI 구현하기 (1) 마법사 없이 코딩만으로 리본 UI 구현하기 안녕하세요? tapito입니다. 이번 시간에는 Visual Studio 2010을 이용하여 마법사 없이 리본 UI를 구현하는 방법을 설명하겠습니다. 이와 같이 기존의 MFC와는 확연히 다른 구성으로 된 창을 리본 UI라고 하며, Office 2007에서 처음 소개된 UI입니다. 저처럼 미술 감각이 영 좋지 않은 개발자들도 코딩 몇 줄이면 위와 같이 멋진 화면을 구현해 낼 수 있지요. 그럼 단도직입적으로 시작하겠습니다. 1. 준비물 준비물은 다음과 같습니다. Microsoft Visual Studio 2008 또는 Microsoft Visual Studio 2010 2010은 설치만 하면 됩니다만, 2008 버전 쓰시는 분들은 Feature Pack이라고 해서 리.. 더보기
2. 기본 화면에 메뉴 넣기 전 편에 올렸던 소스와 달라진 부분 위주로 주석을 올립니다. stdafx.h로 공통 헤더 설정하기 파일명: stdafx.h #ifndef __STDAFX_H #include #include #include "resource.h" #endif CWinApp를 구현하기 파일명: CTestApp.h #pragma once class CTestApp : public CWinApp { public: CTestApp(); public: virtual BOOL InitInstance(); DECLARE_MESSAGE_MAP() }; extern CTestApp theApp; 파일명: CTestApp.cpp #include "stdafx.h" #include "CTestApp.h" #include "CMainFrame.. 더보기
1. MFC 시작하기 stdafx.h로 공통 헤더 설정하기 파일명: stdafx.h #ifndef __STDAFX_H #include #endif CWinApp를 구현하기 파일명: CTestApp.h #pragma once class CTestApp : public CWinApp { public: CTestApp(); public: virtual BOOL InitInstance(); // 어플리케이션 수준에서 발생되는 메시지를 처리할 메시지 맵입니다. DECLARE_MESSAGE_MAP() }; // theApp은 MFC에서 고정된 어플리케이션 이름입니다. // MFC로 작성된 프로그램을 실행하면 운영체제는 theApp이라는 이름의 인스턴스를 찾게 됩니다. // 그런데 헤더파일에서는 인스턴스를 직접 선언하지 못하므로 //"어.. 더보기
[코코아 터치] 숫자를 다루는 3 컨트롤 UISwitch : 2개의 값 (Yes/No, 0/1) 중 하나를 선택할 때 사용하는 컨트롤 UISegmentedControl : 미리 정해진 n개의 값 중 하나를 선택할 때 사용하는 컨트롤 UISlide : 0부터 1 사이 중 무수히 많은 실수 중 하나를 선택할 때 사용하는 컨트롤 UISwitch 이벤트 처리 예 @synthesize uiSwitch; @synthesize uiLabel; @implement Test03 // ... 생략 ... - (IBAction) UISwitch_ValueChanged : (UISwitch *) sender // UISwitch의 선택 값이 변경될 때마다 ValueChanged 이벤트가 발생되고, sender로는 터치된 컨트롤이 넘어온다. { if([sender i.. 더보기
갈아 만든 Windows API - #3 Hello, World! 갈아 만든 Windows API #3 Hello, World! tapitolife(dkhighest@naver.com) 원본 소스 보기 #include HINSTANCE g_hInstance; TCHAR szClassName[] = TEXT("TAPITO WinAPI Example"); TCHAR szWindowName[] = TEXT("TAPITO Windows API Example #1"); LRESULT CALLBACK WndProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShow.. 더보기
갈아 만든 Windows API - #2. 창 배경색 수정하기 갈아 만든 Windows API #2. 창 배경색 수정하기 tapitolife (dkhighest@naver.com) 1. 원본 소스 보기 #include HINSTANCE g_hInstance; TCHAR szClassName[] = TEXT("TAPITO WinAPI Example"); TCHAR szWindowName[] = TEXT("TAPITO Windows API Example #1"); LRESULT CALLBACK WndProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nSh.. 더보기
갈아만든 Windows API - #1. 도스와는 많이 다른 윈도우 프로그램 - #1. 도스와는 많이 다른 윈도우 프로그램 – Windows 프로그래밍은 도스에서 하던 것과는 다릅니다. 그것도 심하게. 확연히. 도스와 Windows의 가장 근본적인 차이는 바로 Multi-Tasking! 여러 프로그램이 동시에 실행된다는 것이죠. 제가 공부하면서 느꼈던 Windows 프로그래밍은 위와 같다고나 할까요? 도스 프로그래밍에서 자주 등장하는 공통된 내용이 "내가 직접 루프 구문 돌려서 배열 처리하는 거"였다면, 윈도우 프로그래밍에서는 "항상 긴장하고 있다가 어디서 튀어나올 지 모르는 탁구공(=메시지)을 받아 쳐야 하는" 것 같습니다. 매우 길어지고 많아진 온갖 파라미터들은 말할 것도 없죠. 후덜덜…… /* winmain.c */ #include HINSTANCE g_hInstance; .. 더보기
기능별로 묶어보는 레지스트리 함수 – 5편. 값의 조회/추가/수정/삭제 기능별로 묶어보는 레지스트리 함수. 5편. 값의 조회/추가/수정/삭제 - by Tapitolife 기본 값을 다뤄 보았다면 이제 이름을 갖는 다양한 형식의 값을 다뤄봅니다. — RegEnumValue 지정한 키가 가지고 있는 모든 값의 이름들을 가져옵니다. LONG WINAPI RegEnumValue( __in HKEY hKey, __in DWORD dwIndex, __out LPTSTR lpValueName, __inout LPDWORD lpcchValueName, __reserved LPDWORD lpReserved, __out_opt LPDWORD lpType, __out_opt LPBYTE lpData, __inout_opt LPDWORD lpcbData ); ○ hKey: 값들의 이름을 조회할 .. 더보기
기능별로 묶어보는 레지스트리 함수 – 4편. 기본값의 조회/수정 기능별로 묶어보는 레지스트리 함수. 4편. 기본값의 조회/수정 - by Tapitolife 키의 기본적인 조작을 해 보았다면 이제 기본 값을 다뤄봅니다. 기본 값이란 레지스트리 편집기 상에 나타나는 키(Key)가 갖고 있는 여러 개의 값 중에 이름이 없이 그냥 (기본 값)이라고만 나와 있는 것 문자열 형식의 값입니다. 뭐 이런 거죠 기본 값을 다루는 함수에는 다음과 같은 것이 있습니다. — RegQueryValue 지정한 키의 기본 값을 가져옵니다. LONG WINAPI RegQueryValue( __in HKEY hKey, __in_opt LPCTSTR lpSubKey, __out_opt LPTSTR lpValue, __inout_opt PLONG lpcbValue ); ○ hKey: 기본 값을 가져올.. 더보기
기능별로 묶어보는 레지스트리 함수 – 3편. 키의 조회/생성/삭제 기능별로 묶어보는 레지스트리 함수. 3편. 키의 조회/생성/삭제 - by Tapitolife (이 포스팅은 다음과 같은 사이트를 참고하여 작성되었습니다.) MSDN Registry Functions (Windows): http://msdn.microsoft.com/en-us/library/ms724875(v=VS.85).aspx 키를 열고 닫아 보았다면, 이제 그 사이에 뭔가를 해 봐야겠죠. ㅋㅋ 이번에는 서브키들의 목록을 조회하고, 생성/삭제를 해 봅니다. — RegEnumKey 지정한 키의 서브키들을 조회합니다. LONG WINAPI RegEnumKey( __in HKEY hKey, __in DWORD dwIndex, __out LPTSTR lpName, __in DWORD cchName ); ○ h.. 더보기
기능별로 묶어보는 레지스트리 함수 – 2편. 키의 열기/닫기 기능별로 묶어보는 레지스트리 함수. 2편. 키의 열기/닫기 - by Tapitolife (이 포스팅은 다음과 같은 사이트를 참고하여 작성되었습니다.) MSDN Registry Functions (Windows): http://msdn.microsoft.com/en-us/library/ms724875(v=VS.85).aspx 아래 함수는 키의 열고 닫기를 수행하는 기본적인 함수입니다. 파일을 다루기 위해서는 스트림을 통해 특정 파일을 열고, 작업하고, 닫는 것처럼 레지스트리도 '키'의 단위로 열고, 작업하고, 닫는 순서로 다뤄주시면 되겠습니다. — RegOpenKey 지정한 위치의 키를 엽니다. LONG WINAPI RegOpenKey( __in HKEY hKey, __in_opt LPCTSTR lpSub.. 더보기
기능별로 묶어보는 레지스트리 함수 – 1편. 완전 간단 레지스트리 소개 기능별로 묶어보는 레지스트리 함수. 1편. 완전 간단 레지스트리 소개 - by Tapitolife 레지스트리는 다음과 같이 구성 되어 있습니다. ▶ 키(Key): 일종의 폴더라고 보면 됩니다. 5개의 기본 키가 있으며 그 아래 트리 구조로 서브키들이 있습니다. 5개의 기본 키는 각각 다음과 같은 용도로 쓰입니다. * HKEY_CLASSES_ROOT: (약칭 HKCR) 파일 확장명과 그 확장명에 대한 연결 프로그램을 다룹니다. * HKEY_CURRENT_USER: (약칭 HKCU) 사용자가 구성한 윈도우 환경이 저장됩니다. 예를 들면, 효과음, 내게 필요한 옵션과 같은 주로 제어판에서 설정한 것들이 여기에 저장되죠. * HKEY_LOCAL_MACHINE: (약칭 HKLM) 윈도우 부팅에 필요한 장치 정보들.. 더보기