tipo softonic programas programa predeterminados predeterminado predeterminadas predeterminada por para modificar forma elegir con como cambiar archivos archivo aplicaciones aplicacion abrir c# file

c# - softonic - elegir aplicaciones predeterminadas por tipo de archivo



c#abrir el archivo con la aplicación predeterminada y los parámetros (4)

Convertí el código VB en la publicación del blog vinculada por xsl a C # y lo modifiqué un poco:

public static bool TryGetRegisteredApplication( string extension, out string registeredApp) { string extensionId = GetClassesRootKeyDefaultValue(extension); if (extensionId == null) { registeredApp = null; return false; } string openCommand = GetClassesRootKeyDefaultValue( Path.Combine(new[] {extensionId, "shell", "open", "command"})); if (openCommand == null) { registeredApp = null; return false; } registeredApp = openCommand .Replace("%1", string.Empty) .Replace("/"", string.Empty) .Trim(); return true; } private static string GetClassesRootKeyDefaultValue(string keyPath) { using (var key = Registry.ClassesRoot.OpenSubKey(keyPath)) { if (key == null) { return null; } var defaultValue = key.GetValue(null); if (defaultValue == null) { return null; } return defaultValue.ToString(); } }

EDITAR - esto no es confiable. Consulte Buscar la aplicación predeterminada para abrir un tipo de archivo en particular en Windows .

La manera más fácil de abrir un archivo con la aplicación predeterminada es:

System.Diagnostics.Process.Start(@"c:/myPDF.pdf");

Sin embargo, me gustaría saber si existe una forma de establecer parámetros para la aplicación predeterminada, porque me gustaría abrir un pdf en un número de página determinado.

Sé cómo puedo hacerlo creando un nuevo proceso y estableciendo los parámetros, pero de esta manera necesito indicar la ruta de la aplicación, y me gustaría tener una aplicación portátil y no tener que establecer la ruta de las aplicaciones cada vez que uso la aplicación en otra computadora. Mi idea es que espero que la computadora haya instalado el lector de PDF y solo decir qué página abrir.

Gracias.


Por favor, agregue Configuración en Propiedades para el Proyecto y utilícelas de esta manera tiene configuraciones configurables limpias y fáciles de configurar que se pueden configurar como predeterminadas

Cómo: Crear una nueva configuración en tiempo de diseño

Actualización: después de los comentarios a continuación

  1. Derecha + clic en proyecto
  2. Agregar ítem nuevo
  3. En elementos de Visual C # -> General
  4. Seleccionar archivo de configuración

puedes intentar con

Process process = new Process(); process.StartInfo.FileName = "yourProgram.exe"; process.StartInfo.Arguments = ..... //your parameters process.Start();


EDITAR (gracias al comentario de surfbutler en los comentarios de la pregunta) Si desea que se abra el archivo con la aplicación predeterminada, es decir, sin especificar Acrobat o Reader, no puede abrir el archivo en la página especificada.

Por otro lado, si está de acuerdo con especificar Acrobat o Reader, siga leyendo:

Puedes hacerlo sin contar toda la ruta de Acrobat, así:

Process myProcess = new Process(); myProcess.StartInfo.FileName = "acroRd32.exe"; //not the full application path myProcess.StartInfo.Arguments = "/A /"page=2=OpenActions/" C://example.pdf"; myProcess.Start();

Si no desea que el pdf se abra con Reader pero con Acrobat, cambie la segunda línea de la siguiente manera:

myProcess.StartInfo.FileName = "Acrobat.exe";

SEGUNDA EDICIÓN: Encontrar la aplicación predeterminada para la extensión pdf

Puede consultar el registro para identificar la aplicación predeterminada para abrir archivos PDF y luego definir FileName en el StartInfo de su proceso en consecuencia. Again, thanks surfbutler for your comment :)

Siga esta pregunta para obtener detalles sobre cómo hacer eso: Encontrar la aplicación predeterminada para abrir un tipo de archivo en particular en Windows