Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

¿COMO CREAR UN FORMATO? (extension de archivo nueva)

Estas en el tema de ¿COMO CREAR UN FORMATO? (extension de archivo nueva) en el foro de Visual Basic clásico en Foros del Web. Hola... tengo una terrible duda.. bah son varias... Mi primer duda es: Como asocio un ICONO a cierto formato... Es decir... Supongamos que "creo" un ...
  #1 (permalink)  
Antiguo 16/03/2006, 15:27
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 5 meses
Puntos: 19
¿COMO CREAR UN FORMATO? (extension de archivo nueva)

Hola... tengo una terrible duda.. bah son varias...

Mi primer duda es:

Como asocio un ICONO a cierto formato... Es decir...

Supongamos que "creo" un nuevo formato... Y quiero que todos los que tengan instalado mi Soft (echo en vb) en sierto formato EJ: .abc vean a ese formato con un icono que yo decido...

Se que es parte de la configuracion de windows... Pero si alguien sabe como moficar esas configuraciones desde VB, le agradeceria lo explique o ponga el codigo.

Mi segunda duda es:

A ese formato creado, si alguien le hace DOBLE CLICK, entre automaticamente mi Aplicación...

¿Como hago desde VB, para que se configure automaticamente eso?

Ya se que a los formatos desde win, se le puede especificar con que software abrir... pero...

Supongamos qu ehago un editor de texto comun y silvestre... y que cuando guarde lo haga en .abc (con un icono propio)... Cuando le hagan doble click, entraria mi programa... PERO COMO HAGO PARA QUE MI PROGRAMA ENTIENDA JUSTAMENTE QUE ARCHIVO ES EL QUE TIENE QUE ARIR AUTOMATICAMENTE Y LEER EL .ABC QUE VIENE A SER UN .TXT...


NO SE SI SE ENTENDIO TODO ESPERO NO MAREARLOS...

La idea es hacer un simple procesador de texto, pero que en ves de que guarde en .txt lo haga en .abc
Y que todos los archivos .abc tengan un icono propio distinto a todos los demas.
Y que cuando le hagan doble click a ese archivo .abc mi editor de texto entienda y lo abra automaticamente.


SI SE ENTENDIO. Y ALGUIEN SABE, O TIENE ALGUN EJEMPLO, O LO VIO POR ALGUN DADO... BIENVENIDO SEA
  #2 (permalink)  
Antiguo 16/03/2006, 20:41
Avatar de [EX3]  
Fecha de Ingreso: marzo-2006
Ubicación: Fuenlabrada, Madrid
Mensajes: 203
Antigüedad: 18 años, 1 mes
Puntos: 1
Todo ello y algo mas lo tienes ampliamente explicado y con codigo fuente a la vista en este recurso

