3
我想添加一個文件擴展名註冊一個EXE文件。下面的代碼在XP下運行良好,但在Win Vista/7中引發錯誤。德爾福 - 如何更改在Vista /贏7默認文件擴展名
var
reg: TRegistry;
begin
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CLASSES_ROOT;
reg.OpenKey('.' + ExtName, True);
reg.WriteString('', ExtName + 'file'); //error: Failed to set data for ''
reg.CloseKey;
reg.CreateKey(ExtName + 'file');
reg.OpenKey(ExtName + 'file\DefaultIcon', True);
reg.WriteString('', AppName + ',0');
reg.CloseKey;
reg.OpenKey(ExtName + 'file\shell\open\command', True);
reg.WriteString('', AppName + ' "%1"');
reg.CloseKey;
finally
reg.Free;
end;
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
我該如何在Vista/7中完成同樣的事情?
就是這樣。我沒有運行與地位提升的應用程序。 – croceldon
另一種方法是寫入HKey_Current_User中的相應密鑰。那麼你不需要特殊的權限,也不會干擾其他用戶的文件關聯。 –