|
창조 팁 - '창조' 에 관한 팁을 올리는 곳입니다. 다수의 이미지가 필요하시면 아래 '이미지 자료실' 에 업로드 후 불러와 주세요.. |
| Posted by 지상현 | 2005-10-28 22:48:20, Hit : 6310 | |
|
|
|
살펴보다 보니까, 이런 것이 없네요.
푸딩님께서 레지스트리를 통해 알아오시는 예제가 있지만... 보시면 아실텐데 많이 복잡하고, 문제 있어 보입니다.
역시 확실한 해결책은 API입니다. (*물론 모든 일에 API가 능사는 아니지만, "Windows가 제공하는 기능을 이용하기 위해서는" Windows API가 가장 확실하겠죠~)
여하튼, API가 있다 이겁니다. 이름이나 알아볼까요.
윈도우 폴더는 어디니 - GetWindowsDirectory (시스템 고정 윈도우 폴더) 시스템 폴더는 - GetSystemDirectory (시스템 고정 시스템 폴더) 임시 폴더는! - GetTempPath (멀티 사용자 계정에 따른 임시 폴더를 알아옴)
이번엔 함수 선언문을 밝혀보겠습니다.
실수함수: GetWindowsDirectoryA(문자:버퍼; 실수:길이); 실수함수: GetSystemDirectoryA(문자:버퍼; 실수:길이); 실수함수: GetTempPathA(실수:길이; 문자:버퍼); 몽땅 kernel32.dll
GetTempPath 만 독종이라는 것을 기억해두시길... 인자가 반대입니다.
여하튼, 버퍼에는 알고 싶은 경로의 길이 만큼 아무 문자나 넣어둡니다. 100 글자가 알고 싶으면 공백을 100개 넣어두면 되겠죠. 공백 문자를 지정한 수 만큼 만드는 함수를 따로 만들어 사용하면 편리하겠죠^^ 길이에는 아까 만든 버퍼의 길이를 넣습니다. 여기서는 100을 넣으면 되겠죠?
반환값은, 얻어온 경로의 진짜 길이입니다. 문자복사로 잘라주는 게 좋습니다.
그럼 경로는 어디에 들어갈까요? 당연히 아까 넣어준 버퍼입니다.
자... 이제 설명은 다 끝났습니다. 간단하게 사용해볼까요?
시스템 폴더를 알아오겠습니다. *다시 말씀드리지만 GetTempPathA 는 인자가 바뀌어 있습니다. 주의하세요.
문자:경로; 실수:경로길이;
// 30 글자를 알아오기 위해 버퍼를 잡습니다. 꼭 공백문자일 필요는 없습니다. 경로 := " "; 경로길이 := 사용자함수0.GetSystemDirectoryA(경로, 30); // 불필요한 공백을 지웁니다. 경로 := 문자복사(경로, 1, 경로길이);
문자창보여(경로); |
|
|
qkrwhdgns 2005-10-29 PM 3:39:33 |
|
|
|
API중에서.. GetWindowsDirectoryA란 것이 있는것은..
대략 알았는데.. 어떻게 사용하는지 몰라서 ..-_-..
유용한 팁인데요^^.. 레지스트리 뒤지지 않아도 된다^^; |
|
|
qkrwhdgns 2005-11-06 PM 8:07:54 |
|
|
|
공백을.. 30으로 잡으면.. 30까지의 문자만 얻어오잖아요..
만약.. 윈도우폴더가.. 30글자를 넘으면;; |
|
|
지상현 2005-11-06 PM 11:26:57 |
|
|
|
당연히 더 잡아 주셔야;
일반적으로 MAX_PATH 값 만큼만 하시면 돼요. 이 값은 260 입니다. |
|
|
qkrwhdgns 2005-11-07 PM 4:58:50 |
|
|
|
시스템 폴더는.. SYSTEM (또는 SYSTEM32) 란 시스템 폴더의
이름을 생각해서.. 260 + 8 을 해주어야 겠네요.. |
|
|
지상현 2005-11-07 PM 6:04:36 |
|
|
|
아니죠;;
260이면 다 됩니다. 260 글자의 길이가 얼마라고 생각하세요? |
|
|
qkrwhdgns 2005-11-27 AM 7:08:16 |
|
|
|
아.. 그렇군요^^; |
|
|
지우개 Expert 3.0 제작자 : 천호성 님 [LINK] |
|
|
|
대박로또2005 제작자 : 최재일 님 [LINK] |
|
|
1 | 박종훈 님 | 15292 점 | |
2 | 지상현 님 | 8809 점 | |
3 | 손상진 님 | 7388 점 | |
4 | 권선중 님 | 6060 점 | |
5 | 이진백 님 | 5174 점 | |
|
|
|
가입일 | 닉네임 |
05/31 | 김동률 |
03/31 | 홍형기 |
09/01 | o00pp99oo |
12/27 | 이재민 |
11/20 | 이희철 |
|
|
|
|
. |
. |
. |
|