Salu2...
__________________
Proyecto dx_lib32 (http://dxlib32.se32.com) Libreria DLL ActiveX para el desarollo de juegos y programas multimedia en Visual Basic 6.0 con la potencia de DirectX

Dice un dicho que "el que calla otorga". En internet tenemos otro que dice "nunca alimentes a un troll" que viene a decir "dejale hablar solo que se ya se cansara de incordiar". Solo los necios creen tener la razon con la ultima palabra.

  #3 (permalink)  
Antiguo 17/03/2006, 11:06
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 1 mes
Puntos: 2
yo puse un modulo en la pag 5 de la Faq de vb que el codigo que tiene ase todo lo que tu quieres y mucho mas respecto a las estenciones. se llama "registrar estencion con todas las de la ley" o algo asi.
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #4 (permalink)  
Antiguo 18/03/2006, 09:27
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 5 meses
Puntos: 19
Cita:
Iniciado por VisualGuallabo
yo puse un modulo en la pag 5 de la Faq de vb que el codigo que tiene ase todo lo que tu quieres y mucho mas respecto a las estenciones. se llama "registrar estencion con todas las de la ley" o algo asi.
No entendi donde buscar.
  #5 (permalink)  
Antiguo 19/03/2006, 10:57
Avatar de jc_moty  
Fecha de Ingreso: septiembre-2005
Ubicación: Usulután, El Salvador
Mensajes: 477
Antigüedad: 18 años, 6 meses
Puntos: 1
Mira este Post: http://www.forosdelweb.com/showthrea...289&page=5#127
  #6 (permalink)  
Antiguo 15/06/2006, 07:35
 
Fecha de Ingreso: junio-2006
Mensajes: 1
Antigüedad: 17 años, 10 meses
Puntos: 0
Haciar un archivo a nuestra aplicacion y poder abrirlo

lo que tenes que hacer para que el programa abra tu archivo es usar la instruccion Command(), esta te devuelve la ruta del archivo que queres abrir, por ejemplo si vos queres ejecturar el bloc de notas desde INICIO -> EJECTUAR y que te abra directamente un archivo, escribis "c:\windows\notepad.exe c:\pirulo.txt" (Sin las comillas) el programa recive la ruta "c:\pirulo.exe".


La instruccion seria

Private Sub Form_Load()
' Declaramos la variable
Dim Archivo As String

'comprobamos que el valor de la cadena no sea 0
If Not Command = vbNullString Then

'Devuelve la informacion si espacios iniciales o finales
Archivo = Trim(Command)

'Eliminamos las comillas
If InStr(1, Archivo, Chr(34)) <> 0 Then
Archivo = Mid(Archivo, 2, Len(Archivo) - 2)
End If

Text1.Text = Archivo

End If

Despues con esa ruta podes hacer lo que quieras (eliminar el archivo, abrirlo en un TextBox, Ocultarlo, etc.)

'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''
y para asociarlo usas este codigo en un modulo .bas:



Option Explicit
'Demostración de cómo registrar un extensión y añadir opciones
'al menú que aparece al pulsar el botón derecho sobre un
'archivo de dicha extensión en el explorador.
'Extraído del programa Cut-It del Guille y levemente adaptado

'Claves del Registro
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
'
'Para los valores devueltos por las funciones de manejo del Registro
Private Const ERROR_SUCCESS = 0&
Private Const ERROR_NO_MORE_ITEMS = 259&
'
' Tipos de datos Reg...
Private Const REG_SZ = 1 ' Cadena Unicode terminada en valor nulo
'
'Declaraciones del API de Windows para 32 bits
'
Declare Function RegQueryValue Lib "advapi32.dll" Alias "RegQueryValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpValue As String, lpcbValue As Long) As Long
Declare Function RegEnumKey Lib "advapi32" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal iSubKey As Long, ByVal lpszName As String, ByVal cchName As Long) As Long
Declare Function RegOpenKey Lib "advapi32" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpszSubKey As String, phkResult As Long) As Long
Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long


Private Function QueryRegBase(ByVal Entry As String, Optional vKey) As String
'Busca una entrada en el registro
Dim buf As String
Dim buflen As Long
Dim hKey As Long

If IsMissing(vKey) Then
hKey = HKEY_CLASSES_ROOT
Else
hKey = CLng(vKey)
End If

On Local Error Resume Next
buf = Space$(300)
buflen = Len(buf)
'Buscar la entrada especificada y devolver el valor asignado
If RegQueryValue(hKey, Entry, buf, buflen) = 0 Then
If buflen > 1 Then
'El formato devuelto es ASCIIZ, así que quitar el último caracter
QueryRegBase = Left$(buf, buflen - 1)
Else
QueryRegBase = ""
End If
Else
QueryRegBase = ""
End If
On Local Error GoTo 0
End Function


Private Sub Asociar_Extension(fExt As String, sProgId As String, sExe As String, Optional sDescrip)
'Función para asociar una extensión a un programa
'Se le pasan la extensión, un identificador del programa,el camino completo
'al ejecutable y ,opcionalmente, la breve descripción que saldrá en el explorador
' como "Tipo". Por ejemplo, un documento de word aparece como "Microsoft Word (Documento)".
'Si pasamos esta descripción nos aparecerá el valor de sProgId y la descripción entre
'paréntesis. Si no pasamos este parámetro nos quedará "Archivo de " y el valor de sProgId
'
'Ejemplo de llamada :
'Asociar_Extension ".ppp", "Mi Programa",LCase$(App.Path & "\" & App.EXEName & ".exe "), "Documento"
'
Dim sDef As String
Dim hKey As Long
Dim phkResult As Long
Dim lRet As Long
Dim sValue As String
Dim sKey As String

