电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 认证考试-> Java认证
在windows操作系统中改变文件打开方式_visualbasic教程
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
在Windows95/NT/98操作系统中改变文件打开方式的问题,又可称为改变文件类型关联的问题,即把某类型(扩展名)的文件与某应用程序关联,例如通常当双击*.txt文件时系统自动调用Notepad.exe。本文介绍利用Windows注册表编辑器Regedit.exe手工或编程改变文件打开方式的方法,并提供程序实例。
  一、基本思路:
  1、注册表编辑器Regedit.exe是用于更改系统注册表设置的高级工具,包含了关于系统配置及运行的重要信息,默认访问路径为C:\Windows\Regedit.exe。双击Regedit.exe图标,运行注册表编辑器。在左侧显示栏内看到HKEY_CLASSES_ROOT、KEY_CURRENT_USER、HKEY_LOCAL_MACHINE等主键。与文件类型有关的所有主键、键名、键值都存放在HKEY_CLASSES_ROOT下。
  ◆双击HKEY_CLASSES_ROOT,向下拖动滚动条,找到.txt主键,右侧显示栏内“txtfile”说明:在HKEY_CLASSES_ROOT下有一txtfile主键,其下存放了打开*.txt文件应用程序的有关信息。
  ◆向下拖动滚动条,找到txtfile主键,右侧显示栏内“文本文档”为文件类型描述。双击txtfile,DefaultIcon右侧显示栏内“shell32.dll,-152”为*.txt文件的图标;shell\open\command,右侧显示栏内“C:\WINDOWS\NOTEPAD.EXE%1”为打开*.txt文件的应用程序名称及参数。  改变打开文件方式的方法(例如用VISIO打开*.exc文件):
  ◆手工:打开系统注册表,在HKEY_CLASSES_ROOT下找到.exc及另一主键名,找到此主键,将shell\open\command右侧显示栏内“C:\WINDOWS\NOTEPAD.EXE%1”改为“C:\VISIO.EXE%1”(假设VISIO.EXE的访问路径是C:\,具体视情况而定),按F5刷新系统注册表。
  ◆编程:利用VB、Delphi、C++Builder等读写系统注册表,可自动改变文件打开方式。本文提供VB、Delphi编程实例。
  二、编程实例:
  ㈠利用VB编程
  1、在VB5.0IDE中,新建工程Project1,在Form1上添加命令按钮Command1。
  2、选择菜单“工程”—“添加模块”—“模块”—“打开”,在Project1中添加模块Moudle1。
  3、在Moudle1“通用—声明”部分声明API函数和常量。
  ConstREG_SZ=1
  GlobalConstHKEY_CLASSES_ROOT=&H80000000
