Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   asignar una extension a mi programa en linux. (https://www.clubdelphi.com/foros/showthread.php?t=65479)

matabyte 18-12-2009 10:23:23

asignar una extension a mi programa en linux.
 
Buenas, pues no se si esta pregunta va aqui o en linux, ya que estoy trabajando con lazarus y linux.

El asunto es que en windows, si queremos asignar una extension a un programa, modificamos el registro. Pero en linux no tengo ni idea de como hacerlo. Ojo, me refiero a como hacerlo programandolo desde lazarus a mano ya se ;)

Alguien sabe como hacerlo? hay algo parecido al registro en linux? Saludoos!!

Casimiro Noteví 18-12-2009 11:37:59

Por suerte, no, no hay algo parecido al registro de windows :D

En linux no son necesarias las extensiones porque el sistema "mira" el fichero y ya sabe de qué tipo es. Así que las extensiones sólo nos sirven a nosotros, para poder identificarlas más cómodamente.
Aunque seguramente se pueda hacer lo que quieres, la verdad es que no estoy informado sobre eso.

D-MO 18-12-2009 18:09:08

Cita:

Empezado por Casimiro Notevi (Mensaje 349114)
Por suerte, no, no hay algo parecido al registro de windows :D

100% de acuerdo :D.

Ahora, con respecto a las extensiones, en linux tienes dos formas de hacer lo que quieres (o al menos son las dos que yo conozco :o), estas son:
  1. Llamada a la aplicación desde adentro del fichero
    Seguramente en alguna ocasión has visto un fichero .sh o script bash con una línea como esta la inicio del archivo:
    Código:

    #!/bin/sh
    Esta línea le indica a la consola que el archivo debe pasarlo como parámetro a la aplicación "sh" que se encuentra en el directorio "/bin/", por lo tanto, lo que debes hacer es cambiar "/bin/sh" por la ruta de tu aplicación.

    Esta es la forma mas "simple" de hacerlo, pero no por ello deja de ser funcional.

  2. Registrando un "Mime-Type"
    Esta opción requieres que crees un archivo xml con la definición de tu "Mime-Type" y lo debes guardar en /usr/share/mime-info (si mal no recuerdo).

    Más información de como realizarlo de esta manera lo encuentras en este link:
    http://standards.freedesktop.org/sha...ec-latest.html

No está de mas agregar también que de manera similar a la segunda opción puedes crear un xml para definir los íconos para las extensiones de tus archivos.

Saludos.

mg1821 19-12-2009 00:13:31

Para que alguien intentaria cambiar la extension?. si alguien me puede dar una idea ya que de algo podria servir.:confused:

gracias

matabyte 19-12-2009 09:15:24

Cita:

Empezado por mg1821 (Mensaje 349155)
Para que alguien intentaria cambiar la extension?. si alguien me puede dar una idea ya que de algo podria servir.:confused:

gracias

Pues por ejemplo para que un programa que hagas que tenga tu propia extensión de archivo, al hacer doble click en un archivo con una extensión de tu programa, se abra automáticamente.

Gracias a todos por las respuestas, a ver si puedo echar un poco mas de luz :S

Ñuño Martínez 20-12-2009 12:03:17

Dependiendo del escritorio (GNome, KDE, Xfce, etc.), se puede configurar el administrador de archivos para que asocie ciertas extensiones a ciertos programas. Muchas veces, pulsando con el botón secundario (derecho) del ratón sobre el archivo y se pulsa sobre "Abrir con otra aplicación..." permite realizar este cambio.

matabyte 28-12-2009 10:18:53

Cita:

Empezado por Ñuño Martínez (Mensaje 349196)
Dependiendo del escritorio (GNome, KDE, Xfce, etc.), se puede configurar el administrador de archivos para que asocie ciertas extensiones a ciertos programas. Muchas veces, pulsando con el botón secundario (derecho) del ratón sobre el archivo y se pulsa sobre "Abrir con otra aplicación..." permite realizar este cambio.

Hombre, eso ya lo se ;), me refiero a poder hacer que al instalar mi programa echo en lazarus para linux se asocie una extensión de archivo para que pueda ser abierto por mi programa :D

Casimiro Noteví 28-12-2009 10:50:31

Puede que no te hayamos entendido bien, pero si compilas con lazarus, lo que obtienes es un "ejecutable" que no necesita extensión alguna porque el propio sistema operativo ya sabe que es un ejecutable, por lo que no es necesario hacer nada al respecto.
Ahora bien, si lo que dices es que desde tu programa quieres abrir otros ficheros, ¿para qué necesitas una extensión?, lo abres y listo, no?

matabyte 29-12-2009 04:43:23

Cita:

Empezado por Casimiro Notevi (Mensaje 349617)
Puede que no te hayamos entendido bien, pero si compilas con lazarus, lo que obtienes es un "ejecutable" que no necesita extensión alguna porque el propio sistema operativo ya sabe que es un ejecutable, por lo que no es necesario hacer nada al respecto.
Ahora bien, si lo que dices es que desde tu programa quieres abrir otros ficheros, ¿para qué necesitas una extensión?, lo abres y listo, no?

Lo que quiero es que el usuario, al hacer click derecho sobre un archivo de mi extensión (.afa), aparezca la opción para que se abra desde mi programa, o que el usuario haga doble click sobre un archivo de mi extensión y que se lanze el programa automáticamente. Vamos, como en windows, pero en windows se realizaba el registro de extensiones por medio del registro, y por lo que veo, en linux en un poco mas complicado :confused:

Casimiro Noteví 29-12-2009 11:35:33

Cita:

Empezado por matabyte (Mensaje 349676)
[..] y por lo que veo, en linux en un poco mas complicado :confused:

Seguramente te ocurre como a mí me ha pasado con muchas cosas, que finalmente descubres que es muy fácil, tan sólo que hasta que lo descubres... uno se desespera :)

En ubuntu, creo que debes añadir tu extensión a esta lista:
Cita:

/usr/share/applications/defaults.list

matabyte 02-01-2010 08:00:31

Al final he visto que la única forma de hacerlo es a la hora de instalar el programa con los archivos .xml de definición del tipo mime y ejecutar un comando para que actualice la base de datos mime, a la vez que se utiliza un archivo .desktop en el que se pone el tipo mime que soporta la aplicación.

Es un poco más lioso que en windows y tiene la desventaja de no poder asignar y des-asignar las extensiones en tiempo de ejecución.

Gracias a todos, ya he terminado el porte del astrotite a lazarus-linux. Si quereis podeis probarlo con este .deb o este .tar.gz

(Espero que os funcione por fin :D)


La franja horaria es GMT +2. Ahora son las 22:42:49.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi