Antes que nada me gustaría aclarar que este blog no es para aprender a programar, pues para ello hay otros blogs/webs y muy buenas en realidad, no tiene caso duplicar esfuerzos. Pero si me gustaría publicar de vez en cuando algunos trucos y códigos fuente asociados a los proyectos en los que estoy laborando; como mencionaba en otro post tengo una librería que engloba muchísimas funciones ya listas para ser usadas, pueden hacer uso de ella si lo desean.
Sin embargo les quiero mostrar un pequeño truquito sobre como obtener la ruta del programa asociado al protocolo mailto, este al ser invocado abre la ventana del editor de correo predeterminado, la pregunta es: ¿y cuál es el programa que llama?.
Public Function getMailtoApp() As String
Dim ret As Long, key As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.ClassesRoot
Dim rtn As String = "", secondKey As String = ""
key = key.OpenSubKey("mailto\Shell\Open\Command")
If key IsNot Nothing Then
secondKey = key.GetValue("").ToString().Trim
If secondKey.IsNullOrEmpty(secondKey) = False Then
rtn = secondKey.Trim
rtn = System.Text.RegularExpressions.Regex.Match(rtn, "\""(.*?)\""").Groups(0).Value
End If
End If
rtn = rtn.Trim
If rtn.StartsWith(Chr(34)) = True Then rtn = rtn.Substring(1, rtn.Length - 1)
If rtn.EndsWith(Chr(34)) = True Then rtn = rtn.Substring(0, rtn.Length - 1)
Return rtn
End Function
Como podemos ver, esta función nos retorna la ruta del programa asociado al protocolo mailto, de esa manera podemos saber que programa se invoca. Por supuesto, esta es una función de muestra, en la librería antes mencionada se encuentra una función mucho más amplia, pues no solo permite obtener la ruta del protocolo (aplicación), sinó las rutas de programas asociados a un tipo de archivo, visiten el post para más información.
¿Te gustó este post?, entonces si lo deseas puedes apoyarnos para continuar con nuestra labor, gracias.
¿Te gustó este post?, entonces si lo deseas puedes apoyarnos para continuar con nuestra labor, gracias.
No hay comentarios. :
Publicar un comentario