Q&A

  • [울트라질문]확장자 연결에 EditFlags부분에 대해서..아시는분 부탁함돠.




procedure LinkedProgram(const Name, Ext, Mode: string);

var

Reg: TRegistry;

BinValue: Cardinal;

begin

Reg := TRegistry.Create;

try

with Reg do

begin

RootKey := HKEY_CLASSES_ROOT;

OpenKey(Format('.%s', [Ext]), True);

WriteString('', Format('%s', [Name]));

CloseKey;



RootKey := HKEY_CLASSES_ROOT;

OpenKey(Format('%s', [Name]), True);

WriteString('', Format('%s File', [Name]));

CloseKey;



OpenKey(Format('%sDefaultIcon', [Name]), True);

WriteString('', Application.ExeName + ',1');

CloseKey;



OpenKey(Format('%s', [Name]), True);

BinValue := $00010000;

WriteBinaryData('EditFlags', BinValue, Sizeof(BinValue));<-- 이부분

CloseKey;

OpenKey(Format('%sshell', [Name]), True);

WriteString('', 'install');

CloseKey;

OpenKey(Format('%sshellinstallcommand', [Name]), True);

WriteString('', Format('"%s" %s ', [Application.ExeName, Mode]));

CloseKey;

end;

finally

Reg.Free;

end;

end;



위와같이 코딩한뒤 위 함수를 사용했습니다.



레지스트리에서 확장자연결 프로그램을 설정하는부분이져



화살표 부분은 비디오 스트림같은 파일을 받을때 익스플러로에서 다운받을적에



"다운로드를 받겠습니까?" 라는 창이 뜨지않게 하기위해서 세팅하는것입니다.



아래 문구를 보면



flag supposedly controls whether an Open/Save dialog box is presented when MS Internet Explorer reads a file of that type. Set for .AVI, Excel, Midi, MPlayer, PowerPoint 8.0, RealAudio, Text, MS Word 8.0, and RTF files. However, it is not set for HTML files. (Go figure :) Function Byte:Bit Example

Disable Open/Save dialog box 2:0 00 00 01 00 <--1바이트식 반대로 값이 세팅.

즉 입력할때는 $00 01 00 00



라고되어있어서 그대로 했습니다. 처음에는 되더군요 그러나...



레지스트리에 수정만한다고



익스플로러 버전에따라서 안되는경우도 있습니다. 확장자 연결은 되는데 다운로드시



다운받을꺼냐고 물을때가 있더군요(제컴은 안묻지만서도 ㅡ.ㅡ)



윈엠프 스킨 설치(wsz)는 버전 상관없이 잘되는것 같은데 저눈 최근나오는



익스버전에서는 안됩니다 ㅡ.ㅡ .wsz 확장자 찾아가면서 모자린 부분이 있는지



모조리 찾아봐도 레지스터리에 데이터 입력은 완벽한것 같습니다. ㅡ.ㅡ



근데 안됩니다. 혹시 추가작업이 필요한게 있는지 아시는분만 답변을 달아주세요..



하하하 지금까지 제글을 읽으신다고 고생하셨습니다. 이왕고생하신김에 답변까지



^^*...









0  COMMENTS