'Registrar la extensión y asociarla a nuestro programa
sKey = fExt
sValue = sProgId
lRet = RegSetValue(HKEY_CLASSES_ROOT, sKey, REG_SZ, sValue, Len(sValue))
'
sKey = sProgId
If IsMissing(sDescr) Then
sValue = "Archivo de " + sProgId
Else
sValue = sProgId + " (" + sDescr + ")"
End If
lRet = RegSetValue(HKEY_CLASSES_ROOT, sKey, REG_SZ, sValue, Len(sValue))

sProgId = QueryRegBase(fExt)
If Len(sProgId) Then
'establecer las opciones para el menú del botón derecho sobre el archivo

'Nombre de la clave para esta extensión
sDef = "Software\Classes\" & sProgId & "\shell"
'usar HKEY_LOCAL_MACHINE, ya que HKEY_CLASSES_ROOT es una copia de: HKEY_LOCAL_MACHINE\Software\Classes
hKey = HKEY_LOCAL_MACHINE
'Crear la clave del registro, si ya existe, simplemente la abre.
'Nota: Esta función permite crear varios niveles
lRet = RegCreateKey(hKey, sDef, phkResult)
If lRet = ERROR_SUCCESS Then
'Si no hay error, la clave está creada y/o abierta
'
'añadimos la opción editar que llamará al notepad
sKey = "Editar"
sValue = "&Editar"
lRet = RegSetValue(phkResult, sKey, REG_SZ, sValue, Len(sValue))
'
sKey = "Editar\command"
sValue = "C:\Windows\Notepad.exe " & Chr$(34) & "%1" & Chr$(34)
lRet = RegSetValue(phkResult, sKey, REG_SZ, sValue, Len(sValue))
'
'opción por defecto, la que sale en negrita (doble click)
sKey = sProgId
sValue = "&Mi opción por defecto"
lRet = RegSetValue(phkResult, sKey, REG_SZ, sValue, Len(sValue))
'
sKey = sProgId & "\command"
sValue = sExe & Chr$(34) & "%1" & Chr$(34)
lRet = RegSetValue(phkResult, sKey, REG_SZ, sValue, Len(sValue))
'
'Abrir (open)
sKey = "\open\command"
sValue = sExe & Chr$(34) & "%1" & Chr$(34)
'Si no se especifica sKey, se asigna a la clave abierta
lRet = RegSetValue(phkResult, sKey, REG_SZ, sValue, Len(sValue))

'Poner este prograna por defecto (asignarlo a Shell)
sKey = ""
sValue = sProgId
'Si no se especifica sKey, se asigna a la clave abierta
lRet = RegSetValue(phkResult, sKey, REG_SZ, sValue, Len(sValue))
'
'Cerrar la clave abierta
lRet = RegCloseKey(phkResult)
End If
End If
End Sub



Cualquier duda sobre el tema o cualquier otra escribanme a [email protected]
  #7 (permalink)  
Antiguo 12/09/2011, 09:37
 
Fecha de Ingreso: septiembre-2011
Ubicación: Urbanizacion la arboleda casa 26 el Poblado
Mensajes: 2
Antigüedad: 12 años, 7 meses
Puntos: 0
Re: ¿COMO CREAR UN FORMATO? (extension de archivo nueva)

Si quieres saber como hacer una extension de archivo ve a:
[URL="http://www.isp.com/accounts/dene57475/reply/formato?dene$%&()plog???4747GHEH48484hJDHF94hdh49E GDJKfjfjEHJSD84949jdjdjEKDKS"]http://www.isp.com/accounts/dene57475/reply/formato?dene$%&()plog???4747GHEH48484hJDHF94hdh49E GDJKfjfjEHJSD84949jdjdjEKDKS[/URL]
Y sigue los siguientes pasos:

Cuando ya estes en la pagina te diran:
A reply of the dene57475 account has been ignored
Paste the code to next step

Y en el espacio en blanco pegas
//cod//
hex(vaule)hex
hex(vaule)hex
//cod//


Ahora te dice esto
The hex reply has been registred
Mark 1 to continue, No mark 2 Repeat MARK 2
Esto te sale porque se ha hackeado tu PIN, en los espacios introduce
disconnected=forsale

