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 (557):    1 99 100 101 102 103 557   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 284
Último miembro: VALENTIN KORONADO
Temas del foro: 1,719
Mensajes del foro: 8,922
Últimos temas
Un sistema de ayudas cont...
Foro: Videotutoriales
Último mensaje por: Shordi, Hace 4 horas
Respuestas: 2 - Vistas: 171
Publicidad
Foro: Sobre gambas-es.org
Último mensaje por: Shordi, 18-06-2025, 07:35
Respuestas: 5 - Vistas: 127
Web con gambas, a ver si ...
Foro: WebApp/WebForms
Último mensaje por: jackrobot, 16-06-2025, 17:11
Respuestas: 40 - Vistas: 31,699
Crear una aplicación para...
Foro: Bases de Datos
Último mensaje por: Shell, 29-05-2025, 20:11
Respuestas: 11 - Vistas: 1,198
Paso de parámetros a una ...
Foro: General
Último mensaje por: guizans, 29-05-2025, 19:27
Respuestas: 9 - Vistas: 732
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.