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

VB如何使你的程序同文件扩展名建立关联?

HTML文档下载 WORD文档下载 PDF文档下载
VB如何使你的程序同文件扩展名建立关联?



如果你的程序是同文件操作有关,比如说你自定义了一个文件类型,用你的程序才能打开它并查看其中的内容。你有没有想过在你的文件同你的程序之间建立关联,这样不必每次都要先启动程序,再打开文件了。用户可直接点选你的文件,而不必每次都要面对一个“打开方式”对话框。其实要做到这一点,只须调用API函数就行了。下面的代码向你演示如何实现这一功能。


首先在窗体的通用声明段中加入下面的代码:


Option Explicit

Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, _
ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, _
ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long

' Return codes from Registration functions.
Const ERROR_SUCCESS = 0&
Const ERROR_BADDB = 1&
Const ERROR_BADKEY = 2&
Const ERROR_CANTOPEN = 3&
Const ERROR_CANTREAD = 4&
Const ERROR_CANTWRITE = 5&
Const ERROR_OUTOFMEMORY = 6&
Const ERROR_INVALID_PARAMETER = 7&
Const ERROR_ACCESS_DENIED = 8&

Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const MAX_PATH = 260&
Private Const REG_SZ = 1

在窗体的Click事件中加入下面的代码
Private Sub Form_Click()

Dim sKeyName As String 'Holds Key Name in registry.
Dim sKeyValue As String 'Holds Key Value in registry.
Dim ret& 'Holds error status if any from API calls.
Dim lphKey& 'Holds created key handle from RegCreateKey.

'This creates a Root entry called "MyApp".
sKeyName = "MyApp"
sKeyValue = "My Application"
ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)

'This creates a Root entry called .BAR associated with "MyApp".
sKeyName = ".BAR"
sKeyValue = "MyApp"
ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)

'This sets the command line for "MyApp".
sKeyName = "MyApp"
sKeyValue = "c:\mydir\my.exe %1"
ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
ret& = RegSetValue&(lphKey&, "shell\open\command", REG_SZ, _
sKeyValue, MAX_PATH)
End Sub
按F5运行程序并在窗体上点击一下鼠标,然后退出程序.


从开始菜单中运行REGEDIT,你可在HKEY_CLASSES_ROOT下找到.bar和MyApp两个子项,结构如下所示:

.bar = MyApp
MyApp = My Application
|
-- Shell
|
-- open
|
-- command = c:\mydir\my.exe %1


你可以查看关于RegCreateKey和RegSetValue的用法说明。

