Foros del Web » Programación para mayores de 30 ;) » Programación General »

boton derecho/abrir con... mi programa

Estas en el tema de boton derecho/abrir con... mi programa en el foro de Programación General en Foros del Web. buenas, me gustaria que mi programa pudiera abrir un archivo de esta forma, en windows, el archivo k pueda abrir mi programa, por ejemplo un ...
  #1 (permalink)  
Antiguo 11/11/2004, 08:03
Avatar de Elt_Trebor  
Fecha de Ingreso: diciembre-2003
Ubicación: Logroño
Mensajes: 136
Antigüedad: 20 años, 4 meses
Puntos: 0
boton derecho/abrir con... mi programa

buenas, me gustaria que mi programa pudiera abrir un archivo de esta forma, en windows, el archivo k pueda abrir mi programa, por ejemplo un archivo de texto, darle al boton derecho, a abrir con, y elejir mi programa y k lo abra, se podria hacer de alguna forma? como? abria k llamar a la ventana esa de abrir con ? gracias
  #2 (permalink)  
Antiguo 11/11/2004, 22:16
 
Fecha de Ingreso: octubre-2004
Mensajes: 258
Antigüedad: 19 años, 6 meses
Puntos: 1
lo mas simple seria que agregues en el registro de windows tu aplicacion en la parte de los menu contextuales, luego debes hacer la asociacion del TxT a tu aplicacion, mediante api.
__________________
Salute !!!
RollBack
  #3 (permalink)  
Antiguo 12/11/2004, 08:45
Avatar de Elt_Trebor  
Fecha de Ingreso: diciembre-2003
Ubicación: Logroño
Mensajes: 136
Antigüedad: 20 años, 4 meses
Puntos: 0
gracias por tu respuesta, podrias guiarme un poco?? en el registro windows donde esta el cuadro de dialogo de abrir con.. ?? como se llama esa api? gracias
  #4 (permalink)  
Antiguo 12/11/2004, 09:20
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
HKEY_CLASSES_ROOT\txtfile\shell

Tenes que crear una clave con el nombre de la acción asociada, otra que diga command y el valor por defecto de esta clave debe ser el ejecutable con los parametros que necesite, con poner "%1" supongo que ira perfecto.

Este es un ejemplo (Asociar.cpp):

Código:
#include <windows.h>

void main()
{
  HKEY extensionKey = 0;
  DWORD Result = RegOpenKey(HKEY_CLASSES_ROOT, "txtfile\\shell", &extensionKey); 
  if (Result == ERROR_SUCCESS)
  {
    HKEY asociacionKey = 0;
    Result = RegCreateKey(extensionKey, "WWW", &asociacionKey); 
    RegCloseKey(extensionKey);
    if (Result == ERROR_SUCCESS)
    {
      HKEY commandKey = 0;
      Result = RegCreateKey(asociacionKey, "command", &commandKey); 
      RegCloseKey(asociacionKey);
      if (Result == ERROR_SUCCESS)
      {
        char ejecutable[] = "notepad \"%1\"";
        RegSetValue(commandKey, "",  REG_SZ, ejecutable, strlen(ejecutable));
        RegCloseKey(commandKey); 
      }
    }    
  }
}
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 12/11/2004, 10:58
Avatar de Elt_Trebor  
Fecha de Ingreso: diciembre-2003
Ubicación: Logroño
Mensajes: 136
Antigüedad: 20 años, 4 meses
Puntos: 0
ya busque en el registro la clave k tengo k modificar, k lo que queria ahora era para abrir un .swf, y uso vb, ese codigo es para vb??
  #6 (permalink)  
Antiguo 12/11/2004, 12:23
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Si usas VB no entiendo como me estas preguntando si ese código es para VB ...
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 12/11/2004, 14:07
 
Fecha de Ingreso: octubre-2004
Ubicación: COLOMBIA
Mensajes: 240
Antigüedad: 19 años, 6 meses
Puntos: 3
Información

