//--------------------------------------------------------------------------- // 注册文件关联 // ExeName: 要检测的扩展名(例如: ".txt") // AppName: 要关联的应用程序名(例如: "C:/MyApp/MyApp.exe") // AppKey: ExeName扩展名在注册表中的键值(例如: "txtfile") // Icon: 扩展名为ExeName的图标文件(例如: "C:/MyApp/MyApp.exe, 1") // Describe: 文件类型描述 void __fastcall RegisterFileRelation(AnsiString ExtName, AnsiString AppName, AnsiString AppKey, AnsiString Icon, AnsiString Describe) { try { TRegistry *pReg = new TRegistry(); pReg->RootKey = HKEY_CLASSES_ROOT; // 打开主键 // 新建/打开以文件扩展名为名的项,并写入数据 pReg->OpenKey(ExtName, true); pReg->WriteString("", AppKey); pReg->CloseKey(); pReg->OpenKey(AppKey, true); pReg->WriteString("", Describe); pReg->CloseKey(); pReg->OpenKey(AppKey + "//DefaultIcon", true); pReg->WriteString("", Icon); pReg->CloseKey(); pReg->OpenKey(AppKey + "//Shell", true); pReg->WriteString("", "Open"); pReg->CloseKey(); pReg->OpenKey(AppKey + "//Shell//Open//Command", true); pReg->WriteString("", AppName + " %1"); pReg->CloseKey(); delete pReg; } catch(...) { MessageBox(NULL, "注册文件关联时发生错误", "注意", MB_OK|MB_ICONWARNING); } }