新东方在线CTO曾明:已用Cocos2d-html5开发出150余款产品 Facebook 2013年的9个开源项目 开源力量公开课2013年度庆典:我们的开源项目 看雪学院“走进企业看安全”活动走进安全管家 视频+PPT:苹果iOS7 Tech Talks大会演讲内容 iPhone 6和Galaxy S5暂不会采用弯曲屏技术 当程序不工作时,开发者常用的借口 携程技术副总裁叶亚明:三次重大技术改进的故事及背后原因 Google抛弃C语言,采用Go语言重写Go编译器 jQuery Mobile 1.4.0正式版发布,着重性能改进 IBM收购Aspera加速大数据传输 各式各样的极品程序员,你属于哪一种 Google员工离职前必做的14件事情 GitHub上最火的开源项目及编程语言是什么? 2014的12个大数据趋势:Hadoop继续升温,R将进入主流 研究称三星手机可能存在安全漏洞 初创IT公司里开发者最容易犯的九种错误 还有多少开发者在为IE6做兼容性测试? 解读华三“新IT易之道”理念下的云计算和数据中心 回顾苹果2013:硬件几乎无突破 热衷收购 敏捷开发流程管理须参考的3个要素 微软潘正磊谈DevOps、Visual Studio 2013新功能、.NET未来 Jail Breaking之后,iOS 7的指纹识别还hold住么? “勇者前线”开发商Gumi获1900万美元融资 工信部发首批10张虚拟运营商牌照 开发者有哪些新机会 【PPT集萃】十位一线专家分享Spark现状与未来 谁主沉浮,亚马逊和思科角力DaaS市场 忆往昔峥嵘岁月稠——看苹果第一代iPhone的“风骚”往事 开源工具链“大牛”的经验分享:HelloGCC 2013精彩演讲回顾 20个超实用的JavaScript技巧及最佳实践 【开源专访】Linux Deepin:做更好用的Linux桌面系统 怎么获得地址 怎样使UltraEdit可以编译Java? 菜鸟问题:我建立一个工程后,用ClassWizard增加了一个类,它的基类是CTreeView,当我编译的时候出现错误,提示我的基类是不明确的,这是为什么 这个错误是因为什么?Exception in thread "main" java.lang.NoClassDefFoundError:Example 为什么接到集线器上的网线会一闪一闪的! insert into的问题,看是简单,但却不简单。。。 vb绘图问题 请问加入什么代码才能在下面的程序中实现分页!??谢谢! 如何判断局域网内另一台机器上的一个NT服务是否启动? 一各递归的问题。 寻求有关NAND FLASH 和支持他的文件系统的中文资料 Access数据库应该用什么数据库引擎驱动? 各位,谁有InstallShield Express 3.53 15天使用版的激活码阿 ado 中的数据库动态查询 好久没上来了,请大家谈一谈portal吧..... 连接 Access数据库应该用什么数据库引擎驱动? 怎么做到你在Copy文件,遍历目录时.进度条和操作过程一至呢? 如何在XP下设置打印机的纸张 请问如何获取DataList的EditItemTemplate中的自定义控的属性? asp.net(C#)里,如何判断一个数据库的字段是否为null? 世界杯和队歌集锦 在汇编中,如何实现延时 Outlook的问题,很急!!!在线等!!! 小弟最近需要注册一国际域名,可否提供一个地方? 诚征MCSD考友,本人上地上班 请大家指教 请教各位一个关于ADO的问题,很奇怪 应用程序性能评测器 (APE,Application Performance Explorer)大家有没有使用经验?来交流以下了! 关于outlook express和MSN Messager的问题 我想从指定的文件初始化 Bitmap 类的新实例。我怎样才能更改那个新实例的大小和分辨率呢? 各位软件开发人员:大家都看到了IT市场的不景气,你们各自有什么看法,请发表意见!!! 送分了! 菜鸟提问: 用TDBNavigator + DBGrid删除记录时,会弹出一个英文的删除确认对话框,请问如何去掉该对话框? 急!!!win2000 server安装server pack 2重新启动进入系统后,一切都变成黑白的了???怎样解决?谢谢! 大家帮忙,哪里有datalist中绑定datalist或者datagrid的例子啊? 分啊 程序发布 dephi中用哪个函数可以解决两个日期的差,要求精确到分钟! 谁知道ipvod的透屏技术? 怎么从没有信任关系的网域的机器B上copy文件?有一个可以访问B的账号和密码. jsp中如何实现树状结构? applet 与servlet的通讯 请大虾们进来看看 请问大家如果使用了两个session会有什么影响吗?? 中国古典四大名著教给我们什么? 在iis中,如果需要让访问每个主页的用户都看到一个主页通知,该怎么做?就好象是做一条广告一样 怎么开始学习JAVA,没有c++的基础,很困惑 请教专家高手有什么好建议,谢谢 wingsun,bcb等大虾帮小弟看看这个"参数错误"的问题.谢谢 如何理解连接身份 过滤是物理原理还是化学原理 怎样知道物体带有静电 manner的意思? 【化学】用盐水过滤氯化氢气体是什么原理?就是HCl、HClO混合通入NaCl溶液中能滤去HCl是什么原理?打错了是Cl2不是HClO 传统文化好词好句好段 manner什么意思 茶杯内的纱网,可以将茶叶与茶水分离,便于引用,该设计的化学原理是过滤吗? booth这个单词的例句什么意思 in a .manner是什么意思 德干高原降水少的原因 传统文化历史文化好词好句 德干高原来源于? 求高手们帮我弄个 一块磁铁从中间截断,为什么不能吸到一起?按照道理,断了之后中间的两极应该是异性,应该吸到一起,可是实际情况是弹开.可能你小时候也试过,摔断了就不能吸到一起了,而是相坼的 ☆不要在 德干高原在地图的哪边? 关于氧气制法的实验``实验前在一侧针管内留20ml空气,然后给装有铜丝的硬质玻璃管加热,同时缓慢交替推拉两个注射器的活塞,只玻璃管内的铜丝变黑,且装置内气体的量不再进一步变化.停止 用电磁铁将金属制品分离出来 这种做法为什么是不合理的阿大神们帮帮忙垃圾分类回收对资源的充分利用及环境保护有重要意义.下列对垃圾的处理方法中不合理的是( ) A.将回收的废旧 拔火罐的火是什么火 下列叙述中错误的是问 应选哪个?为什么?/> 220v电机引出线只有三条,怎么接正反转?(图) 拔罐的作用?我颈椎不舒服 23岁 适合拔罐吗?对于身体健康的人拔罐有好处吗? 工业上制取大量氧气的方法是 CaO+H2O=2Ca(OH)2现象是什么 拔罐有什么好处?会有后遗症吗?30岁能不能拔罐?患者信息:女 25-34岁 关于晶体和非晶体,下列说法中正确的是 利用直流高压电源如何使物体带静电,或如何产生静电场.我手头上现有6KV直流高压电源.怎么接?急 拔火罐的火怎么弄 东亚,南亚人口密集,其主要原因是什么? 请问有以直流为电源的高压(50—80KV)静电发生器吗?如果把两块(约20x20cm)大小的相对对地绝缘的金属板平行放置,金属板间距约5cm的话,大约需要施加多大的同极静电电压才能在它们之间产 同步发电机定子和转子的作用.? 南亚季风形成的主要原因 家电展厅接了地线怎么会所有金属物体都带静电?展厅把电源全部关闭,金属物体还是带静电而且只要在展厅里面桌椅金属边框也会有静电.今天去查地线,将钳子放在玻璃桌上,过了一会,钳子也 发电机定子与转子由什么构成?我说的电厂直流同步电机 谁知道booth 传统文化好词好句 为什么矿泉水和纯净水都有保质期? 为什么科学上一直用正电荷定向移动的方向为电流方向 直流电动机电枢电动势的作用是什么呀? 纯净水和山泉水(矿泉水)哪个保质期长?为什么? CaO与H2O反应会不会产生气泡 如何使物体带上静电RT 请问高手 "MACBETH Color Booth" 这个专有名词该怎麼翻译? 德干高原西侧的降水为什么多于东侧? 如何称取带静电物质一些固体物料上存在静电,导致天平很难稳定下来,如何才能更准确的称取呢 哪个海峡把东南亚分成了中南半岛和马来群岛两部分 德干高原降水少的原因是什么呢查了半天也没有结果,希望能得到一个科学一点的答案. 容易带静电的物体 如何把 俩个吸力很大的磁铁 分开 为什么德干高原东部降水比西部少 描写传统文化的句子有哪些 下列地区属于热带季风的是 ①马来群岛②西亚③南亚④中南半岛 A ①② B ②④ C ①④ D②③ 火车运输煤炭时怎样测量煤的高度呢?恩 我再补充一下,我就是要利用高度测量来确定火车是否装够了65吨或者55吨,您明白了么? 描写传统文化的好词好句 东南亚主要包括中南半岛和马来群岛两部分 对么?今天必须告诉答案才给悬赏分我记得应该是 东南亚是由中南半岛、马来群岛和很多岛屿组成的 明天就考期中了 在今天回答啊! 用哪些方法制氧气 关于晶体的下列说法中a、在晶体中只要有阴离子就一定有阳离子b、在晶体中只要有阳离子就一定有阴离子c、原子晶体的熔点一定比金属晶体的高d、分子晶体的熔点一定比原子晶体的低 把火柴平放在蜡烛燃烧的火焰中,1秒后取出火柴,哪里烧得最黑? 过滤和蒸发的原理是啥? 关于晶体下列说法不正确的是( )A晶体具有一定的熔点,熔解过程中温度保持不变B.晶体呈多面体状C.硫酸铜晶体带5个晶体水,在空气中易失去水分子,属于物理变化D.饱和溶液蒸发溶剂时, booth manner怎么翻译~~什么意思
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