diff --git a/installsoporteKM/Product.wxs b/installsoporteKM/Product.wxs index b6236da..9bff448 100644 --- a/installsoporteKM/Product.wxs +++ b/installsoporteKM/Product.wxs @@ -1,16 +1,9 @@ - - + - + - + @@ -26,19 +19,17 @@ - + - - + - - - - + + + @@ -47,7 +38,7 @@ - + diff --git a/installsoporteKM/installsoporteKM.wixproj b/installsoporteKM/installsoporteKM.wixproj index fd01051..3aa9a62 100644 --- a/installsoporteKM/installsoporteKM.wixproj +++ b/installsoporteKM/installsoporteKM.wixproj @@ -1,26 +1,7 @@ - - - - Debug - x86 - 3.10 - 004ec732-e9b8-4adb-b8b6-35848d64b5d4 - 2.0 - installsoporteKM - Package - + - bin\$(Configuration)\ - obj\$(Configuration)\ Debug - - bin\$(Configuration)\ - obj\$(Configuration)\ - - - - soporteKM @@ -31,17 +12,4 @@ INSTALLFOLDER - - - - - - \ No newline at end of file diff --git a/soporteKM/App.config b/soporteKM/App.config index 6b65b28..d12f71c 100644 --- a/soporteKM/App.config +++ b/soporteKM/App.config @@ -1,9 +1,22 @@ - + - - - - - - + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/soporteKM/Form1.Designer.cs b/soporteKM/Form1.Designer.cs index df3cc3b..285ba7f 100644 --- a/soporteKM/Form1.Designer.cs +++ b/soporteKM/Form1.Designer.cs @@ -69,7 +69,7 @@ private void InitializeComponent() this.btnSolicitarSoporte.Name = "btnSolicitarSoporte"; this.btnSolicitarSoporte.Size = new System.Drawing.Size(331, 32); this.btnSolicitarSoporte.TabIndex = 2; - this.btnSolicitarSoporte.Text = "Espera a que se abra la aplicación de soporte."; + this.btnSolicitarSoporte.Text = "Espere a que se abra la aplicación de soporte"; this.btnSolicitarSoporte.UseVisualStyleBackColor = false; this.btnSolicitarSoporte.Click += new System.EventHandler(this.BtnSolicitarSoporte_Click); // diff --git a/soporteKM/Form1.cs b/soporteKM/Form1.cs index 92365f2..fbbdcbd 100644 --- a/soporteKM/Form1.cs +++ b/soporteKM/Form1.cs @@ -1,7 +1,5 @@ using System; using System.Configuration; -//using System.Collections.Generic; -//using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; @@ -9,23 +7,19 @@ using System.Linq; using System.Management; using System.Net; -//using System.Reflection.Emit; -//using System.Text; -//using System.Threading.Tasks; -using System.Windows.Forms; +using System.Net.NetworkInformation; using System.Reflection; -//using static System.Windows.Forms.VisualStyles.VisualStyleElement; +using System.Security.Cryptography; +using System.Text; +using System.Windows.Forms; using Microsoft.Win32; - namespace soporteKM { public partial class Form1 : Form { - private readonly System.Windows.Forms.ProgressBar progressBar; - public Form1() { InitializeComponent(); @@ -43,9 +37,6 @@ public Form1() Visible = false }; - - - // Agregar el botón al formulario Controls.Add(btnComprobarVersion); @@ -59,9 +50,7 @@ public Form1() labelSerial.Click += LabelSerial_Click; // Suscribir el evento Click del Label al método para copiar el nombre del host al portapapeles - //labelHostname.Click += LabelHostname_Click; - - + labelHostname.Click += LabelHostname_Click; } private void LabelSerial_Click(object sender, EventArgs e) @@ -73,30 +62,40 @@ private void LabelSerial_Click(object sender, EventArgs e) private void LabelHostname_Click(object sender, EventArgs e) { - // Copiar el nombre del host al portapapeles cuando se hace clic en el Label Clipboard.SetText(labelHostname.Text); MessageBox.Show("Nombre del host copiado al portapapeles."); - } - private void Label1_Click(object sender, EventArgs e) { // Obtener el serial del ordenador string serial = ObtenerSerialOrdenador(); - // Mostrar el serial en el Label labelSerial.Text = serial; } + private string ObtenerSerialOrdenador() + { + string serial = ObtenerSerialDesdeBIOS(); + if (string.IsNullOrEmpty(serial)) + { + serial = ObtenerSerialDesdePlacaBase(); + } - private string ObtenerSerialOrdenador() + if (string.IsNullOrEmpty(serial)) + { + serial = ObtenerMACEncriptada(); + } + + return serial; + } + + private string ObtenerSerialDesdeBIOS() { string serial = ""; - try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_BIOS"); @@ -107,28 +106,81 @@ private string ObtenerSerialOrdenador() serial = obj["SerialNumber"].ToString(); break; // Solo obtenemos el primer resultado } + } + catch (Exception ex) + { + MessageBox.Show("Error al obtener el serial del BIOS: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + return serial; + } + private string ObtenerSerialDesdePlacaBase() + { + string serial = ""; + try + { + ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard"); + ManagementObjectCollection collection = searcher.Get(); + + foreach (ManagementObject obj in collection.Cast()) + { + serial = obj["SerialNumber"].ToString(); + break; // Solo obtenemos el primer resultado + } } catch (Exception ex) { - MessageBox.Show("Error al obtener el serial del ordenador: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show("Error al obtener el serial de la placa base: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return serial; } + private string ObtenerMACEncriptada() + { + string macAddress = ""; + try + { + foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces()) + { + if (nic.OperationalStatus == OperationalStatus.Up) + { + macAddress = nic.GetPhysicalAddress().ToString(); + break; // Solo obtenemos la primera dirección MAC disponible + } + } + if (!string.IsNullOrEmpty(macAddress)) + { + using (MD5 md5 = MD5.Create()) + { + byte[] inputBytes = Encoding.ASCII.GetBytes(macAddress); + byte[] hashBytes = md5.ComputeHash(inputBytes); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < hashBytes.Length; i++) + { + sb.Append(hashBytes[i].ToString("X2")); + } + macAddress = sb.ToString(); + } + } + } + catch (Exception ex) + { + MessageBox.Show("Error al obtener o encriptar la dirección MAC: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + return macAddress; + } + private string ObtenerNombreHost() { // Obtener y retornar el nombre del host del equipo return System.Net.Dns.GetHostName(); - } private void Form1_Load(object sender, EventArgs e) - { - // Verificar si .NET Framework 4.7.2 está instalado if (!VerificarNETFramework472()) { @@ -143,9 +195,7 @@ private void Form1_Load(object sender, EventArgs e) string installUrl = $"{baseUrl}/downloads/soporteKM/installsoporteKM.msi"; // Declaramos la ruta y nombre del fichero de instalación string versionUrl = $"{baseUrl}/downloads/soporteKM/version"; // Declaramos la ruta y nombre del fichero que indica que version esta publicada - - btnComprobarVersion.Visible = EsNuevaVersionDisponible(versionUrl) && ExisteArchivoEnURL(installUrl); - + btnComprobarVersion.Visible = EsNuevaVersionDisponible(versionUrl) && ExisteArchivoEnURL(installUrl); // Obtén la versión desde el archivo de configuración string version = Assembly.GetExecutingAssembly().GetName().Version.ToString(); @@ -165,7 +215,6 @@ private void Form1_Load(object sender, EventArgs e) // Mostrar el hostname en el label labelHostname.Text = hostname; - // Ruta completa al archivo ejecutable de TeamViewerQS.exe string teamViewerPath = Environment.CurrentDirectory + "\\App\\TeamViewerQS.exe"; @@ -181,13 +230,12 @@ private void Form1_Load(object sender, EventArgs e) } } - private void BtnSolicitarSoporte_Click(object sender, EventArgs e) { try { // Ruta completa al archivo ejecutable de TeamViewerQS.exe - string teamViewerPath = Environment.CurrentDirectory +"\\App\\TeamViewerQS.exe"; + string teamViewerPath = Environment.CurrentDirectory + "\\App\\TeamViewerQS.exe"; // Verifica si el archivo existe antes de intentar ejecutarlo if (System.IO.File.Exists(teamViewerPath)) @@ -229,7 +277,6 @@ private bool ExisteArchivoEnURL(string url) private bool EsNuevaVersionDisponible(string versionUrl) { // Ruta local del archivo "version" - //string downloadFolderPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\Downloads"; string rutaArchivoVersion = Path.Combine(Path.GetTempPath(), "version"); // Descargar el archivo "version" desde la URL @@ -252,8 +299,6 @@ private bool EsNuevaVersionDisponible(string versionUrl) // Obtener la versión actual de la aplicación Version versionActual = new Version(Application.ProductVersion); - - // Obtener la versión del archivo "version" if (Version.TryParse(versionEnArchivo, out Version versionEnArchivoObjeto)) { @@ -281,7 +326,6 @@ private bool VerificarNETFramework472() } } - private async void BtnComprobarVersion_Click(object sender, EventArgs e) { string baseUrl = ConfigurationManager.AppSettings["UrlUpdate"]; @@ -326,27 +370,22 @@ private async void BtnComprobarVersion_Click(object sender, EventArgs e) else { // Mostrar detalles adicionales sobre la excepción específica de WebException - MessageBox.Show($" 1 Error al intentar comprobar la versión: {webEx.Message}\nDetalles: {webEx.StackTrace}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show($"Error al intentar comprobar la versión: {webEx.Message}\nDetalles: {webEx.StackTrace}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { // Mostrar detalles adicionales sobre la excepción específica de WebException - //MessageBox.Show($"2 Error al intentar comprobar la versión: {webEx.Message}\nDetalles: {webEx.StackTrace}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show($"Error al intentar comprobar la versión: {webEx.Message}\nDetalles: {webEx.StackTrace}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (Exception ex) { // Mostrar detalles adicionales sobre la excepción general - MessageBox.Show($"3 Error general al intentar comprobar la versión: {ex.Message}\nDetalles: {ex.StackTrace}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show($"Error general al intentar comprobar la versión: {ex.Message}\nDetalles: {ex.StackTrace}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } - } - - - - private void WebClientDownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e) { // Actualizar la barra de progreso durante la descarga diff --git a/soporteKM/Properties/AssemblyInfo.cs b/soporteKM/Properties/AssemblyInfo.cs index 432e995..78af6b4 100644 --- a/soporteKM/Properties/AssemblyInfo.cs +++ b/soporteKM/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // Puede especificar todos los valores o usar los valores predeterminados de número de compilación y de revisión // utilizando el carácter "*", como se muestra a continuación: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.3.2")] -[assembly: AssemblyFileVersion("1.0.3.2")] +[assembly: AssemblyVersion("1.0.3.3")] +[assembly: AssemblyFileVersion("1.0.3.3")] diff --git a/soporteKM/soporteKM.csproj b/soporteKM/soporteKM.csproj index c86eb5e..cc4d7cf 100644 --- a/soporteKM/soporteKM.csproj +++ b/soporteKM/soporteKM.csproj @@ -55,6 +55,7 @@ +