Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-02-2011
rogeliogamberro rogeliogamberro is offline
Miembro
 
Registrado: oct 2008
Posts: 23
Poder: 0
rogeliogamberro Va por buen camino
Smile Si asigne una extension a mi programa. Donde proceso al archivo al hacer doble clic?

Hola Foro!

Estoy haciendo una prueba en C++ Builder (que es similar a Delphi) donde deseo abrir un archivo con doble clic (por ejemplo un .txt con otra extension.. supongamos .abc y cargarlo a un memo). He conseguido la rutina que me genera la entrada al registro, pero no se en donde debo escribir el codigo para abrirlo cuando se produzca el doble clic y donde esta el string con la ruta. Agradeceria que alguien me pueda despejar esa duda ya sea en C o Delphi. Muchas gracias!
Responder Con Cita
  #2  
Antiguo 28-02-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Depende de cómo hayas configurado la entrada en el registro, esto es, de qué forma el sistema operativo le pasa al programa el nombre del archivo. Lo normal es pasarlo a través de la línea de comandos, recogiéndolo en los parámetros de "main".
Código:
/* Ejemplo de manejo de parámetros. */
#include<stdio.h>
#include<stdlib.h> /* EXIT_SUCCESS y EXIT_FAILURE. */

/* El SO. se encarga de pasar los parámetros a main.
   El parámetro 0 suele ser el ejecutable junto con su ruta. */
int main (int NumArgumentos, char *Argumentos[])
{
  int Ndx;

  for (Ndx=0; Ndx<NumArgumentos; Ndx++)
    printf ("Argumento %d: '%s'.\n", Ndx, Argumentos[Ndx]);
/* main debería devolver siempre un valor. */
  return EXIT_SUCCESS;
}
Código:
$ ./ejemplo.exe 
Argumento 0: './ejemplo.exe'.
$ ./ejemplo.exe lol ejemplo y tal
Argumento 0: './ejemplo.exe'.
Argumento 1: 'lol'.
Argumento 2: 'ejemplo'.
Argumento 3: 'y'.
Argumento 4: 'tal'.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 28-02-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Ñuño Martínez Ver Mensaje
Depende de cómo hayas configurado la entrada en el registro, esto es, de qué forma el sistema operativo le pasa al programa el nombre del archivo. Lo normal es pasarlo a través de la línea de comandos,
¿De qué otra manera le puede pasar el nombre del archivo?

// Saludos
Responder Con Cita
  #4  
Antiguo 02-03-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
¿De qué otra manera le puede pasar el nombre del archivo?
Pues por cualquier método que permita comunicarse con un ejecutable. Por ejemplo, redirigiendo las corrientes de entrada y salida (stdin y stdout), usando tuberías (pipes), enviando mensajes al proceso, etc.

El compilador de QuickBasic recibía los parámetros por teclado vía stdin, así que el entorno redirigía la corriente de entrada cuando compilabas desde este, para indicarle el nombre del archivo fuente y las bibliotecas.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #5  
Antiguo 09-03-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Ñuño Martínez Ver Mensaje
Pues por cualquier método que permita comunicarse con un ejecutable. Por ejemplo, redirigiendo las corrientes de entrada y salida (stdin y stdout), usando tuberías (pipes), enviando mensajes al proceso, etc.
Claro, pero tú comentaste:

Cita:
Empezado por Ñuño Martínez
Depende de cómo hayas configurado la entrada en el registro, esto es, de qué forma el sistema operativo le pasa al programa el nombre del archivo.
O sea, la pregunta es, ¿de qué otra forma puedes configurar el registro para que el sistema operativo pase el nombre del archivo?

// Saludos
Responder Con Cita
  #6  
Antiguo 09-03-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Yo creo que hay en Windows existe un formato especial en la configuración de la extención y programa asociado en dónde se configura el lugar en que será colocado el nombre del archivo. Creo que se utilza %s dentro del comando. La posión de %s dentro del comando indica el índice en que estará el nombre de archivo dentro del arreglo Params.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #7  
Antiguo 09-03-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
O sea, la pregunta es, ¿de qué otra forma puedes configurar el registro para que el sistema operativo pase el nombre del archivo?

// Saludos
En el registro de Windows únicamente puedes indicar (como explica Chris) cómo debe "traducir" la doble pulsación en el Explorer para pasar el nombre del archivo vía línea de comandos. Si sólo usas el Explorer, pues no necesitas más. Ahora bien, si usas la consola "cmd" entonces ya puedes elegir entre la línea de comandos o la redirección de la corriente de entrada (stdin), y si usas otra consola, como Cygwin o MSys, entonces puedes usar además de las dichas las tuberías o "pipes".
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #8  
Antiguo 09-03-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¡Ah! Ok. Creo que ya capto a qué te refieres. Lo que pasa es que al leer

Cita:
Empezado por rogeliogamberro
donde deseo abrir un archivo con doble clic
presupuse que Rogelio se refería al Explorer y la asociación que se hace en el registro. Por otra parte, he visto que algunas extensiones de archivo están configuradas, en el registro, para ser abiertas mediante DDE, de manera que creí que estabas hablando de estas otras formas de configurar en el registro.

// Saludos
Responder Con Cita
  #9  
Antiguo 11-03-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Leñes, el DDE, ya lo había olvidado. Pero, ¿eso todavía se usa?
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #10  
Antiguo 11-03-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Ni idea ja, ja. Oficialmente no sé si ya se descontinuó, pero lo que sí sé es que por culpa del DDE no podía abrir proyectos de Delphi 7 desde el Explorador en Windows Vista. Cada vez que lo intentaba se producía una violación de acceso.

Hasta que me di cuenta que lo arreglaba inhabilitando la apertura por DDE. Y ahora está mejor porque si intento abrir un segundo proyecto, lo abre en una segunda instancia de Delphi en lugar de intentar abrirlo an la misma con la consabida pregunta ¿Desea usted guardar los cambios?

// Saludos
Responder Con Cita
  #11  
Antiguo 11-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿DDE?, ¿eso con qué se come?
Responder Con Cita
  #12  
Antiguo 11-03-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
DDE

// Saludos
Responder Con Cita
  #13  
Antiguo 11-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Gracias, pensé que era la extensión de algún tipo de archivo.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
capturar registros con un clic o doble clic corvarod Conexión con bases de datos 2 18-04-2009 13:29:42
hacer referencia al mismo boton q se hace clic _CALI OOP 3 30-06-2008 14:09:20
recargar capa al hacer clic en un link sakuragi HTML, Javascript y otros 4 20-03-2008 18:24:33
Como evitar que se abra la ventana de busqueda, al hacer doble clic sobre un acceso d QuarkBcn Windows 0 24-10-2007 11:28:00
[Patentes] patente sobre el doble clic... kinobi Noticias 4 07-06-2004 13:58:04


La franja horaria es GMT +2. Ahora son las 10:40:32.


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