NO ESE CODIGO ES PARA C, ESTE ES PARA VB:
Código:
API's RegOpenKey, RegCreateKey,  RegCloseKey, RegSetValueEx
CONSTANTES HKEY_CLASSES_ROOT, ERROR_SUCCESS, REG_SZ
Sub GuardarRegistro(hkey As Long, Path As String, Value As String, Data As String)
Dim ret
RegCreateKey hkey, Path, ret
RegSetValueEx ret, Value, 0, REG_SZ, ByVal Data, Len(Data)
RegCloseKey ret
End Sub
Sub Registro()
GuardarRegistro HKEY_CLASSES_ROOT, "txtfile\shell", "NombreValor", "%SystemRoot%\system32\NOTEPAD.EXE /p %1" ' O NO SE QUE LE PONGAS AQUI
End Sub
OJALA TE SIRVA.
CHAO
  #8 (permalink)  
Antiguo 13/11/2004, 04:33
Avatar de Elt_Trebor  
Fecha de Ingreso: diciembre-2003
Ubicación: Logroño
Mensajes: 136
Antigüedad: 20 años, 4 meses
Puntos: 0
ya decia yo,jeje, bueno gracias, lo probare,muxas gracias
  #9 (permalink)  
Antiguo 13/11/2004, 06:08
Avatar de Elt_Trebor  
Fecha de Ingreso: diciembre-2003
Ubicación: Logroño
Mensajes: 136
Antigüedad: 20 años, 4 meses
Puntos: 0
Cita:
Iniciado por RadicalEd
Código:
API's RegOpenKey, RegCreateKey,  RegCloseKey, RegSetValueEx
me da error de compilacion con eso, aparte de k con la "comilla" hace que sea un comentario,si se la kito me dice que

RegOpenKey

no es valido, que falla?
  #10 (permalink)  
Antiguo 13/11/2004, 13:09
 
Fecha de Ingreso: octubre-2004
Ubicación: COLOMBIA
Mensajes: 240
Antigüedad: 19 años, 6 meses
Puntos: 3
Información

MI QUERIDO AMIGO, CUANGO TE DIGO API's SON UNAS FUNCIONES PROPIAS DEL WINDOZE, NO SE DECLARAN COMO ESTAN AHI, UTILIZA EL VISOR DE TEXTO API, QUE VIENE CON EL VISUAL BASIC Y COLOCAS EL NOMBRE DE LAS API's SON UNAS FUNCIONES PARECIDAS A ESTO
Código:
Private Declare Function RegSetValueEx Lib "user32" Alias "RegSetValueExA" (Byval algo As Long) As Long 'ALGO ASI NO ESTA BIEN
OJALA TE SIRVA.
CHAO
  #11 (permalink)  
Antiguo 13/11/2004, 13:17
 
Fecha de Ingreso: octubre-2004
Ubicación: COLOMBIA
Mensajes: 240
Antigüedad: 19 años, 6 meses
Puntos: 3
mmm AL IGUAL QUE LAS CONSTANTES
  #12 (permalink)  
Antiguo 14/11/2004, 08:02
Avatar de Elt_Trebor  
Fecha de Ingreso: diciembre-2003
Ubicación: Logroño
Mensajes: 136
Antigüedad: 20 años, 4 meses
Puntos: 0
gracias, eso no lo sabia, es que llevo desde ace poco en este mundillo ;) voy a provar
  #13 (permalink)  
Antiguo 14/11/2004, 15:43
Avatar de Elt_Trebor  
Fecha de Ingreso: diciembre-2003
Ubicación: Logroño
Mensajes: 136
Antigüedad: 20 años, 4 meses
Puntos: 0
pongo el nombre de la api y no me encuentra nada en el visor de apis, pongo las dos letras primeras como dice y tmpoco:s
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:15.