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

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函数的用法,然后熟悉注册表操作,就能灵活的写出与注册表相关的程序来。
在iOS程序中使用Bluemix云推送服务 GitHub开源任务列表组件 表白健身小能手!详解Apple Watch特色功能 高逼格不任性!个人智能航空摄影飞行设备ZANO Clappr——开源的Web视频播放器 东软举办2014解决方案论坛 将全面推进BBC战略 Google Glass已死,智能眼镜长存! 五个步骤,保护移动应用免受恶意攻击 声波改变移动社交——参加联想“茄子快传”创意征集 赢取平板电脑大奖! 车载硬件Baen:被游戏化的驾驶体验 深入解析Docker背后的namespace技术 响应苹果要求:Qt 5.4、Qt Creator 3.3同迎RC版 击碎泡沫谈发展,盘点OpenStack商业生态圈! 2014年11月操作系统份额:Windows 7雄居第一,XP跌新低 微信开放平台上线统计报表功能 【向导】如何开始学习高伸缩性编程? 基于Apache Samza,揭秘LinkedIn架构背后的技术 Aeron:每秒可以传递数百万消息的低延时开源消息系统 英特尔物联网马拉松:用创造力改变生活 年末总结:2014年全球手游市场发展的六大趋势 Saber——模块化、组合式的移动前端框架 什么仇什么怨?还原日本反美颜应用Primo真面目 横跨2D与3D!专属C#开发者的超强游戏引擎Paradox 首份“2014年移动外语学习行业报告”等你下载 《近匠》Ayla联合创始人张南雄:物联网发展的三个阶段 神器 VisuAlgo:通过动画学习算法和数据结构 【工具推荐】QWrap——开源的前端JavaScript框架 老外看中国:移动应用UI设计的十大精髓 HTML5正名记:两家机构的博弈与一种标准的诞生 电池技术为何停滞不前?革新技术尚未出现 如何设计优雅的移动游戏? 软件发布:词汇通霸[挑战王I号] 软件发布:龙飞QQ伴侣 软件发布:信息群发圣手(Bbs+Email+icq)免安装版 软件发布:网络主机扫描软件(HostScan) 软件发布:ADSL 超频奇兵 软件发布:绿幽灵高速多功能浏览器 软件发布:辟邪脸谱 软件发布:邮件群发机 软件发布:拯救地球 软件发布:九城的修行器 软件发布:龙飞定时器 软件发布:加密vfp的exe,防止反编译 软件发布:“破解注册表编辑器” 软件发布:神奇注册表 软件发布:CDWizard(光驱精灵.NET) 软件发布:神通 2001 豪华版 软件发布:VB6历史文件清理器 菜单问题!!送分哟! 请问PB7.0中,Freeform格式的数据窗口中,为何按滚动条,数据不是滚动到第一页就是最后一页?如何实现自由滚动? B/S结构用何东东编最快? 关于mpeg-4 请问各位大虾:CBitmap对象如何写入一个BMP文件? 对面的大哥看过来!高分征解有关SetWindowPos的问题。 如何刷新文件内容的缓冲? 昨天一夜星际~~~后 一个捉摸的问题,、高分请解决! 在WEBLOGIC5.1上发布EJB1.1的一个小问题 请教,如何用jbuilder 写midas的服务器, 我们公司一个程序员的头式太难看了,我每次见他就恨不得拿剃头的推子给他剃光光! 寻最好的ftp软件 autoCAD的问题 找本站里面《程序员测试软件》的注册码 刚毕业的不能报? .lib 文件到底是怎么回事?如何查看它的内容? 请问,下面的警告提示什么意思(关于sybase) 那位可以给我描述一下“代表”? 请问有WINsock编程高手么,帮我看一下下面的程序 紧急招聘PB程序员(成都) 关于产品序列号的问题……想了很久了。 这里有几个问题,能者请进! 请教VC项目开发经验 如何让下载的程序变成免费的? 请问有Pdf到Text的转化的源代码么? 能否让下载的程序变成免费的? 请问怎样才能自动复制文本框中的文本到剪贴板? 是否可用简体中文的VB开发翻体中文的应用程序? 使用JavaMail转发邮件 在servlet中是不是不可以引用其它的类中的函数.(这个类不是派生于HttpServlet) 为什么买书配送的光盘文件在BCB工程中打开后不让修改(打开前已转换为存档文件了)? 请教使用OPEN CLIENT 的一个小问题 索求算法 原有大米和面粉165吨,大米售出7∕2后,又运来面粉15吨,这是大米与面粉的吨数正好相等,原有大米多少吨 艾华读一本180页的故事书,第一天看了全书的五分之二,第二天看了全书的四分之一,第三天应从第几也看起? 小丽计划三天看完一本280页的书,第一天看了全书的七分之二,第二天看了第一天的五分之三,第三天小丽应从第 右图是佳美西饼屋做曲奇饼干时的配料使用情况统计图,如果鸡蛋使用1.5千克,那么面粉需要多少千克? 小明看一本故事书,上午看了全书的三分之一,下午看了全书的五分之二,这本书共有120页,小明晚上接着看这本书应从第几页开始看? 小丽看一本书,三天看完.第一天看全书的18分之7,第二天看了全书的9分之4.第三天看了全书的几分之几 食堂买来两袋面粉,第一袋重50千克,第二袋重45千克,第一个星期吃了总数的2/3,吃了多少千克 一本故事书共有180页 小明第一天看了全书的三分之一 第二天看了余下的三分之一,第三天应该从第几页看起? 小丽计划三天看完一本书,第一天看了全书的7分之2,第二天看了全书的5分之3.如果她第三天实际看了16页那么第一天看了多少页? 有两袋面粉,第一袋是第二袋的5/6,.如果从第二袋中取出3千克,则同样重,怎样计算 小明三天看完一本故事书,第一天看了全书的五分之二还少8页,第二天看了全书的三分之一还多28页,第三天看了100页.这本故事书一共有多少页?用比例做 小丽计划三天看完一本书,第一天看了全书的7分之2,第二天看了第一天的5分之4,那么小丽前两天看了全书的几分之几?第三天小丽应看完全书的几分之几? 仓库里有一批面粉,第一天运走全部的一半多18吨,第二天运走全部的一半少5吨,还剩40吨,仓库原有多少吨? 一本故事书有320页,第一天看了3/8第二天看了1/5,第三天应从第几页看起? 有一本故事书90页,小林计划18天读完,平均每天看这本书的几分之几? 粮店库存面粉若干袋,第一天卖出库存的一半多4 袋,第二天卖出剩下的一半少3袋,第三天运进的和第二天卖出后剩下的同样多,这时粮店共有面粉50袋,粮店原来库存多少袋面粉? 一本书有150页,小王第一天看了总页数的10分之1,第二天看了总页数的15分之1,第三天应从第几页看起?人体血液占体重的13分之1,血液里约3分之2的水,爸爸的体重是78Kg,他的血液大约含水多少Kg?( 一本300页的故事书,小华计划30天看完,那么他6天能看这本书的几分之几 水果批发站,第一天批发水果是库存的一半少20箱,第二天又批发出剩余的一半多30箱,第三天运进200箱,使库里的水果增加2倍,原有水果多少箱? 一本书有150页,小王第一天看了总数的1/10,第二天看了总数的 1/15,第三天应从第几页看起? 小宁看一本书故事书,9天看了这本书的一半.照这样的速度,他6天看了这本书的几分之几?.我家小学生用我的百度号问的.我现在才知道.无语了, 水果批发市场,第一天批发出的水果是库存的一半少15箱,第二天又批发出剩余的一半多20箱,第三天运进300箱水果,使库存增加3倍,问原来有多少箱水果? 小明看一本150页的故事书,第一天看了全书的五分之一,第二天看了全书的六分之一,第三天应从第几页开始看? 小明15天看完一本故事书,平均每天看这本书的几分之几?4天呢?6天呢? 水果批发站第一天批发是库车的一半少20箱,第2天有批发出剩余的一半多30箱,第3天运进200箱使库里的水果增加2倍,原来水果有多少箱 一本故事书,小明第一天看了总页数的1/3,第二天看丁总页数的1/4,还有50页没看,他第三天应从第几页看起. 小强看完一本故事书要6天时间,平均每天看几分之几?3天看几分之几?5天呢? 有一筐72千克的苹果,第一天吃了他的6分之1,第二天吃了他的8分之5.还剩下几分之几?还剩下多少千克?用分数回答 一本故事书,小明第一天看了总页数的3分之一,第二天看了总页数的4分之一,还有50页没有看,第三天应从第几页看起? 一本150页发故事书,第一天读了五分之二,第二天读了余下的三分之一.第二天读了多少页? 一筐苹果重72千克.第一天吃了它的8分之一,第2天吃了它的9分之一,还剩下这筐苹果的几分之几?第一天吃了多少千克苹果快 小明有一本故事书,第一天看了全书的1/6,第二天看了32页,第三天看的页数是前两天看的总页数的3/2,这时有全书的1/4没有看,这本故事书一共有多少页?写出算式 一本故事书,第一天看了总页数的3分之一,第2天看了总页数的4分只一,这本故事书共有多少页? 王大伯收了2/1吨西瓜,第一天卖出总数的3/1,第二天卖出总数的10/1,还剩下总数的几分之几? 一本书有300页,小丽第一天看了全书的1/6,第二天看了全书的2/15,第三天应从第几页看起? 一本故事书240页,小华4天看了全书的3分之2,他平均每天看多少页 运来420个西瓜.第一天卖出总数的二分之一,第二天卖出总数的三分之一.还剩总数的几分之几? 小丽,计划四天看完一本书,第一天看了全书的2/9第二天看了全书的25%,第三天看了全书的1/6.第四天应看完书的几分之几?②若小丽第三天看了16页,那么第二天看了多少页? 一本168页的故事书,小华4天读了96页.照这样计算,小华读完这本书一共需要多少天?急 有一袋面粉,第一次用去全部的1/5,第二次用去余下的15%,还剩34千克面粉,共有多少千克? 小丽看一本书120页,第一天看了它的六分之一,第二天看了全书的六分之五少15页,第三天应从第几页开始看 小明看一本120页的故事书,每天看十分之一,已经看了3天,还有几分之几没有看? 甲数是乙数的五分之一,是把什么看作单位1,数量关系式是 一袋面粉重一千克,第一次用去了五分之一千克,第二次用去了三分之二千克,两次一共用去多少千克?还剩多少千克? 过程详细点 小丽看一本书,第一天看了全书的8分之1再加16页,第二天看了全书的6分之1少2页,第三天看完余下的88页.请问这本书有多少页?不要给我列方程做! 甲的5分之4等于乙. 单位“1”的量是: 甲相当于乙的8分之3.单位“1”的量是:剩下全长的3分之2.单位“1”的量是: 一袋面粉多少克 一本故事书有320页,小丽的一天看了8分之3,第二天看了5分之1.第三天应从第几页开始看. 谁是谁的几分之几,谁的几分之几,谁比谁少.分数应用题怎么做有什么办法好记?用乘法还是除法?“比”“是”“的”等一些连接词用什么法?把数量关系式补充完整怎么做?反正很多很多! 冬冬家买来一袋面粉,吃了五分之三,正好是9千克.原来这袋面粉重多少千克?如题,就是这样,用方程解,求过程 一本故事书有120页,小丽第一天读了全书的1/6,第二天读了余下的1/4,第三天应从第几页读起?求.大哥大姐们 谁是谁的几分之几乘还是除 冬冬家买来买来一袋面粉,吃了15千克,正好是这袋面粉的5分之3,这袋面粉重多少千克(写等量关系式) 小丽读一本故事书,第一天读了全书的1/12还多18页,第二天读了全书的1/5少5页这时还剩下73页.这本故事书共有多少页? 某粮店出售的三种品牌的面粉袋上,分别标有质量为(25±0.1)kg、(25±0.2)kg、(25±0.3)kg的字样,从中任意拿出两袋,它们的质量最多相差多少?原因是什么?过程?为什么有人说0.5 有人说0.6 到 1、冬冬家买来一袋面粉,重25千克.吃了五分之三,吃了多少千克?2、冬冬家买来一袋面粉,吃了1、冬冬家买来一袋面粉,重25千克.吃了五分之三,吃了多少千克?2、冬冬家买来一袋面粉,吃了15千克, 小丽看一本故事书,第一天看了20%,第二天看了剩下的30%,还剩112页,全书共多少页 1、 上午卖出1/4,下午卖出的是上午的4/5.还剩下110袋,这一天该店共卖出多少袋面粉? 一本一百页的故事书,第一天看了书的五分之二,第二天看了书的四分之一,第三天要看多少页才能把书看完? 小丽读一本书,第一天读了全书的六分之一,第二天读了全书的四分之一,第三天她正好应从第151页读起,这本书有多少页?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn