如何双击txt文件可以让我编的记事本程序直接打开?

xmlscript 2004-05-08 10:31:25
我不是问如何关联程序,因为我只要手动设置就可以了。
这回我关联了txt文件,打开的程序是我自己编的一个简单的记事本程序,只有一个textbox控件而已。
那么,问题是如何双击文件后,打开了我的程序,内容显示在textbox里?
...全文
59 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
flyingZFX 2004-05-08

哇噻,真是高手呀~~
  • 打赏
  • 举报
回复
RyuOut 2004-05-08
就一行代码OK了
  • 打赏
  • 举报
回复
captainivy 2004-05-08

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

  • 打赏
  • 举报
回复
相关推荐
发帖
VB基础类
加入

7545

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2004-05-08 10:31
社区公告
暂无公告