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

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的用法说明。

共享软件海外营销策略与实战分析(武汉站)成功落幕 你未必知道的CSS故事:揭开leading的面纱 2013年 影响Web发展的5类API 《Warcraft是怎样炼成的》:多人对战、战争迷雾以及AI HBTC精彩回顾 Hadoop专家分享大数据技术工具与最佳实践 苹果iTV规格泄露:iOS应用开发的新蓝海 Facebook觊觎微信鼻祖WhatsApp,但谈不上收购 首款社交API应用 Facebook Messenger for Firefox正式上线! 共享软件海外营销策略与实战分析(沈阳站)成功落幕 移动之伤:为什么山寨游戏比原创更火? IBM在京发布PureData 主打数据交易处理、操作分析 Intel发布Hadoop免费版 全力拓展生态圈 突出图片搜索:微软向测试人员开放Socl社交搜索 豌豆荚创始人:和巨头竞争,我们拼产品和技术 “互联网女皇”报告解读:智能电视大趋势 苹果扩大其北卡罗莱纳州燃料电池发电场规模 Oracle回收站使用全攻略 微软这次很诚实:IE真的糟透了 Facebook进军短信业务,挑战微信鼻祖WhatsApp 从菜鸟到专家的五步编程语言学习法 亚马逊企业文化:从书贩到云服务巨头的催化剂 明年Google I/O大会日程敲定 或发Android“酸橙派”? 绝境求生,WebOS寄望Android Facebook在移动路上走过的那些弯路 曙光聂华:推动数据融合 CloudStack Committer李学辉:2013年社区将爆发 继续霸权:美众院否决联合国掌控互联网 墨迹天气创始人金犁:巧用细分市场的力量 Windows 8的IE10在浏览器安全测试中独占鳌头 程序员如何做出“不难看”的设计 JDK6明年2月停止更新,甲骨文呼吁尽快升级至7 求救! 我的IIS+Sql Server 怎么支持多语言,韩文/俄文/日文 ---->>关于数据复制的问题----- windows98网上邻居? 在打开ie时想把'地址'中的网页复制到另一台计算机中如何操作? 平常问题 请教一条UPDATE语句,谢谢! 请问 各位高手介绍几本socket编程的经典书吧 我是一个VC初学者推荐我几本书好吗!! 怎样用fastreport 打印备注型字段 请问液晶显示器沾上了油用什么东西来擦? WEB开发中用C#如何显示一个目录选择对话框?2002版本的 有个关于数据窗口compute的问题请教? 如何返咽一個二維數組? htm里面调用一个jsp页。用javaScript 怎么实现。 怎样添加*.dll文件,如cj60lib.dll,系统自带的吗? 关于记录修改的SQL语句!!! VC的DLL文件怎样在BC中使用?我试过不行 JAVA问题请教 打包运行错误can't start main setup program! 如何把表单上单选框组的内容传给报表啊 iptable怎样限制用户上网? 靠,我的表不能排序啊.....郁闷.... iptable怎样限制用户上网? 求教:输入1个集合,输出它的子集 请问,linux下能用access吗? 问一个“一个页面只能有一个form的问题“ 有关主板BIOS ROM的奇怪问题 请教各位高手,在VB中添加数字排列组合的代码如何编写?多谢!(在线等) # # # # # 200分诚心求教(由于限制,只能先放100),哪位能解决小妹这个问题啊 # # # # # 请问谁知道oracle中计算查询时间的命令? 有关操作系统的几个问题?感谢大家的指点? 大学四年心得-转帖 ORACLE 在本机WIN2000 上装了服务器端后,还需要装客户端才能进行数据库的一般操作吗? 关于PLC向计算机发送数据的问题。 构造函数? # # # # # 200分诚心求教(由于限制,只能先放100),哪位能解决小妹这个问题啊 # # # # # 据大力新闻中心消息:SQLServer版是CSDN气氛最好的版块。 在弹出窗口时出现问题 请多多指教:帮我推荐一本Asp.net+C#的书,入门和稍微难点的。谢谢了 想学java的库类 请各位大大推荐一本书 请问在VC6中如何调用chm帮助文件 简单的控件问题 ADO调用存储过程(ORACLE),用CommandText的问题 字体固定后,所有字符(包括汉字)的高度都相同吗? 请问applet和application之间有什么不同呢? 字体固定后,所有字符(包括汉字)的高度都相同吗 为什么看帖不回帖? 关于用c#操纵word的问题 为什么在WIN下可以,在LINUX下不行呀? 大数除法 储君无恙(打一聊斋篇目) 请社会人员帮助打架能不能解决同学之间的矛盾,这样做会造成什么后果? 现代的生活中对侠客的定义 赵国武有廉颇,文有蔺相如,为什么还是灭亡啦呢 2008冰灾原因和损失总数如题 谢谢了2008年 冰灾肆虐中国.请问冰灾的原因?好像是什么拉尼娜现象的影响吧?然后损失数一共是多少?各位大侠们 帮帮忙 写地理论文~ 什么情况下会冰冻?即08年冰灾那样 为什么2008年冰灾郴州受灾最重 2008年冰灾时公路上为了汽车正常行驶所采用的措施 楚国为什么虽然有廉颇和蔺相如但是还会灭亡? 今年和冰灾那年哪年更冷啊?会有冰灾吗? 推恩令是地方官制还是中央官制 美最新型隐身驱逐舰下水泰国前总理面临谋杀指控奥巴马考虑终止 监听盟国领导人白宫曾叫停监听默克尔?金正恩或“首秀”元首外交朝鲜搭建新导弹发射平台英国窃听丑闻案开庭 默多克昔日爱将出无人机击毙索马里“青年党”高官美国驻也门大使馆虚惊一场 婚礼烟花被美国得州一男子五地疯狂射杀 致其母在利比亚枪手打劫央行5000万美元“四个全面”成中国今年两会主线外媒述评中国近期两次降息意在稳增长北京儿童医院双井分院“六一”开业“雪肌女实习老师”爆红妹妹来不及下公交被夹手 姐姐狂追2公申纪兰报到云南石林发生森林火情 150名森警前香港流感持续肆虐 新增3死累计死亡3印尼已打捞起亚航客机主体残骸最后部分美国加州迪士尼乐园发生小火灾 或因烟过年豆腐树种独眼奴隶的情诗元魂变紫玉九归记之赖汉英外传雨霁战起来油城往事剑神尊者翻过岁月的墙玄气冲天末世之文明葬曲星骸大七孔景区旅游银链坠潭瀑布旅游易水湖旅游文澜阁旅游锦带桥旅游保俶塔旅游风波亭旅游沙孟海故居旅游长江源旅游扎西半岛旅游羊八井地热田旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