Mostramos un código de ejemplo para cambiar la página de inicio del navegador Mozilla Firefox desde una aplicación desarrollada en Microsoft Visual Studio .Net, en C# (C Sharp).
El código de la clase para modificar/establecer/cambiar la página de inicio del navegador Mozilla Firefox
A continuación os mostramos el código de la clase completa que permite cambiar la página de inicio del navegador de Internet Mozilla Firefox. Para ello modificará el perfil de Firefox del usuario actual (en el que se esté ejecutando la aplicación).
Este código comprobará si Mozilla Firefox está ejecutándose (abierto), en cuyo caso mostrará un aviso para que se cierre. Mientras esté abierto no podrá aplicarse el cambio. Por lo tanto también mostramos un método de ejemplo para saber si Firefox está abierto o en ejecución.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; namespace ModificarPreferenciasFirefox { /// <summary> /// Clase que implementa la modificación de las preferencias de Firefox /// </summary> public class Firefox { /// <summary> /// Establece la página de inicio. /// </summary> /// <param name="pagina">Página de inicio.</param> public static void PaginaInicio(string pagina) { // Como el fichero de preferencias es sobreescrito, // aseguro que Firefox no se este ejecutando while (EstaFirefoxAbierto()) { Console.WriteLine("Firefox esta abierto, ciérralo y pulsa INTRO: "); Console.ReadLine(); } string pathOfPrefsFile = GetRutaDelFicheroPreferencias(); SetParametro(pathOfPrefsFile, "user_pref(\"browser.startup.homepage\"", string.Format("user_pref(\"browser.startup.homepage\", \"{0}\");", pagina)); } /// <summary> /// Coomprueba si Firefox esta en ejecución. /// </summary> /// <returns></returns> private static bool EstaFirefoxAbierto() { foreach (Process proceso in Process.GetProcesses()) { if (proceso.ProcessName == "firefox") { return true; } } return false; } /// <summary> /// Modifica el fichero de preferencias insertando o modificando el parámetro con su valor. /// Este método copia todas las preferencias originales menos la que se quiere establecer, /// para finalmente insertar la preferencia que se quiere establecer, sobrescribiendo /// el fichero de preferencias original. /// </summary> /// <param name="rutaFicheroPreferencias">Ruta del fichero de preferencias de Firefox del usuario.</param> /// <param name="parametro">Parámetro a modificar. Solo es necesario el prefijo.</param> /// <param name="valor">Valor completo del parámetro.</param> private static void SetParametro(string rutaFicheroPreferencias, string parametro, string valor) { string[] contenidoOriginalFicheroPreferencias = File.ReadAllLines(rutaFicheroPreferencias); List<String> contenidoFinalFicheroPreferencias = new List<string>(); // Agregamos al fichero final todos los parámetros //existentes menos el que quiero modificar (parametro) foreach (string preferencia in contenidoOriginalFicheroPreferencias) { if (!preferencia.StartsWith(parametro)) { contenidoFinalFicheroPreferencias.Add(preferencia); } } // Añadimos el valor del parámetro contenidoFinalFicheroPreferencias.Add(valor); File.WriteAllLines(rutaFicheroPreferencias, contenidoFinalFicheroPreferencias.ToArray()); } /// <summary> /// Obtiene la ruta del fichero de preferencias de Firefox. /// </summary> /// <returns>Devuelve la ruta absoluta del fichero de preferencias de Firefox.</returns> private static string GetRutaDelFicheroPreferencias() { // El fichero de perfiles indica donde se encuentra el fichero de preferencias del usuario. string rutaPerfilesFirefox = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Mozilla\Firefox\profiles.ini"; string contenidoDelPerfil = File.ReadAllText(rutaPerfilesFirefox); int posicionDelParametro = contenidoDelPerfil.IndexOf("Path=Profiles"); int inicioDelPathPreferencias = posicionDelParametro + "Path=Profiles".Length + 1; int finDelPathPreferencias = contenidoDelPerfil.IndexOf("\r", posicionDelParametro); string subirectorioDelFicheroPreferencias = contenidoDelPerfil.Substring(inicioDelPathPreferencias, (finDelPathPreferencias - inicioDelPathPreferencias)); return Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Mozilla\Firefox\Profiles\" + subirectorioDelFicheroPreferencias + @"\prefs.js"; } } } |
Un ejemplo de uso de la clase anterior para cambiar la página de inicio de Firefox:
1 2 3 4 5 6 7 8 |
.... // Si se está inventariando el equipo local if (args.Length == 0) { System.Console.WriteLine("Cambiando página de inicio de Mozillla Firefox"); ModificarPreferenciasFirefox.Firefox.PaginaInicio("http://proyectoa.com/"); } .... |