PCP의 임시폴더 청소부분 기능을 만들다가
노가다의 연구 끝에 알아낸 시스템 경로추출 법입니다.
우선 Win 9/x 커널 을 쓰는 95,98,98se,me 같은 경우
기본 윈도우 폴더는 Windows 구요
Temp : c:\windows\temp
History : c:\windows\history
Recent : c:\windows\recent
등등.. 이렇게 됩니다.
그런데 NT 커널을 쓰는 2000과 XP 에서는
사용자 마다 쓰는 시스템 폴더가 다르더군여.
예를 들어서..
Pueding 이라는 계정을 만들어서 Win 2000,xp 를 쓸경우
c:\Documents and Settings\pueding\Local Settings\temp
이렇게 되더군여..
만약 일반 guest 계정으로 들어가시면
c:\Documents and Settings\guest\Local Settings\temp
이렇게 됩니다.
여기서 의문점이 생길수 잇는데... Temp 라는 폴더를 검색하면 되지
않느냐? 라는 의문이 생길수 있습니다.
그렇게 검색해서 쓸경우 현재사용자의 계정이 아닌데도 불구하고
다른 사람의 계정 까지 지워 질수 있습니다.
더구나 더 노가다의 작업이 되어 버리져
저는 이 방법을 찾으려고 우선 Regedit 를 뒤졌습니다.
레지스트리 부분을 건드리다가 그 때그때의 계정 사용자의 대한
시스템 폴더 위치가 나타난 부분이 있더군여..
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\
이 부분에 가보면
시스템폴더의 경로가 나와있습니다.
레지스트리 같은 경우 접속하는 계정에 따라서 레지스트리가 변화합니다.
-----------------------------------------------------------------
실수:핸들,길이;
문자:인터넷임시폴더,히스토리,쿠키,템프,문서;
핸들 := 등록열어(HKEY_CURRENT_USER);
인터넷임시폴더 := 등록문읽어(핸들,"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" , "Cache", "");
히스토리 :=등록문읽어(핸들,"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" , "History", "");
쿠키 :=등록문읽어(핸들,"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" , "Cookies", "");
문서 :=등록문읽어(핸들,"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" , "Recent", "");
길이 :=문자길이(히스토리)-7;
템프 :=문자삭제(히스토리,길이,8)+"\temp";
등록닫아(핸들);
-----------------------------------------------------------------
윗 글은 PCP 에 쓰인 일부분입니다.
이젠 아셧을꺼라고 믿습니다 .^^
여기서 또 질문이 생긴다면
템프 부분에는 왜 다른 것들과 다르게 하느냐..
레지스트리를 뒤지다가 Temp 에 대해서는 못찾았습니다.
하는수없이 문자 편집을 이용해서 경로를 추출했습니다.
질문할꺼 잇으시면 댓글 써주세여 ^^ |
|