说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB建立文件关联 -VB资料

HTML文档下载 WORD文档下载 PDF文档下载
VB建立文件关联 -VB资料

 
文件关联是指打开一种类型的文件的默认方式,比如默认状态下文本文件txt是与记事本程序相关联的,我们双击文本文件,就能直接运行记事本程序来编辑它。文件的关联是通过注册表得以实现的,本例就是利用API函数RegCreateKey和RegSetValue来对注册表进行修改,从中可以看到这两个函数的用法。

  为了学习方便,提供的源码已经作了详细的中文注释,看看源码框中的代码:


(源程序下载)

  我们先来声明API函数,本例中用到的两个函数声明如下:
   Private Declare Function RegCreateKey& Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey&, ByVal lpszSubKey$, lphKey&) As Long

   Private Declare Function RegSetValue& Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey&, ByVal lpszSubKey$, ByVal fdwType&, ByVal lpszValue$, ByVal dwLength&) As Long

  RegCreateKey函数的作用是在注册表中指定的主键下创建一个新的主键,而如指定的键已经存在,那么函数会打开现有的主键,其中各个参数的意义如下表所示:

参数 意义
hKey Long,要打开键的句柄,或者一个标准键名。例如:HKEY_CLASSES_ROOT 是标准键名
lpSubKey String,欲创建的新子键。如创建多个键,需用反斜杠将它们分隔开。例如:level1\newkey
phkResult Long,指定一个变量,用于得到新子键的句柄,在设置键值时要用到它
返回值 Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码

  RegSetValue函数用于设置指定键或子键的默认值,它的各个参数的意义如下:

参数 意义
hKey Long,一个已打开键的句柄,可从上面phkResult得到,或是指定一个标准键名
lpSubKey String,要设置键值的一个子键的名字。如指定vbNullString,表示设置hKey的默认值。如指定的子键不存在,则会创建它
dwType Long,必须是REG_SZ
lpData String,新的键值
cbData Long,指定lpData的长度,不包括空中止字符
返回值 Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码

  下面我们看看怎样实现文件关联,步骤一:在在注册表的HKEY_CLASSES_ROOT下创建MyApp主键:
   ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)

  语句中sKeyName已经预先赋值为"MyApp",而函数执行完后lphKey&会返回新创建的主键的句柄,然后我们向句柄lphKey&所指的位置写入键值sKeyValue(已经赋值为"Logfiles")
   ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)

  如果这时查看注册表,会发现如下图所示的新主键和键值:



  步骤二:在注册表的HKEY_CLASSES_ROOT下创建另外一个主键,键名为“.log”,键值为“MyApp”,创建的方法与第一步相同,只不过键名和键值不同。建立此键值的作用是,把“.log”文件关联到“MyApp”主键所规定的内容,这时的注册表如下:



  第三步:我们为“MyApp”设置了一个命令行,也就是在主键MyApp下建立如下主键:



  实现的代码是:
   sKeyName = "MyApp"        '*名为MyApp的键名
   sKeyValue = "notepad.exe %1"   '*把键值设为"notepad.exe %1",%1指的是要打开的文件
      '如果该键已经创建,则RegCreateKey那么函数会打开现有的项
   ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
      '下面一句的实际效果是在MyApp键下建立shell\open\command目录,并写入键值sKeyValue
      '说明:放在一个键的shell\open\command下的是打开某一类型文件的应用程序的名称
   ret& = RegSetValue&(lphKey&, "shell\open\command", REG_SZ, sKeyValue, MAX_PATH)

  经过以上几个步骤,我们已经建立了“.log”文件和“记事本”程序的关联。总结前面的内容可以发现在VB中采用API对注册表操作的基本思路都是类似的,只要我们知道了两个API函数的用法,然后熟悉注册表操作,就能灵活的写出与注册表相关的程序来。