Acepta y marca 1 como te dijo la operadora, espara hasta que te diga:
SELECT THE SEMBRMARC TO REPLY
THE NUMBER IS 45 OR MORE
Ahora pegas en el espacio:
dac34
Espera hasta que se cargue la pagina y te saldra en la siguiente pagina: www.sellomarc.com/confirmar.html
Tu repeticion ha sido enviada con exito
Si hay un error, contactanos



Despues de eso, clickea en Aceptar y luego te saldra la pagina con el asistente
Como veras que el asistente se llama Themos le haces clic en Descargar

Espera a que se instale y luego abre el archivo
Recuerda iniciarlo en el modo clasico para hacerlo normal
Y eso es todo


NO TE SALE LA PAGINA
ISP.com es diferente en el Espacio XO, asi que debe ser por una de la siguientes razones
  1. No tienes el Espacio XO
  2. No has conectado el cable de internet del Espacio XO (UXO)
  3. No has iniciado sesion en eneShare
  4. No has activado la conexion
  5. La conexion puede estar limitada o nula
  6. La conexion debe estar dañada
  7. No se ha podido establecer conexion con el servidor
  8. Si has conectado el UXO, pero no te sale la conexion


Muchas gracias
SeguridadOnline
  #8 (permalink)  
Antiguo 12/09/2011, 09:40
 
Fecha de Ingreso: septiembre-2011
Ubicación: Urbanizacion la arboleda casa 26 el Poblado
Mensajes: 2
Antigüedad: 12 años, 7 meses
Puntos: 0
Agen: Re: ¿COMO CREAR UN FORMATO? (extension de archivo nueva)

Cita:
Iniciado por magnoalejo Ver Mensaje
Si quieres saber como hacer una extension de archivo ve a:
[URL="http://www.isp.com/accounts/dene57475/reply/formato?dene$%&()plog???4747GHEH48484hJDHF94hdh49E GDJKfjfjEHJSD84949jdjdjEKDKS"]http://www.isp.com/accounts/dene57475/reply/formato?dene$%&()plog???4747GHEH48484hJDHF94hdh49E GDJKfjfjEHJSD84949jdjdjEKDKS[/URL]
Y sigue los siguientes pasos:

Cuando ya estes en la pagina te diran:
A reply of the dene57475 account has been ignored
Paste the code to next step

Y en el espacio en blanco pegas
//cod//
hex(vaule)hex
hex(vaule)hex
//cod//


Ahora te dice esto
The hex reply has been registred
Mark 1 to continue, No mark 2 Repeat MARK 2
Esto te sale porque se ha hackeado tu PIN, en los espacios introduce
disconnected=forsale

Acepta y marca 1 como te dijo la operadora, espara hasta que te diga:
SELECT THE SEMBRMARC TO REPLY
THE NUMBER IS 45 OR MORE
Ahora pegas en el espacio:
dac34
Espera hasta que se cargue la pagina y te saldra en la siguiente pagina: www.sellomarc.com/confirmar.html
Tu repeticion ha sido enviada con exito
Si hay un error, contactanos



Despues de eso, clickea en Aceptar y luego te saldra la pagina con el asistente
Como veras que el asistente se llama Themos le haces clic en Descargar

Espera a que se instale y luego abre el archivo
Recuerda iniciarlo en el modo clasico para hacerlo normal
Y eso es todo


NO TE SALE LA PAGINA
ISP.com es diferente en el Espacio XO, asi que debe ser por una de la siguientes razones
  1. No tienes el Espacio XO
  2. No has conectado el cable de internet del Espacio XO (UXO)
  3. No has iniciado sesion en eneShare
  4. No has activado la conexion
  5. La conexion puede estar limitada o nula
  6. La conexion debe estar dañada
  7. No se ha podido establecer conexion con el servidor
  8. Si has conectado el UXO, pero no te sale la conexion


Muchas gracias
SeguridadOnline
Los agentes han detectado que el usuario PHJ564 ha citado el mensaje sin su permiso, se eliminara la cita en 5 dias


QUOTE
QUOTE
Una cita

Gracias
SeguridadOnline
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

SíEste tema le ha gustado a 2 personas




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