首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

做了文件关联后,点击文件毫无反应。该怎么处理

2012-04-12 
做了文件关联后,点击文件毫无反应。做了文件关联后,点击文件毫无反应。注册表里面已经写进去了。文件图标也换

做了文件关联后,点击文件毫无反应。
做了文件关联后,点击文件毫无反应。注册表里面已经写进去了。文件图标也换了。双击文件后,光标等待了一下,然后就没有消息了,怎么回事???
程序有做接收文件处理的。

[解决办法]
我从网上抄来的,可以用的。

C/C++ code
bool __fastcall CheckFileRelation(AnsiString ExtName, AnsiString AppKey){    TRegistry *pReg = new TRegistry();    pReg->RootKey = HKEY_CLASSES_ROOT; // 打开主键    // 在检测到本程序不是默认的文件关联时,请用户确认该重新关联操作    pReg->OpenKey(ExtName, true);    if (pReg->ReadString("") != AppKey)    {        pReg->CloseKey();        delete pReg;        return false;    }    pReg->CloseKey();    delete pReg;    return true;}//---------------------------------------// 注册文件关联// ExeName: 要检测的扩展名(例如: ".txt")// AppName: 要关联的应用程序名(例如: "C:\MyApp\MyApp.exe")// AppKey: ExeName扩展名在注册表中的键值(例如: "txtfile")// Icon: 扩展名为ExeName的图标文件(例如: "C:\MyApp\MyApp.exe, 1")// Describe: 文件类型描述bool __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);                return false;    }        return true;}//---------------------------------------------- 

热点排行