DeclareFunctionOSRegQueryValueExLib“advapi32”Alias“RegQueryValueExA”(ByValhKeyAsLong,ByVallpszValueNameAsString,
ByValdwReservedAsLong,lpdwTypeAsLong,lpbDataAsAny,cbDataAsLong)AsLong
DeclareFunctionOSRegOpenKeyLib“advapi32”Alias“RegOpenKeyA”(ByValhKeyAsLong,ByVallpszSubKeyAsString,phkResultAsLong)AsLong
DeclareFunctionOSRegSetValueExLib“advapi32”Alias“RegSetValueExA”(ByValhKeyAsLong,ByVallpszValueNameAsString,
ByValdwReservedAsLong,ByValfdwTypeAsLong,lpbDataAsAny,ByValcbDataAsLong)AsLong
DeclareFunctionOSRegCloseKeyLib“advapi32”Alias“RegCloseKey”(ByValhKeyAsLong)AsLong
  4、在Moudle1中编写函数。
  FunctionRegOpenKey(ByValhKeyAsLong,ByVallpszSubKeyAsString,
phkResultAsLong)AsBoolean
  DimlResultAsLong
  OnErrorGoTo0`关闭错误陷阱
  lResult=OSRegOpenKey(hKey,lpszSubKey,phkResult)
  IflResult=0Then
  RegOpenKey=True
  Else
  RegOpenKey=False
  EndIf
  EndFunction
  FunctionRegSetStringValue(ByValhKeyAsLong,ByValstrValueNameAsString,
ByValstrDataAsString,OptionalByValfLog)AsBoolean
  DimlResultAsLong
  OnErrorGoTo0
  lResult=OSRegSetValueEx(hKey,strValueName,0&,REG_SZ,ByValstrData,
LenB(StrConv(strData,vbFromUnicode))+1)
  IflResult=0Then
  RegSetStringValue=True
  Else
  RegSetStringValue=False
  EndIf
  EndFunction
  FunctionStripTerminator(ByValstrStringAsString)AsString
  DimintZeroPosAsInteger
  intZeroPos=InStr(strString,Chr$(0))
  IfintZeroPos>0Then
  StripTerminator=Left$(strString,intZeroPos-1)
  Else
  StripTerminator=strString
  EndIf
  EndFunction
  FunctionRegQueryStringValue(ByValhKeyAsLong,ByValstrValueNameAsString,
strDataAsString)AsBoolean
  DimlResultAsLong
  DimlValueTypeAsLong
  DimstrBufAsString
  DimlDataBufSizeAsLong
  RegQueryStringValue=False
  OnErrorGoTo0
  lResult=OSRegQueryValueEx(hKey,strValueName,0&,lValueType,ByVal0&,
lDataBufSize)
  IflResult=ERROR_SUCCESSThen
  IflValueType=REG_SZThen
  strBuf=String(lDataBufSize,“”)
  lResult=OSRegQueryValueEx(hKey,strValueName,0&,0&,ByValstrBuf,
lDataBufSize)
  IflResult=ERROR_SUCCESSThen
  RegQueryStringValue=True
  strData=StripTerminator(strBuf)
  EndIf
  EndIf
  EndIf
  EndFunction
  5、双击Command1,编写Click事件代码。
  PrivateSubCommand1_Click()
  DimhKeyAsLong
  DimMyReturnAsLong
  DimMyDataAsString
  MyReturn=OSRegOpenKey(HKEY_CLASSES_ROOT,“.exc”,hKey)
  MyReturn=RegQueryStringValue(hKey,“”,MyData)
  MyReturn=OSRegOpenKey(HKEY_CLASSES_ROOT,MyData+“\shell\open\command”,hKey)
  MyReturn=RegSetStringValue(hKey,“”,“c:\visio.exe1%”,False)
  IfMyReturnThen
  MsgBox“改变文件打开方式成功!”,vbInformation,“请注意”
  Else
  MsgBox“改变文件打开方式失败!”,vbExclamation,“请注意”
  EndIf
  OSRegCloseKey(hKey)
  EndSub
  6、按F5运行程序,在简体中文Windows95/NT/98、VB5.0/6.0环境中调试通过。
  ㈡利用Delphi编程
  1、在Delphi3.0IDE中,新建工程Project1,在Form1上添加按钮Button1。
  2、在uses子句中添加Registry。
  3、双击Button1,编写Click事件代码。
  procedureTForm1.Button1Click(Sender:Tobject);
  var
  MyRegistry:TRegINIFile;
  Return:string;
  begin
  try
  MyRegistry:=TRegINIFile.Create(``);
  MyRegistry.RootKey:=HKEY_CLASSES_ROOT;
  Return:=MyRegistry.ReadString(`.gid`,``,`No!NotFoundtheKey!`);
  MyRegistry.WriteString(Return,``,`这只是一个演示!`);
  MyRegistry.WriteString(Return+`\DefaultIcon`,``,`c:\visio.exe,1`);
  MyRegistry.WriteString(Return+`\shell\open\command`,``,`c:\visio.exe%1`);
  finally
  MyRegistry.Free;
  end;
  ShowMessage(`改变文件打开方式成功!`);
  end;
  4、按F9运行程序,在简体中文Windows95/NT/98、Delphi3.0/4.0环境中调试通过。->


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·java认证的目的和步骤_java认证
·sun java it技术认证问题解答_java认证
·scjp认证套题解析之一_java认证
·jcreater+motoj2sdk的配置与使用心得_java认证
·java语言入门(2)_java认证
·java语言入门(1)_java认证
·在java中使用正则表达式_java认证
·java语言特点及开发工具jdk_java认证
·热门问题:java.exe出错错误分析_java认证
·java中的测不准原理_java认证

最新文章
·photoshop简单为美女照片瘦身及调色_photoshop教程
·photoshop模仿龟裂的瓷纹杯_photoshop教程
·photoshop绘鲜美葡萄 表现光影效果_photoshop教程
·java认证培训辅导:随机整数的生成_java认证
·java考试认证:scjp310-035考试心得_java认证
·通过java认证 scjp 考试之精辟总结_java认证
·java认证心得:顺利通过scjp测试全接触_java认证
·java认证培训辅导:随机整数的生成_java认证
·利用photoshop通道计算模拟反转负冲效果_photoshop教程
·linux下安装apache与php_php教程


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号