请问如何关联 文件类型! 快到圣诞了!先祝大家圣诞快乐!我想在自己的程序中关联一些已知的和我自己的文件类型,但有的文件类型我不希望直接用我的程序打开,只是让我的程序作为一个可选项。而有的文件我希望直接用我的程序打开(双击)不知道该在注册表的什么位置添加或者修改什么!?请不要嫌问题简单!~*_*谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 HKEY_CLASSES_ROOT\.mdb = DataBase.Document//扩展名HKEY_CLASSES_ROOT\DataBase.Document\shell\open\command = DATABASE.EXE %1//打开用到的EXEHKEY_CLASSES_ROOT\DataBase.Document\shell\open\ddeexec = [open("%1")]HKEY_CLASSES_ROOT\DataBase.Document\shell\open\ddeexec\application = DATABASEHKEY_CLASSES_ROOT\DataBase.Document = Access 数据库 http://www.hongen.com/pc/program/apitutor/api0009/api01.htmVB的例子,不过你可以看是在注册表的什么位置改。 http://www.vckbase.com/document/viewdoc/?id=618 设你的应用程序为c:\abc.exe在你的应用程序中加入以下两个函数,stol为类型转换函数,reg为文件类型注册函数,执行它,然后所有的.abc文件图标全部变为c:\abc.exe的图标(需重启),并且双击.abc默认使用abc.exe打开,但你还需要增加对命令行的参数的处理才能进行打开后的进一步操作.我在VC6+WIN98中使用通过无误,如有问题欢迎联系:[email protected] CLj1Dlg::reg(char p[]) //文件注册函数,p在这里为加点扩展名".abc"{ //创建入口 HKEY hKEY; LPBYTE set; DWORD type_1; int cbData_1; CString s=p,s1; s.Delete(0); //在WINDOWS中注册.abc s+="file"; ::RegCreateKey(HKEY_CLASSES_ROOT,p,&hKEY);//建立子键 set=stol(s); //使用自定义函数将CString型转换为LPBYTE方可写入 type_1=REG_SZ;//指定写入数据的类型为字符串 cbData_1=s.GetLength(); ::RegSetValueEx(hKEY,"", NULL,type_1,set,cbData_1); //将.abc的图标改为abc.exe的图标 s1=s; s1+="\\DefaultIcon"; set=stol("c:\\abc.exe");//设你的abc.exe在C盘根目录下 ::RegCreateKey(HKEY_CLASSES_ROOT,s1,&hKEY); // 建立入口 ::RegSetValueEx(hKEY,"",NULL,type_1,set,11); //向入口写入数据 //设置.abc的打开文件为c:\abc.exe s1=s; s1+="\\shell\\open\\command"; set=stol("c:\\abc.exe %1"); ::RegCreateKey(HKEY_CLASSES_ROOT,s1,&hKEY); ::RegSetValueEx(hKEY,"",NULL,type_1,set,11);}LPBYTE CLj1Dlg::stol(CString s)//类型转换函数{ char ch1=0; int i; LPBYTE lpb=new BYTE[s.GetLength()+1]; for(i=0;i<s.GetLength();i++) {lpb[i]=s[i];} lpb[i]=ch1; return lpb;} 有没有API可以直接使HDC变黑变暗 这个是枚举变量定义不? 关于metafile元文件 BHO 监视网页事件,但是点击一个超链接,却得到多次OnClick事件,请高手相救 关于MFC CFileDialog的使用 用ATL开发ACTIVEX控件,BackColor属性问题。 又一个简单问题,马上给分 有关Socket通信有点问题 请个路人马帮忙 文件传输速率 谁有PE文件格式的问档啊!要中文的! 困惑,一个C类地址的子网掩码255.255.255.192到底能划分几个子网? VC最小化时的代码在什么地方写?
HKEY_CLASSES_ROOT\DataBase.Document\shell\open\command = DATABASE.EXE %1//打开用到的EXE
HKEY_CLASSES_ROOT\DataBase.Document\shell\open\ddeexec = [open("%1")]
HKEY_CLASSES_ROOT\DataBase.Document\shell\open\ddeexec\application = DATABASE
HKEY_CLASSES_ROOT\DataBase.Document = Access 数据库
在你的应用程序中加入以下两个函数,stol为类型转换函数,reg为文件类型注册函数,执行它,然后所有的.abc文件图标全部变为c:\abc.exe的图标(需重启),并且双击.abc默认使用abc.exe打开,但你还需要增加对命令行的参数的处理才能进行打开后的进一步操作.
我在VC6+WIN98中使用通过无误,如有问题欢迎联系:[email protected] CLj1Dlg::reg(char p[]) //文件注册函数,p在这里为加点扩展名".abc"
{
//创建入口 HKEY hKEY;
LPBYTE set;
DWORD type_1;
int cbData_1; CString s=p,s1; s.Delete(0);
//在WINDOWS中注册.abc
s+="file";
::RegCreateKey(HKEY_CLASSES_ROOT,p,&hKEY);//建立子键
set=stol(s); //使用自定义函数将CString型转换为LPBYTE方可写入
type_1=REG_SZ;//指定写入数据的类型为字符串
cbData_1=s.GetLength();
::RegSetValueEx(hKEY,"", NULL,type_1,set,cbData_1);
//将.abc的图标改为abc.exe的图标
s1=s;
s1+="\\DefaultIcon";
set=stol("c:\\abc.exe");//设你的abc.exe在C盘根目录下
::RegCreateKey(HKEY_CLASSES_ROOT,s1,&hKEY); // 建立入口
::RegSetValueEx(hKEY,"",NULL,type_1,set,11); //向入口写入数据
//设置.abc的打开文件为c:\abc.exe
s1=s;
s1+="\\shell\\open\\command";
set=stol("c:\\abc.exe %1");
::RegCreateKey(HKEY_CLASSES_ROOT,s1,&hKEY);
::RegSetValueEx(hKEY,"",NULL,type_1,set,11);}LPBYTE CLj1Dlg::stol(CString s)//类型转换函数
{
char ch1=0;
int i; LPBYTE lpb=new BYTE[s.GetLength()+1];
for(i=0;i<s.GetLength();i++)
{lpb[i]=s[i];}
lpb[i]=ch1;
return lpb;
}