无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2750|回复: 0
打印 上一主题 下一主题

绿色版OFFICE的文件关联

[复制链接]
跳转到指定楼层
1#
发表于 2007-6-11 16:55:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
'如果文件名不一样,稍微有点编程知识的人看看应该就知道怎么改了,关键变量就是APPToLink和APPLength

'关联多种文件类型示例
Function GetPath
    '' Retrieve path to the script file
    Dim path
    path = WScript.ScriptFullName  '' Script file name
    GetPath = Left(path, InstrRev(path, "\")-1)
End Function


Dim WSHShell,APPToLink,CurAPP,APPLength,TypeToLink(3),CurType,TypeLength,HowTo

HowTo = MsgBOX("将要设置Office文件用本目录应用程序打开",vbOKCancel)
IF HowTo = vbOK Then

Set WSHShell = WScript.CreateObject("WScript.Shell")

APPToLink = "EXCEL   MSACCESSPOWERPNTWINWORD"    '设置所有应用程序
CurAPP = vbNullString
APPLength = 8                                    '应用程序名长度

TypeToLink(0) = "XLSXLTXLAXLCXLWCSVXLMXLLXLBSLK"     '设置支持的文件类型
TypeToLink(1) = "MDBADPMDAMDEADEMDWDBF"
TypeToLink(2) = "PPTPPSPOTPPA"
TypeToLink(3) = "DOCDOTRTFWRI"
TypeLength = 3                    '扩展名长度

'循环各应用程序
J=0
Do While J<=UBound(TypeToLink)     '不超过数组维数
CurAPP=Trim(Mid(APPToLink,J*APPLength+1,APPLength))
CurType = vbNullString

'以下循环注册各个文件的右键菜单
I=1
  Do 'While TypeToLink(J).Length\TypeLength>=I
  CurType=Trim(Mid(TypeToLink(J),(I-1)*TypeLength+1,TypeLength))
  IF CurType=vbNullString Then Exit Do
  WSHShell.RegWrite "HKCR\."&CurType&"\",CurType&"file"
  WSHShell.RegWrite "HKCR\"&CurType&"file\DefaultIcon\",Chr(34)&GetPath()&"\"&CurAPP&".EXE"&Chr(34)&",0","REG_EXPAND_SZ"
  WSHShell.RegWrite "HKCR\"&CurType&"file\shell\open\command\",Chr(34)&GetPath()&"\"&CurAPP&".EXE"&Chr(34)&SPACE(1)&Chr(34)&"%1"&Chr(34),"REG_SZ"
  I=I+1
  Loop

J=J+1
Loop

'因为目录中很可能有空格,会被解释为多个参数,所以要用CHR(34)给路径强行加上双引号;
'因为参数也可能是包含路径的文件名,所以也要做相同处理;
'程序与参数间要用SPACE(1)来加空格,直接在路径中加空格是行不通的,注册表里解释时会出错
MsgBOX "已经OK!"

Else

WScript.echo "用户取消设置!"

END IF
WScript.Quit  '' Terminate script.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2026-3-8 14:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表