델파이 관해서 질문 좀 올립니다..
예를 들면 소프트웨어 및 게임등을 설치하면 레지스트리에 설치 경로에 관한 레지스트리가 입력이 되잖아요..
그래서 버튼을 누르면 제가 구현 하고싶은 것을 경로를 레지스트리로 경로를 찾아 해당경로를 익스플로러를 이용하여 가상드라이브 열고 싶습니다..
방법의 예문좀 부탁 드립니다..
현재는 아래와 같이 사용을 하고 있습니다..
-------------------------------------------------------------------------------
procedure TForm1.sBitBtn1Click(Sender: TObject);
begin
addDevice('Z:', 'C:\Documents and Settings\Owner\My Documents\SuddenAttack');
WinExec('explorer.exe "Z:"', SW_SHOW);
end;
procedure TForm1.sBitBtn2Click(Sender: TObject);
begin
addDevice('Z:', 'D:\Program Files\PlayNC\AION_KOR\ScreenShot');
WinExec('explorer.exe "Z:"', SW_SHOW)
-------------------------------------------------------------------------------
예를 들면 레지스트 경로가 아래와 같다면....
델파이 소스로 예를 들면 어떻게 해야하나요??
------------------------------------------------------------------------------
[HKEY_CURRENT_USER\Software\Blizzard Entertainment\Diablo II]
"InstallPath"="D:\\Program Files\\diablo II"
------------------------------------------------------------------------------
procedure TForm1.sBitBtn1Click(Sender: TObject);
begin
//레지스트리로 읽어와 관련된 경로 폴더열기
end;
그리고 내문서 경로를 열려면 컴퓨터 사용자 이름 들어가게 되는데~
C:\Documents and Settings\Owner\My Documents\SuddenAttack
C:\Documents and Settings\에이스\My Documents\SuddenAttack
C:\Documents and Settings\플러스\My Documents\SuddenAttack
여러개의 컴퓨터가 사용자 이름이 다르다면 개별 이름마다 만들면 불편한데...다른 방법이 없을가요??
답변좀 부탁 드립니다...
var
pUserName: array[0..80] of Char;
wLength: LongWord;
begin
wLength := SizeOf(pUserName);
GetUserName(pUserName, wLength);
Application.MessageBox(pUserName, '이름은?', MB_OK);
end;
<!--CodeE-->
이런식으로 사용자 이름을 가져와서 경로 중간에 붙여주시면 됩니다.
레지스트리 키값 찾는건
<!--CodeS-->
var
AReg: TRegistry;
sValue: String;
begin
AReg := TRegistry.Create;
try
with AReg do
begin
RootKey := HKEY_CURRENT_USER;
if OpenKey('Software\Blizzard Entertainment\Diablo II', False) then
begin
sValue := ReadString( 'InstallPath' );
Application.MessageBox(PChar( sValue ), '찾았나?' , MB_OK);
end;
CloseKey;
end;
finally
if Assigned( AReg ) then FreeAndNil( AReg );
end;
end;
<!--CodeE-->
이런 형태로 찾으시면 되겠구요.
수고하세요.