none
VB2008 預設開啟副檔名按鈕 RRS feed

  • 問題

  • 我想新增一個btn 這個btn可以把我寫好的VB直接設為txt檔的預設開啟程式

    我不太懂找這個問題的相關資料 請大家幫幫我

    謝謝

    2013年12月27日 上午 08:59

解答

  • 您好,
    他的範例是寫入機碼,如果您是要txt的話,如下,

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            My.Computer.Registry.ClassesRoot.CreateSubKey(".txt").SetValue("", "txtfile", Microsoft.Win32.RegistryValueKind.String)
            My.Computer.Registry.ClassesRoot.CreateSubKey("txtfile\shell\open\command").SetValue("", Application.ExecutablePath & " ""%l"" ", Microsoft.Win32.RegistryValueKind.String)
        End Sub


    在Form Load中如果有檔名的話,就取文字檔的內容,如下,

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            If (My.Application.CommandLineArgs.Count > 0) Then
                MsgBox("Hello, " & My.Computer.FileSystem.ReadAllText(My.Application.CommandLineArgs(0)) & " World!")
            End If
        End Sub

    您可以看一下機碼的對應,如下,


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已標示為解答 KenLamX 2013年12月27日 下午 04:01
    2013年12月27日 下午 01:11
  • 我(Win 8.1)用以上的設定就可以用程式去開啟了說!

    http://www.codeproject.com/Articles/18594/File-Association-in-VB-NET

    Now let's say you want to create a file association for .txt in your program. You create the file association, but it still opens in Notepad. What's going on? There is another value that needs to be deleted located here:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt

    請您再將上面說的那個機碼給刪掉! (您可以先將它匯出後再刪除)



    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已標示為解答 KenLamX 2013年12月27日 下午 04:01
    2013年12月27日 下午 02:25

所有回覆

  • 您好,
    您的前一個問題「http://social.msdn.microsoft.com/Forums/zh-TW/4f8d138e-d7e6-4bc9-a8f3-d844f446c60b/vb2008-txt?forum=232」中,tihs先進不是有提供設定txt所對應的程式!

    您可以在btn中將機碼寫進去,之後DBClick txt時,應該就會去開您的程式了哦!


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2013年12月27日 上午 09:25
  • 成功雙click TXT檔後 直接開啟我的VB 和把TXT檔內的資料寫上TEXTBOX上

    但是之前我需要自己手動設定txt檔的預設開啟程式

    我想新增一個btn 這個btn可以把我寫好的VB直接設為txt檔的預設開啟程式,不需要在WINDOW裡手動SET

    感謝回覆


    • 已編輯 KenLamX 2013年12月27日 上午 09:39
    2013年12月27日 上午 09:37
  • 您好,
    您的程式一執行就去寫機碼設定也可以

    My.Computer.Registry.ClassesRoot.CreateSubKey

    .....


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2013年12月27日 上午 10:23
  • 我知道是用這個程式碼執行,但請問會關如那個機碼?

    我見到有很多個有關連和相同的機碼

    摸不著頭腦,煩請指導一下

    謝謝

    2013年12月27日 上午 11:11
  • 您好,
    他的範例是寫入機碼,如果您是要txt的話,如下,

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            My.Computer.Registry.ClassesRoot.CreateSubKey(".txt").SetValue("", "txtfile", Microsoft.Win32.RegistryValueKind.String)
            My.Computer.Registry.ClassesRoot.CreateSubKey("txtfile\shell\open\command").SetValue("", Application.ExecutablePath & " ""%l"" ", Microsoft.Win32.RegistryValueKind.String)
        End Sub


    在Form Load中如果有檔名的話,就取文字檔的內容,如下,

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            If (My.Application.CommandLineArgs.Count > 0) Then
                MsgBox("Hello, " & My.Computer.FileSystem.ReadAllText(My.Application.CommandLineArgs(0)) & " World!")
            End If
        End Sub

    您可以看一下機碼的對應,如下,


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已標示為解答 KenLamX 2013年12月27日 下午 04:01
    2013年12月27日 下午 01:11
  • 都SET好了, 但是雙CLICK TXT檔都是在window notepad開啟

    電腦重新啟動也一樣 是什麼回事? 我是漏了什麼沒做好??

    2013年12月27日 下午 02:05
  • 我(Win 8.1)用以上的設定就可以用程式去開啟了說!

    http://www.codeproject.com/Articles/18594/File-Association-in-VB-NET

    Now let's say you want to create a file association for .txt in your program. You create the file association, but it still opens in Notepad. What's going on? There is another value that needs to be deleted located here:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt

    請您再將上面說的那個機碼給刪掉! (您可以先將它匯出後再刪除)



    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已標示為解答 KenLamX 2013年12月27日 下午 04:01
    2013年12月27日 下午 02:25
  • 我(Win 8.1)用以上的設定就可以用程式去開啟了說!

    http://www.codeproject.com/Articles/18594/File-Association-in-VB-NET

    Now let's say you want to create a file association for .txt in your program. You create the file association, but it still opens in Notepad. What's going on? There is another value that needs to be deleted located here:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt

    請您再將上面說的那個機碼給刪掉! (您可以先將它匯出後再刪除)



    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    原來要刪掉機碼! 但是會有問題嗎?
    2013年12月27日 下午 02:47
  • 經過一番研究 終於成功了

    原來是[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\UserChoice]在亂事

    把它刪了就可以了!

    感謝大家的幫忙!!

    2013年12月27日 下午 04:00