DirectX 9.0 의 소개 DirectX SDK 의 사용법 DirectX 와 Windows XP [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
이 주제에는, Microsoft® Windows® XP 로 Microsoft DirectX® 를 사용하기 위한 힌트가 기재되어 있다.
Windows XP 를 사용하면 동시에 복수의 사용자가 1 대의 컴퓨터에 로그 온 할 수 있다. 애플리케이션으로 동시에 복수의 인스턴스를 실행할 수 없는 경우, 다른 인스턴스가 실행중인지 아닌지를 확인하고 나서, 새로운 인스턴스를 시작 할 필요가 있다. 데스크탑 세션에 걸쳐 FindWindow 는 사용할 수 없다. FindWindow 는, 현재의 세션내에서만 동작한다.
애플리케이션의 인스턴스가 이미 실행중인지 아닌지를 확인하려면 , 글로벌 뮤텍스를 사용한다. 인스턴스가 실행중의 경우,FindWindow 를 사용해, 그 인스턴스가 현재의 세션에 있을지 어떨지 확인해, 윈도우를 복원할 수 있다. 현재의 세션에 없는 경우, 애플리케이션을 사용할 수 없는 것을 사용자에 통지하면 좋다.
간이 사용자 변환을 사용하면 세션간에서의 사용자의 변환이 가능하게 된다. 사용자는, 다른 사용자가 세션을 시작 하기 위해서 애플리케이션을 종료하거나 로그아웃 하거나 할 필요는 없다. 그 대신해, 간이 사용자 변환을 사용하는 것으로, 다른 사용자가 컴퓨터에 로그 온 해, 작업을 실행할 수 있다.
DirectX 애플리케이션은, 이러한 상황에 대응할 수 있어야 한다. 사용자 세션이 변경되면 Windows 는 WM_WTSSESSION_CHANGE 메시지를 송신한다. 이 메시지를 수신하기 위해서는, 애플리케이션은 WTSRegisterSessionNotification 를 호출해 윈도우 핸들을 등록할 필요가 있다.
Windows XP 에는, 관리자와 제한부 사용자의 2 종류의 사용자가 존재한다. 관리자는, 모든 하드 디스크에 대한 읽기/쓰기 액세스권을 가지고 있다. 제한부 사용자는, 하드 디스크상에서 데이터의 쓰기가 생기는 영역이 일부에만 제한된다.
제한부 사용자가 쓰기 액세스권을 가지고 있는 하드 디스크의 영역, 즉 DirectX 애플리케이션이 제한부 사용자용으로 정보를 저장 할 수 있는 유일한 장소는, 다음의 (디폴트의) 디렉토리이다.
CSIDL 값 | 폴더 |
---|---|
CSIDL_COMMON_DOCUMENTS | C:\Documents and Settings\All Users\Documents |
CSIDL_PERSONAL | C:\Documents and Settings\<username>\MyDocuments |
CSIDL_COMMON_APPDATA | C:\Documents and Settings\All Users\Application Data |
CSIDL_LOCAL_APPDATA | C:\Documents and Settings\<username>\Application Data |
인스톨은 디폴트로 Program Files 디렉토리 (CSIDL_PROGRAM_FILES)에 대해서 행해지기 (위해)때문에, 관리자만이 애플리케이션을 인스톨 할 수 있다. 제한부 사용자가 애플리케이션을 인스톨 하려고 했을 경우는, 통지 메시지 박스를 표시해, 인스톨을 실시하려면 관리자 권한이 필요한 일을 사용자에 알리는 것.
이러한 장소는 모두, 하드 코딩 하는 것이 아니라, 적절한 CSIDL 를 SHGetFolderPath 함수에 건네주는 것에 의해 결정한다.
애플리케이션이 생성하는 데이터 파일은, 제한부의 사용자를 고려해 저장 한다. 다음 표를 참조해 데이터의 저장 장소를 결정하는 것.
데이터에 액세스 할 수 있는 사용자 | CSIDL 값 | 사용자에 의한 데이터의 로드·표시·변경 | 예 |
---|---|---|---|
모든 사용자 | CSIDL_COMMON_APPDATA | 불가 | 시스템 구성 |
현재의 사용자 | CSIDL_LOCAL_APPDATA | 불가 | 키보드의 바인드 |
모든 사용자 | CSIDL_COMMON_DOCUMENTS | 가능 | 보존되고 있는 공유 파일 |
현재의 사용자 | CSIDL_PERSONAL | 가능 | 보존되고 있는 Private 파일 |
레지스트리에 올바르게 데이터를 저장 하려면 , 다음의 가이드 라인에 따르는 것.
HKLM
HKCU