tincho 19-02-2024, 00:15
Hola, hace unos días que vengo con esta función que intenta listar los programas por defecto dedicados a una tares determinada.
Hice la función porque en algunas ocasiones cuando en gambas enviaba una orden de abrir un directorio sucedía otra cosa distinta a abrir el directorio en el gestor de archivos.
Así que les acerco la funcion por si tal vez les resulta de utilidad.
Código:
'' This function list all the .desktop applications in the directory /usr/share/applications which are asociated to al the mimetypes in the frirst argument and optionally is possible filter by category.
Static Public Function DeskApp2(aMimeType As String[], Optional aCategories As String[]) As DesktopFile[]
  Dim oTemp As DesktopFile[]
  Dim oDsk As New DesktopFile[]
  Dim oDsk2 As New DesktopFile[]
  Dim dsk As DesktopFile
  Dim sDef As String
  Dim ad As New String[]
  Dim sMime As String
  Dim sApps As String
  Dim xapp As DesktopFile
  Dim mk As String
  Dim sKat As String
  Dim sl As String
  Dim sApp As String
  If aMimeType.Count Then
    For Each mk In aMimeType
      oTemp = DesktopFile.FromMime(mk)
      For Each dsk In oTemp
        If aCategories.Count Then
          For Each sKat In aCategories
            If dsk.Categories.Exist(sKat) Then
              oDsk.Add(dsk)
              Break
            Endif
          Next
        Else
        Endif
      Next
    Next
  Endif
  Select Desktop.Type
    Case "KDE"
      sDef = User.Home &/ ".config/kde-mimeapps.list"
    Case "LXQT"
      sDef = User.Home &/ ".config/lxqt-mimeapps.list"
    Case "GNOME", "MATE", "ENLIGHTENMENT", "WINDOWMAKER", "XFCE"
      sDef = User.Home &/ ".config/mimeapps.list"
  End Select
  If Exist(sDef) Then
    Select Stat(sDef).Type
      Case gb.File, gb.Link
        ad = Split(File.Load(sDef), "\n")
        If ad.Count > 0 Then
          For Each sl In ad
            If InStr(sl, "=") > 0 Then
              sMime = Split(sl, "=")[0]
              sApps = Split(sl, "=")[1]
              If InStr(sApps, ";") Then
                For Each sApp In Split(sApps, ";")
                  If sApp <> "" Then
                    For Each xapp In oDsk
                      If File.Name(xapp.Path) = sApp Then
                        oDsk2.Add(xapp)
                      Endif
                    Next
                  Endif
                Next
              Endif
            Endif
          Next
        Endif
    End Select
    For Each xapp In oDsk
      If Not oDsk2.Exist(xapp) Then
        oDsk2.Add(xapp)
      Endif
    Next
  Else
    oDsk2 = oDsk
  Endif
  Return oDsk2
End

Para llamar la función hay dos parámetros que se le deben pasar, mas bien uno solo, el segundo es opcional pero en ocasiones es necesario si se desea filtrar aplicaciones que no pintan nada en el asunto.
Por ejemplo yo tenia que abrir un directorio en el gestor de archivos y aparecía EasyTag, el programa de edición de metadatos de los mp3.

Código:
    o = System.DeskApp2(["text/plain"], ["TextEditor"]) ' Con esto llamo la funcion, le paso los parametros en forma de 2 String[] y luego con la lista de objetos puedo obtener los datos
    Print o[0].ProgramName
    Print o[0].Name
tincho 18-02-2024, 23:29
A raíz de una función que estoy optimizando con la finalidad de detectar las aplicaciones por defecto para diferentes archivos necesito recabar informacion de otros sistemas.
Concretamente donde se encuentran los archivos mimeapps.list en cada distribución y escritorio.
Solo se donde se encuentra en XFCE que es el escritorio que uso yo.
A ver si me pueden decir en vuestra distro donde están esos archivos y si en KDE por ejemplo se llama kde-mimeapps.list y cosas así.
Dentro del archivo hay algo como:
[Added Associations]
image/jpeg=bar.desktop;baz.desktop
video/H264=bar.desktop
[Removed Associations]
video/H264=baz.desktop
[Default Applications]
image/jpeg=foo.desktop

Gracias.
Shell 15-02-2024, 12:45
Buenas!.

Estaba buscando información sobre que lenguajes de programación aprenden los niños y los jóvenes en las escuelas.
La verdad es que Gambas podría estar perfectamente entre ellos. Pero uno de los problemas que veo para esto
es el sistema operativo. Independiente de este, tenemos la web. Ya que podemos aprender a programar directamente online.

Cuando Scratch se queda pequeño.

Los mejores lenguajes de programación educativa

El lento y desigual despegue de la programación en las aulas españolas

En la escuela nunca tuve clases de informática, era otra época. Lo único que vi de ordenadores, fue la aplicación de un ordenador
para hacer actividades con las matemáticas. Un ZX81 con expansión... Big Grin

Es que eran carisimos en los 80. Aun así en otras escuelas se hacían cosas, pero ya un nivel de secundaria.
Eso no lo no conocí ya que fuí a FP. Y en electrónica los ordenadores solo llegamos a verlos hasta cursos bastante avanzado
para diseño y de "esto es"...mírame y no me toques.

Como referencia a Scratch, aunque no lo toco mucho,  hay un curso gratuito en Udemy.

Introducción a la programación con Scratch

Hay más, claro.
En Linux no está tan al día la versión de escritorio. Pero se puede programar online.

En Udemy también hay otros cursos gratuitos. No solo de Scratch.
En esa web podéis aprovechar las ofertas. Hay cursos que son caros.

Los menús son muy selectivos. Si eliges, cursos gratis, horas, etc.
También se encuentra el de Alessandri sobre Gambas. De Gambas solo he visto dos.
El otro es muy básico.

Saludos
Páginas (571):    1 113 114 115 116 117 571   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 310
Último miembro: MARQUITOS6767
Temas del foro: 1,761
Mensajes del foro: 9,153
Últimos temas
Problema con el repósito ...
Foro: Instalación
Último mensaje por: guizans, 14-04-2026, 21:38
Respuestas: 2 - Vistas: 333
UEFI y BIOS
Foro: Hardware & IoT
Último mensaje por: guizans, 13-04-2026, 21:22
Respuestas: 3 - Vistas: 2,497
Visual Studio Code con Ga...
Foro: General
Último mensaje por: guizans, 07-03-2026, 14:24
Respuestas: 2 - Vistas: 712
WebForm con mysql gridvie...
Foro: WebApp/WebForms
Último mensaje por: vjarvelo, 03-03-2026, 16:32
Respuestas: 2 - Vistas: 3,373
Sobre la proteccion del c...
Foro: General
Último mensaje por: Shordi, 19-02-2026, 11:07
Respuestas: 7 - Vistas: 1,306
Powered By MyBB, © 2002-2026 MyBB Group.
Made with by Curves UI.