none
记事本程序如何实现双击打开文件? RRS feed

  • 问题

  • 话说我做练习写了个简单的记事本程序(还有很多问题未解决呢,谁在笑我?),可以实现文件-打开命令打开文件。
    然后我设置TXT文件默认打开方式为我的记事本程序,问题来了程序是运行了,但是没有文字,蒙了!
    我想是我没有编写双击打开的代码。
    搜了一下,发现有用System.Environment.GetCommandLineArgs方法打开的,我直接F1。
    但是还是没解决问题,大哥大姐帮忙出点对策,谢谢了。

    2009年12月7日 20:17

答案

全部回复

  • Msgbox System.Environment.GetCommandLineArgs
    分析这个字符窜可以得到你传进来的文件名,在调用你的打开代码
    http://feiyun0112.cnblogs.com/
    • 已标记为答案 心随 2009年12月8日 16:47
    2009年12月8日 0:39
    版主
  • 对呀!把信息显示出来就知道怎么使用了!
    我再试试看

    • 已标记为答案 心随 2009年12月8日 16:47
    • 取消答案标记 心随 2009年12月8日 16:47
    2009年12月8日 5:36
  • 问题解决了,谢谢老师,在这把代码贴出来(Form1为记事本的主界面窗口)。

        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            '接受双击打开
            Dim MyFileName As String = ""                  '接受文件的地址    
            Dim CMD() As String                                '定义数组接受来自系统信息
            Dim i As Integer
            CMD = System.Environment.GetCommandLineArgs()  '接受信息
            i = CMD.GetUpperBound(0)                       '判断CMD内一维的子集个数
            MsgBox("文件信息数组个数为:" & i+1)            '调试完毕时可以注释掉
            If i > 0 Then                                            '若多于2个,则第二个是文件地址
                MyFileName = CMD(1)
                MsgBox(MyFileName)                             '调试完毕时可以注释掉

            End If
            Try
                '保存该文件路径和名称
                strFileName = MyFileName
                Dim fileContents As String
                fileContents = My.Computer.FileSystem.ReadAllText(strFileName, System.Text.Encoding.Default)
                '显示文本框中的内容,System.Text.Encoding.Default获取操作系统的当前 ANSI 代码页的编码。
                RichTextBox1.Text = fileContents
            Catch ex As Exception
                MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try

        End Sub

    其他程序要实现这个功能就可以参考这个例程了!

    • 已编辑 心随 2009年12月8日 6:04 写错
    2009年12月8日 6:02