注册文件类型

注册文件类型

使用方法,如要注册 ".abc" 类型文件

RegisterShellFileType(".abc", "abcfile", "abc文件", "c:/abc/abc.exe", NULL, "c:/abc/abc.exe", 0);

代码:

void RegisterShellFileType(    string ext_name, string type_name, string description,    string exec, string args, string icon_file, int icon_index){    HKEY hKey;    char szIndex[32] = {0};    RegCreateKey(HKEY_CLASSES_ROOT, ext_name.c_str(), &hKey);    RegSetValue(hKey, "", REG_SZ, type_name.c_str(), type_name.length());    RegCloseKey(hKey);    RegCreateKey(HKEY_CLASSES_ROOT, type_name.c_str(), &hKey);    RegSetValue(hKey, "", REG_SZ, description.c_str(), description.length());    RegCloseKey(hKey);    RegCreateKey(HKEY_CLASSES_ROOT, (type_name+"//DefaultIcon").c_str(), &hKey);    itoa(icon_index, szIndex, 10);    icon_file = icon_file + "," + szIndex;    RegSetValue(hKey, "", REG_SZ, icon_file.c_str(), icon_file.length());    RegCloseKey(hKey);    RegCreateKey(HKEY_CLASSES_ROOT, (type_name+"//Shell//Open//Command").c_str(), &hKey);    exec = exec + " " + args + " /"%1/"";    RegSetValue(hKey, "", REG_SZ, exec.c_str(), exec.length());    RegCloseKey(hKey);    //刷新系统图标缓存    SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_DWORD, NULL, 0);}

文章发布于 2008-01-06 16:19:00 CSDN,现转博客园。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部