保证连网计算机时间同步-VB资料 编写网络寻呼机 -VB资料 编制自已的电话录音小程序-VB资料 程序中如何启动默认的拨号连接-VB资料 打开浏览器并进入指定网址-VB资料 得到用户的IP地址 -VB资料 电话拨号 -VB资料 电子邮件的标准格式 (RFC 822)-VB资料 断开拨号网络的连接-VB资料 断开与 Internet 的连接 -VB资料 发送电子邮件附件-VB资料 VB获得用户网络登录名 基 于Win95 的VB5 串 口 通 信 程 序 基于Win95的VB5串口通信程序 检测运程数据传送的断线-VB资料 简单电子邮件发送程序-VB资料 VB建立拨号联接 -VB资料 将所有窗口最小化-VB资料 VB利用IE控件访问Internet VB利用IE控件设计简易浏览器 VB利用Mscomm32控件判断MODEM是否打开,或者正在工作,并且判断拨号时是否遇忙音 VB利用TAPI进行电话拨号 利用VB访问Internet 利用VB设计聊天室 利用Visual Basic实现无线通讯 VB利用Winsock控件实现局域网通信 VB如何从 Internet 上取回某一个网页的內容? VB如何检测是否已连接到Internet? VB如何利用Winsock控件编写自己的Internet程序 VB如何每天抓取 Internet 上某一个网页中的图片来更换桌面的壁纸 VB如何启动拨号网路中的连线? 怎样在VB中加入动画? 费时操作是如何估计所花费时间的? 为什么我新装的机器在播放声音和视频文件时速度比原速度快了好多? 怎么样清楚Cookies 如何通过一个链接弹出一个没有标题栏,没有菜单栏,没有地址栏等的新页面? 配置问题,在线等待?分不够再加! MFC基础, 如何实现在CScrollView上, 把某一文本文件显示出来(不用file - new)? 求救:请问哪儿有《Beginning Visual Basic.Net》英文书下载??? 高分100 label 控件刷新问题 如何通过一个链接弹出一个没有标题栏,没有菜单栏,没有地址栏等的新页面? 实现这样一个报表??????? 求救。。。。。Access2000的数据库密码忘了,该怎么办呀!!! 动态产生的列表框,如何让记录按列对齐? 为什么有时自动打开网页,有时却不能? 在JDBTable中如何选中行? 我想让进度条竖着从下往上显示,应该怎么做? 可否知道数据表即将产生记录的标识键值???? 怎样让程序启动时最大化,但又不允许用户再还原或者改变窗口大小,谢谢! 紧急求救!关于ADSL下的固定IP地址访问问题,相关IP地址转发技术 谁见过这种编译错误,怎么办啊? 我的RH7.2不能Telnet ,请帮忙. GPRS 有无条件等待指令吗? 简单的问题_50分。 在vba的编写过程中无法在excel中调用word等其他对象,怎么办?(顶者有分) 事实证明,weblogic会对注释行报错! 一个让人困惑的问题 bcp 的问题 请问:有没有UNIX下的测试工具? 请问一个关于BCB消息MAP的问题... 系统2000,用installshield6.0包了程序,有问题 请问我用VC++做的数据库程序怎样打包在线等待急用, 在控制面斑-- >删除/添加程序 选项中 Win2000和Win98怎么不一样啊 改写了8254后如何得到正确的系统时钟 在别人机子上生成报表时提示出错,除打包安装外有无其他办法? ★ 懂 ORACLE 和 DB2 的高手请进... ★ 求助!!! 100分求小软件 为什么MediaPlayer播放不正常? 关于在向固定格式的Word模版中导入数据的问题,急!!!!!!!!!!!!!!! SQL SERVER 2000简体中文企业版 与 SQL SERVER 2000简体中文标准版 区别 同时装了Win2000和Office2000的朋友,快看看自己的电脑有没有这样的毛病:)送分! 干掉靖国神社..http://www.yasukuni.or.jp/index2.html 在我调试程序时,出现了有关"cs3250mt.dll"文件的出错信息,是怎么回事呢,急死我了!!!大家帮帮我吧!!! 关于windows media 问题,请教了!!! 如何在两个FORM中互相调用控件??? 关于控制发音。 高分请教一个对话框程序问题。!!!!!!!!!!!!!!!! 怎样处理数据库,才能在企业管理器及查询分析器中不能直接看到数据库结构 高分请教,如何获得“正在进行的共享连接” Delphi中如何创建控件数组 中秋节虽已过去,但是很多人家还有很多没有吃完的月饼.某同学观察到家中的月饼包装袋内都有一小包干燥剂 电阻的色标位置和倍率关系 请高手回答下 我是初学者比如说 电阻的色标位置和倍率关系如下表所示:颜色 有效数字 倍率允许偏差(%)银色 / x0.01 ±10金色 / x0.1 ±5黑色 0 +0 /棕色 1 x10 ±1红 人类为什么会出现在世界上? 芳香化学物和脂环化学物如何区分呢? 电阻的色标法中 红色代表的有效数字是几 a lot of;lots of;a lot的区别和用法? 用色标法怎么判别电阻的大小?用色标怎么看电阻大小... 电阻的色标法中,红色代表的有效数字是? a lot和 lots of的用法 果胶酸法水解机理,为什么不能碱水解 电阻的色标环和测得的量不符我板子上有个五色电阻,色环为棕(好像也是红),红,黑,金(是个黄色,搞不清是是金还是黄橙),红.用数字表万用表200K欧档,测得数字24.6,它的实际数值是多少,表 世上为什么会有我们这些人类呢? 酸法提取橘子皮果胶工艺的优化研究试验的过程 果胶酶可将紫甘薯匀浆中的果胶水解成什么? C3H6的同分异构体丙烯的同分异构体.急需.麻烦写清楚点.谢谢.环状的麻烦附一下图.图的话上传空间然后复制地址就好了.谢谢了. lots of 和 a lot of在用法上有什么区别? 果胶酶和果胶水解酶的区别?类似的讲解也可以!(蛋白酶之类的) 小屁孩问我为什么挪威船长特别多,怎么解释清楚? a lot of 和lots of 的用法和区别列举 列举例子 如:用法上有什么不同 用在可数还是不可数的 都要列举一个例句 三Q三Q 加热为什么不利果胶水解?为什么不是越热越水解? 二甲亚砜沸点 半干法脱硫 缺点不懂的不要瞎掰, 细胞壁都可以被纤维素酶水解吗?果胶酶呢? 谢谢 二甲亚砜是什么 培育和保持企业核心竞争力的注意要素 如何看电阻色标? 脱硫系统中增压风机放在什么位置增压风机和引风机的位置如何布置? 浅谈如何培育企业核心竞争力 电阻器的色标,从哪个方向开始读呀?从左到右,从右到左?呵呵不过,昨天读一个,从这个方向无意义,因为读成"1-0"从另一个方向就可以读出有意义的数字组合. 330WMW脱硫中的增压风机耗电量是多少? Here is a notice___the board.Aon.Bat.Cin 五元环的酯类化合物和六元环的酯类化合物 怎么写出来的根据什么写出来的呢?是CH2OH(CHOH)4COOH 脱水后形成的.怎么写出来呢? 电厂脱硫氧化风机起什么作用 民营企业核心竞争力怎么培育? 关于脂环化合物碳的个数问题脂环化合物 CnH2n n趋向于正无穷,能出现这种化合物吗?是形成一个环?多个环?如果不能,又是什么原因呢?如果是杂环呢? 氧化风机出口温度与脱硫率关系? The announcememt will be__ on the notice board.A.put upB.put offC.put downD.put on 为什么会出现人类? 脱硫增压风机电流逐渐降低的原因正常运行中,导叶全开的时候,电流395A约2个月时间,缓慢下降,降至365请各位帮分析原因?我能考虑到因叶片磨损或腐蚀,还有其他什么原因? 餐饮企业核心竞争力的培育?几篇关于“餐饮企业核心竞争力的培育” 的论文 lot of;lots of;a lot;a lots;a lots of;a lot of的区别 电阻的色标怎么读的?比如说是一个1230的电阻 应该是综红橙综?也可以理解为12000误差为1%的电阻啊 色标电阻如何读值 a lot of与lots of的区别是什么? 英语翻译如题 1K电阻是什么色标.10K电阻是什么色标 a lot of / lots of嗯There is a lot of water.There is a lot of books.There are lots of books.There is lots of water.这是我的猜想.这里的there be句型中的be 是根据a lot of、 lots of 的变化而变,还是根据后面那个名词的变 central weighted median filter (CWM) ,^-^为什么会出现人类啊`? lot of、a lot of与lots of的区别 世界上为什么会出现人类呢?这是为什么. 人们穿的化纤面料的服装为什么容易脏? 围魏救赵的故事?要真的! a lot of和lots of的区别与用法 想知道中国服装将来的走向会是怎样?化纤面料又将何去何从? 环境恶化、( )和( )是当今地球所面临的重大问题 为什么世界上会出现人类? 冬天穿化纤布料的服装特别爱“上灰”甚至拍都拍不掉这是为什么 现在地球面临的环境问题对地球有那些影响 a lot of,lots of与a lot的区别与用法,举例说明
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