900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 在Windows操作系统中改变文件打开方式

在Windows操作系统中改变文件打开方式

时间:2019-03-04 00:24:29

相关推荐

在Windows操作系统中改变文件打开方式

下面是个简单易学的在Windows操作系统中改变文件打开方式教程,小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

在Windows95/NT/98操作系统中改变文件打开方式的问题,又可称为改变文件类型关联的问题,即把某类型(扩展名)的文件与某应用程序关联,例如通常当双击*.txt文件时系统自动调用。本文介绍利用注册表编辑器手工或编程改变文件打开方式的方法,并提供程序实例。

一、基本思路:

1、注册表编辑器是用于更改系统注册表设置的高级工具,包含了关于系统配置及运行的重要信息,默认访问路径为。双击图标,运行注册表编辑器。在左侧显示栏内看到、、等主键。与文件类型有关的所有主键、键名、键值都存放在下。

◆双击HKEY_CLASSES_ROOT,向下拖动滚动条,找到.txt主键,右侧显示栏内“txtfile”说明:在HKEY_CLASSES_ROOT下有一txtfile主键,其下存放了打开*.txt文件应用程序的有关信息。

◆向下拖动滚动条,找到txtfile主键,右侧显示栏内“文本文档”为文件类型描述。双击txtfile,DefaultIcon右侧显示栏内“,-”为*文件的图标;,右侧显示栏内“%”为打开*文件的应用程序名称及参数。改变打开文件方式的方法(例如用打开*文件):

◆手工:打开系统注册表,在HKEY_CLASSES_ROOT下找到.exc及另一主键名,找到此主键,将shellopencommand右侧显示栏内“C:%”改为“%”(假设的访问路径是,具体视情况而定),按刷新系统注册表。

◆编程:利用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))

IfintZeroPos0Then

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+“shellopencommand”,hKey)

MyReturn=RegSetStringValue(hKey,“”,“c:%”,)

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事件代码。

();

var

;

;

begin

try

MyRegistry:=();

;

Return:=MyRegistry.ReadString(`.gid`,``,`No!NotFoundtheKey!`);

MyRegistry.WriteString(Return,``,`这只是一个演示!`);

MyRegistry.WriteString(Return+`DefaultIcon`,``,`c:visio.exe,1`);

MyRegistry.WriteString(Return+`shellopencommand`,``,`c:visio.exe%1`);

finally

MyRegistry.Free;

end;

ShowMessage(`改变文件打开方式成功!`);

end;

4、按F9运行程序,在简体中文Windows95/NT/98、Delphi3.0/4.0环境中调试通过。->

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。