2016-09-14 44 views
0

Как сделать файл (например, .jkl), который при его открытии откроется ваша пользовательская программа.Сделать собственный файл открытым по специальной программе VB

Например:
У меня есть файл test.jkl
Если я дважды щелкнуть по нему, моя программа будет один, чтобы прочитать его.
Как и расширение .jpg, при двойном щелчке по файлу краска будет всплывать и отображать изображение.

Мой код при изменении файла внутр только простой

File.Copy(origFile, origFile.Replace("txt", "jkl") 
File.Delete(origFile) 

Так что теперь у меня есть .jkl файл, что теперь мне нужно делать, когда пользователь дважды щелкает .jkl файл, эта программа будет автоматически открывать , спросите, где его сохранить, и измените его на .txt на путь, куда хочет пользователь.

Как это сделать?

+0

Это сообщение может помочь вам: https://social.msdn.microsoft.com/Forums/vstudio/en-US/4d8760c9-b2c9-4016- b75e-1b3189b0c30b/registering-a-extension? forum = vbgeneral – Prisoner

+0

@Alex Спасибо! Но где бы я написал код? Если я положу его в событие загрузки формы, возможно, он снова напишет reg и снова. Как определить, уже ли он установлен? Поэтому он будет избегать перезаписывания значений каждый раз, когда загружается моя программа. –

+0

@MukulVarshney Позволяет сказать, что я сделал то, что вы сказали, но как я могу получить путь к файлу этого файла? –

ответ

1

Поместите это событие загрузки формы. он будет писать снова и снова. Он не уничтожит ваш компьютер. Если вы хотите более тщательно. Прочтите проверку реестра, если она существует, а затем пропустите запись еще раз.

Код:

My.Computer.Registry.ClassesRoot.CreateSubKey(".jkl").SetValue_ 
    ("", "jkl", Microsoft.Win32.RegistryValueKind.String) 
My.Computer.Registry.ClassesRoot.CreateSubKey_ 
    ("jkl\shell\open\command").SetValue("", Application.ExecutablePath & _ 
    " ""%l"" ", Microsoft.Win32.RegistryValueKind.String) 

ссылка для демонстрационного проекта: http://www.codeproject.com/Articles/18594/File-Association-in-VB-NET

+0

Хорошо ... Но как можно вы получаете путь к файлу, который вы открыли? Как моя программа знает, где находится файл (файл .hello), когда он запущен? –

+0

вы можете сделать, например, путь по файлу по умолчанию. в папке app.exe. Тогда вы знаете, где это – Minh

0

Я не думаю, что требуется код. Как только файл будет сохранен как .jkl, щелкните файл правой кнопкой мыши и выберите опцию «open with» -> «Выбрать программу по умолчанию» -> затем перейдите к exe, который вы написали, чтобы сохранить файл в формате .txt. Если открыть с опцией не доступно, дважды щелкните файл и выберите вариант, чтобы выбрать программу по умолчанию. Теперь перейдите к своему exe.

Параметр командной строки args [0] - это полное имя файла.

Я пробовал с кодом C#, то же самое можно сделать с кодом VB.

static void Main(string[] args) 
     { 
      Console.WriteLine("0: " + args[0]); 
      //Code to rename the file 
      Console.WriteLine("Done. Press enter"); 
      Console.ReadKey(); 
     } 

VB код с помощью онлайн конвертер

Private Shared Sub Main(args As String()) 
    Console.WriteLine("0: " + args(0)) 
    'Code to rename the file 
    Console.WriteLine("Done. Press enter") 
    Console.ReadKey() 
End Sub 
Смежные вопросы