Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-07-2008
Dean Dean is offline
Miembro
 
Registrado: jun 2008
Posts: 33
Poder: 0
Dean Va por buen camino
Lightbulb Como hacer para abrir un archivo con mi app dandole dclick en el shell

por ejemplo al dar dobleclick en un fichero de texto inmediatamente lo habre
el blob de notas como puedo hacer para que por ejemplo lo abriera mi aplicacion

gracias de antemano
Responder Con Cita
  #2  
Antiguo 02-07-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Suponiendo que utilizas windows:

Si es una extensión que no existe:
Le dás doble click y te preguntará con qué aplicación quieres abrirlo. Sigue los pasos y ya está.

Si es una extensión que ya se abre con un programa:
- Abre "Mi PC"
- Herramientas --> Opciones de Carpeta
- Solapa Tipos de Archivo
- Elige el tipo de archivo.
- Pica sobre el botón "Cambiar"
- Selecciona el programa con el que quieres abrir.
Responder Con Cita
  #3  
Antiguo 02-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola,

puedes usar la funcion ShellExecute (en ShellAPI), que en teoria usando la opcion 'open' llamara al explorador de windows y lo abrira. Tambien puedes implementarlo tu, aunque es laborioso (buscar en el registro extension y programa asociado, etc...). Hay bastante informacion en el foro sobre ShellExecute, te recomiendo su busqueda. Tambien puedes usar la funcion WinExec

saludos
Responder Con Cita
  #4  
Antiguo 02-07-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Si quieres registrar un tipo de archivo para abrir con una determinada aplicación, tienes que abrir el registro de Windows y crear en HKEY_CLASSES_ROOT la clave correspondiente a ese archivo (.ext) y luego escribir otra clave con el tipo de archivo para definir el programa que la abre y su icono.

Abre el registro y cotillea los tipos de archivo y cómo se definen.

Bueno, aquí tienes el código:

Código:
#include <Registry.hpp>
#include <shlobj.h>

void
RegisterFileType(AnsiString Ext, AnsiString PathExec)
{
  // Ext tipo de archivo : EXTENSION
  // PathExec: RUTA COMPLETA del ejecutable que queremos que lo abra

  TRegistry *Registry = new TRegistry;
  try{
    Registry->RootKey = HKEY_CLASSES_ROOT;
    // Crear la clave .Ext
    Registry->OpenKey("." + Ext, true);
    try{
      // Ccrear el valor con el nombre del tipo de archivo para esta clave (extfile)
      Registry->WriteString("", Ext + "file");
    }
    __finally{
      Registry->CloseKey();
    }
    // Crear una clave nueva para el nombre del tipo de archivo dado anteriormente (extfile)
    Registry->CreateKey(Ext + "file");
    // Crear una nueva clave para el icono por defecto
    Registry->OpenKey(Ext + "file\\DefaultIcon", true);
    // Crear un valor con el icono (PathExec.exe,0)
    try{
      Registry->WriteString("", PathExec + ",0");
    }
    __finally{
      Registry->CloseKey();
    }
    Registry->OpenKey(Ext + "file\\shell\\open\\command", true);
    //Crear el valor para el ejecutable que abre el tipo de archivo (PathExec.exe "%1")
    try{
      Registry->WriteString("", PathExec + " \"%1\"");
    }
    __finally{
      Registry->CloseKey();
    }
  }
  __finally{
    delete Registry;
  }
  // Notificar al sistema el cambio efectuado
  SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0);
}
Pruebalo y nos cuentas.

Saludos.

Última edición por escafandra fecha: 02-07-2008 a las 20:22:42.
Responder Con Cita
  #5  
Antiguo 02-07-2008
Dean Dean is offline
Miembro
 
Registrado: jun 2008
Posts: 33
Poder: 0
Dean Va por buen camino
Exclamation

gracias pero ya todo eso lo se
yo lo que quiero es que mi programa capture el evento para abrir el archivo
por ejemplo yo registro la clase perfecto le doy doble y abre mi programa
(supongamos un editor de texto) pero se abriria vacio sin cargar el fichero
entienden entonces lo que quiero es como saber que fichero genero el evento de abrir para cargarlo...

no se si tenga que ver con el paramstr(no lo creo)
o capturar un mensaje de windows que me diga que fichero abrir(o sea el que genero la accion de abrir)

disculpen la molestia
Responder Con Cita
  #6  
Antiguo 02-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Código Delphi [-]
 
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormActivate(Sender: TObject);
begin
        if paramcount <> 0 then
        Memo1.Lines.LoadFromFile(paramstr(1));
end;
end.

paramstr(0) es el nombre del .exe

en el momento de registrar la extension a windows, escoges tu programa, siempre que no lo hagas mediante codigo.

saludos.
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
Problemas para abrir archivo EXCEL marceloalegre Varios 1 18-09-2007 19:40:39
como puedo hacer para cambiar un archivo de excel con versión 2.1 a versión 8.0 RONPABLO Servers 4 23-01-2006 06:02:38
abrir un html con ie dandole el path completo !! Velia Varios 3 12-11-2005 23:04:45
Como abrir un archivo .EXE? Albano Varios 4 29-05-2005 14:37:43
¿Qué instrucción es necesaria para abrir un archivo PDF? vhirginia Varios 10 07-05-2004 00:05:36


La franja horaria es GMT +2. Ahora son las 17:25:51.


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