C
caowei
Unregistered / Unconfirmed
GUEST, unregistred user!
原来的mpg文件是和解霸关联的,我调用:AddMyReg('.mpg');
在注册表里面可以看到已经关联了,但是在资源管理器里面双点mpg文件,
出现的仍然是解霸....重新启动以后仍然如此。
如果我关联的是自己定义的文件类型,比如.123文件,就是正确的。
操作系统为2000,有人知道原因吗?
procedure TForm1.AddMyReg(ext: string);
const
cMyFileType = 'project1.FileType';
var
reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey(ext, True);
Reg.WriteString('', cMyFileType);
Reg.CloseKey;
Reg.OpenKey(cMyFileType, True);
Reg.WriteString('', 'project1 File');
Reg.CloseKey;
Reg.OpenKey(cMyFileType + '/Shell/Open', True);
Reg.WriteString('', '&Open');
Reg.CloseKey;
Reg.OpenKey(cMyFileType + '/Shell/Open/Command', True);
Reg.WriteString('', '"' + Application.ExeName + '" "%1"');
Reg.CloseKey;
//update
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;
在注册表里面可以看到已经关联了,但是在资源管理器里面双点mpg文件,
出现的仍然是解霸....重新启动以后仍然如此。
如果我关联的是自己定义的文件类型,比如.123文件,就是正确的。
操作系统为2000,有人知道原因吗?
procedure TForm1.AddMyReg(ext: string);
const
cMyFileType = 'project1.FileType';
var
reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey(ext, True);
Reg.WriteString('', cMyFileType);
Reg.CloseKey;
Reg.OpenKey(cMyFileType, True);
Reg.WriteString('', 'project1 File');
Reg.CloseKey;
Reg.OpenKey(cMyFileType + '/Shell/Open', True);
Reg.WriteString('', '&Open');
Reg.CloseKey;
Reg.OpenKey(cMyFileType + '/Shell/Open/Command', True);
Reg.WriteString('', '"' + Application.ExeName + '" "%1"');
Reg.CloseKey;
//update
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;