public static void Register(string[] types) { Types = types; RegistryHelp.SetValue(@"HKCU\Software\Microsoft\Windows\CurrentVersion\App Paths\" + ExeFilename, null, ExePath); RegistryHelp.SetValue(@"HKCR\Applications\" + ExeFilename, "FriendlyAppName", "mpv.net media player"); RegistryHelp.SetValue($@"HKCR\Applications\{ExeFilename}\shell\open\command", null, $"\"{ExePath}\" \"%1\""); RegistryHelp.SetValue(@"HKLM\SOFTWARE\Clients\Media\mpv.net\Capabilities", "ApplicationDescription", "mpv.net media player"); RegistryHelp.SetValue(@"HKLM\SOFTWARE\Clients\Media\mpv.net\Capabilities", "ApplicationName", "mpv.net"); RegistryHelp.SetValue(@"HKCR\SystemFileAssociations\video\OpenWithList\" + ExeFilename, null, ""); RegistryHelp.SetValue(@"HKCR\SystemFileAssociations\audio\OpenWithList\" + ExeFilename, null, ""); RegistryHelp.SetValue(@"HKLM\SOFTWARE\RegisteredApplications", "mpv.net", @"SOFTWARE\Clients\Media\mpv.net\Capabilities"); foreach (string ext in Types) { RegistryHelp.SetValue($@"HKCR\Applications\{ExeFilename}\SupportedTypes", "." + ext, ""); RegistryHelp.SetValue($@"HKCR\" + "." + ext, null, ExeFilenameNoExt + "." + ext); RegistryHelp.SetValue($@"HKCR\" + "." + ext + @"\OpenWithProgIDs", ExeFilenameNoExt + "." + ext, ""); if (VideoTypes.Contains(ext)) { RegistryHelp.SetValue(@"HKCR\" + "." + ext, "PerceivedType", "video"); } if (AudioTypes.Contains(ext)) { RegistryHelp.SetValue(@"HKCR\" + "." + ext, "PerceivedType", "audio"); } if (ImageTypes.Contains(ext)) { RegistryHelp.SetValue(@"HKCR\" + "." + ext, "PerceivedType", "image"); } RegistryHelp.SetValue($@"HKCR\" + ExeFilenameNoExt + "." + ext + @"\shell\open\command", null, $"\"{ExePath}\" \"%1\""); RegistryHelp.SetValue(@"HKLM\SOFTWARE\Clients\Media\mpv.net\Capabilities\FileAssociations", "." + ext, ExeFilenameNoExt + "." + ext); } }
private void btnVideo_Click(object sender, EventArgs e) { errProv.Dispose(); try { if (txtFileSamp.Text == "") { throw new Exception("No file chosen."); } else if (!File.Exists(txtFileSamp.Text)) { throw new Exception("That file does not exist, and thus can't be ran."); } string ext = Path.GetExtension(txtFileSamp.Text); if (VideoTypes.Contains(ext.ToLower())) { Video videoFile = new Video(txtFileSamp.Text); videoFile.ViewFile(); } else if (GraphicTypes.Contains(ext.ToLower())) { Graphic graphicFile = new Graphic(txtFileSamp.Text); graphicFile.ViewFile(); } else if (AudioTypes.Contains(ext.ToLower())) { Audio audioFile = new Audio(txtFileSamp.Text); audioFile.ViewFile(); } else if (ArchiveTypes.Contains(ext.ToLower())) { Archive archiveFile = new Archive(txtFileSamp.Text); archiveFile.ViewFile(); } else if (DocumentTypes.Contains(ext.ToLower())) { Document docFile = new Document(txtFileSamp.Text); docFile.ViewFile(); } else { throw new Exception("File type not found: the chosen file type is not supported."); //System.IO.FileInfo newFile = new System.IO.FileInfo(txtFileSamp.Text); //System.IO.FileAttributes b = newFile.Attributes; } } catch (Exception ex) { errProv.SetError(btnDisplay, ex.Message); } }