|
/*
저 자신 윈도우 프로그래밍에는 초짜라서 이방법이 정석인지는 모르겠군요.
데브피아에서 레지스트리를 읽는다는 답변을 본적이 있어서 그걸 빌더
코드로 만들어봤습니다. */
AnsiString GetPathFromExt(AnsiString Ext)
{
AnsiString Path;
TRegistry *Reg=new TRegistry();
Reg->RootKey=HKEY_CLASSES_ROOT;
Reg->OpenKey(Ext,false);
Path=Reg->ReadString("");
Path=Path + "\\shell\\open\\command";
Reg->CloseKey();
Reg->OpenKey(Path,false);
Path=Reg->ReadString("");
Path=Path.Delete(Path.Pos("\%1")-3,Path.Length());
TReplaceFlags rf;
rf<<rfReplaceAll;
Path=StringReplace(Path,"\"","",rf);
Reg->CloseKey();
delete Reg;
return Path;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage(GetPathFromExt(".pdf"));
}
|