怎么样让用户双击mp3文件以后自动用我的程序打开?

yanzeyuan 2004-04-28 09:27:15
怎么样让用户双击mp3文件以后自动用我的程序打开?

并且mp3的图标都指定为我程序的图标呢?

谢谢,是不是要改注册表啊?怎么改呢?
...全文
52 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanzeyuan 2004-05-08
  • 打赏
  • 举报
回复
我靠!captainivy(Ivy) 我太崇拜你了!

给分!
douhapy 2004-04-28
  • 打赏
  • 举报
回复
应该是 captainivy(Ivy) 解释的那样.
ryuginka 2004-04-28
  • 打赏
  • 举报
回复
疯狂学习中
captainivy 2004-04-28
  • 打赏
  • 举报
回复
1、在注册表中添加自己的文件类型


我知道当点击一个html文件时,浏览器就会自动打开,或者是点击一个doc文件,Word就会运行。有没有想过当用户点击你自己定义文件类型时,你的程序就会自动启动呢?其实想做到这点很简单,只须对注册表做点手脚就行了。

每一个文件类型的信息被保存在注册表中的 'HKEY_CLASSES_ROOT'下面。假设我们自定义的文件类型的后缀为.hyp,文件名 (中间不能有空格).

首先在HKEY_CLASSES_ROOT下创建 .hyp

HKEY_CLASSES_ROOT\.hyp

将[默认]键值改为"Test_File_Hype"。然后在HKEY_CLASSES_ROOT下添加主键 Test_File_Hype

HKEY_CLASSES_ROOT\Test_File_Hype

按照下面的路径添加新的主键

HKEY_CLASSES_ROOT\Test_File_Hype\Shell

HKEY_CLASSES_ROOT\Test_File_Hype\Shell\Open

HKEY_CLASSES_ROOT\Test_File_Hype\Shell\Open\Command

将下面的字符作为Command的键值

your application path.exe %1

(例如 C:\WINDOWS\HYP\HYP.EXE %1)

或许你还想为自己的文件类型加上同自己的执行文件一样的图标,很简单,照下面的方法添加就行了。

HKEY_CLASSES_ROOT\Test_File_Hype\DefaultIcon

输入键值:

your application path.EXE,0

后面的零表示文件的图标同程序的主图标一致,如果你的程序有很多图标,换一换数字就可改变文件显示的图标了。

2、command

msdn:
Command 函数


返回命令行的参数部分,该命令行用于装入 Microsoft Visual Basic 或 Visual Basic 开发的可执行程序。

语法

Command

说明

当从命令行装入 Visual Basic 时,/cmd 之后的命令行的任何部分作为命令行的参数传递给程序。下面的示例中,cmdlineargs 代表 Command 函数返回的参数信息。

VB /cmd cmdlineargs

对于使用 Visual Basic 开发并编译为 .exe 文件的应用程序,Command 返回出现在命令行中应用程序名之后的任何参数。例如:

MyApp cmdlineargs

想知道如何在正在使用的应用程序的用户界面中改变命令行参数,请搜寻关于“命令行参数”的帮助。

Command 函数示例
本示例在某个函数中用 Command 函数获得命令行参数,并将命令行参数以 Variant 类型之数组返回。

Function GetCommandLine(Optional MaxArgs)
'声明变量。
Dim C, CmdLine, CmdLnLen, InArg, I, NumArgs
'检查是否提供了 MaxArgs 参数。
If IsMissing(MaxArgs) Then MaxArgs = 10
' 使数组的大小合适。
ReDim ArgArray(MaxArgs)
NumArgs = 0: InArg = False
'取得命令行参数。
CmdLine = Command()
CmdLnLen = Len(CmdLine)
'以一次一个字符的方式取出命令行参数。
For I = 1 To CmdLnLen
C = Mid(CmdLine, I, 1)
'检测是否为 space 或 tab。
If (C <> " " And C <> vbTab) Then
'若既不是 space 键,也不是 tab 键,
'则检测是否为参数内含之字符。
If Not InArg Then
'新的参数。
'检测参数是否过多。
If NumArgs = MaxArgs Then Exit For
NumArgs = NumArgs + 1
InArg = True
End If
'将字符连接到当前参数中。
ArgArray(NumArgs) = ArgArray(NumArgs) & C
Else
'找到 space 或 tab。
'将 InArg 标志设置成 False。
InArg = False
End If
Next I
'调整数组大小使其刚好符合参数个数。
ReDim Preserve ArgArray(NumArgs)
'将数组返回。
GetCommandLine = ArgArray()
End Function



看完就OK了

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