delphi和INNO SETUP 文件关联操作
生活随笔
收集整理的這篇文章主要介紹了
delphi和INNO SETUP 文件关联操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
procedure TForm1.Button1Click(Sender: TObject);
var
? reg: TRegistry;
begin
? reg := TRegistry.Create;
? reg.RootKey := HKEY_CLASSES_ROOT;
? {在注冊表中添加我們虛擬的 .tst 格式, 并指定默認項的值是 TestFile}
? reg.OpenKey('.tst', True);
? reg.WriteString('', 'TestFile');
? reg.CloseKey;
? {文件打開關聯}
? reg.OpenKey('TestFile\shell\open\command', True);
? reg.WriteString('', ParamStr(0) + ' %1');
? reg.CloseKey;
? {文件圖標關聯}
? reg.OpenKey('TestFile\DefaultIcon', True);
? reg.WriteString('', ParamStr(0) + ',0');
? reg.CloseKey;
? reg.Free;
? {刷新圖標顯示}
? SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;
{清除上面的設置}
procedure TForm1.Button2Click(Sender: TObject);
var
? reg: TRegistry;
begin
? reg := TRegistry.Create;
? reg.RootKey := HKEY_CLASSES_ROOT;
? reg.DeleteKey('.tst');
? reg.DeleteKey('TestFile');
? reg.Free;
? SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;
也可以通過手動設置文件關聯,方法是:打開一個文件夾--工具--文件夾選項--“文件類型”選項卡---單擊下面的“高級”。
用 INNO 是很方便的,不要寫代碼,直接用 [Registry] 段就行了。比如:
[Registry]
Root: HKCR; Subkey: "Real 媒體文件"; ValueType: String; ValueData: "Real 媒體文件";Flags: uninsdeletekey
Root: HKCR; Subkey: "Real 媒體文件\DefaultIcon"; ValueType: String; ValueData: "{app}\abc.ICO";Flags: uninsdeletekey
Root: HKCR; Subkey: "Real 媒體文件\shell\open\command"; ValueType: String; ValueData: "{app}\myplayer.exe %1";Flags: uninsdeletekey
Root: HKCR; Subkey: "Real 媒體文件\shell\用 My Player 打開(&O)\command"; ValueType: String; ValueData: "{app}\myplayer.exe %1";Flags: uninsdeletekey
Root: HKCR; Subkey: "*.rmvb"; ValueType: String; ValueData: "Real 媒體文件";Flags: uninsdeletekey
Root: HKCR; Subkey: "*.rm"; ValueType: String; ValueData: "Real 媒體文件";Flags: uninsdeletekey
Root: HKCR; Subkey: "*.ra"; ValueType: String; ValueData: "Real 媒體文件";Flags: uninsdeletekey
var
? reg: TRegistry;
begin
? reg := TRegistry.Create;
? reg.RootKey := HKEY_CLASSES_ROOT;
? {在注冊表中添加我們虛擬的 .tst 格式, 并指定默認項的值是 TestFile}
? reg.OpenKey('.tst', True);
? reg.WriteString('', 'TestFile');
? reg.CloseKey;
? {文件打開關聯}
? reg.OpenKey('TestFile\shell\open\command', True);
? reg.WriteString('', ParamStr(0) + ' %1');
? reg.CloseKey;
? {文件圖標關聯}
? reg.OpenKey('TestFile\DefaultIcon', True);
? reg.WriteString('', ParamStr(0) + ',0');
? reg.CloseKey;
? reg.Free;
? {刷新圖標顯示}
? SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;
{清除上面的設置}
procedure TForm1.Button2Click(Sender: TObject);
var
? reg: TRegistry;
begin
? reg := TRegistry.Create;
? reg.RootKey := HKEY_CLASSES_ROOT;
? reg.DeleteKey('.tst');
? reg.DeleteKey('TestFile');
? reg.Free;
? SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;
也可以通過手動設置文件關聯,方法是:打開一個文件夾--工具--文件夾選項--“文件類型”選項卡---單擊下面的“高級”。
用 INNO 是很方便的,不要寫代碼,直接用 [Registry] 段就行了。比如:
[Registry]
Root: HKCR; Subkey: "Real 媒體文件"; ValueType: String; ValueData: "Real 媒體文件";Flags: uninsdeletekey
Root: HKCR; Subkey: "Real 媒體文件\DefaultIcon"; ValueType: String; ValueData: "{app}\abc.ICO";Flags: uninsdeletekey
Root: HKCR; Subkey: "Real 媒體文件\shell\open\command"; ValueType: String; ValueData: "{app}\myplayer.exe %1";Flags: uninsdeletekey
Root: HKCR; Subkey: "Real 媒體文件\shell\用 My Player 打開(&O)\command"; ValueType: String; ValueData: "{app}\myplayer.exe %1";Flags: uninsdeletekey
Root: HKCR; Subkey: "*.rmvb"; ValueType: String; ValueData: "Real 媒體文件";Flags: uninsdeletekey
Root: HKCR; Subkey: "*.rm"; ValueType: String; ValueData: "Real 媒體文件";Flags: uninsdeletekey
Root: HKCR; Subkey: "*.ra"; ValueType: String; ValueData: "Real 媒體文件";Flags: uninsdeletekey
轉載于:https://www.cnblogs.com/smallmuda/archive/2009/08/13/1545220.html
總結
以上是生活随笔為你收集整理的delphi和INNO SETUP 文件关联操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP BDC 技术的分类(转)
- 下一篇: 用java程序将GBK字符转成UTF-8