Visual Basic - TIPO DE PROGRAMA es posible?

Life is soft - evento anual de software empresarial
 
Vista:

TIPO DE PROGRAMA es posible?

Publicado por Christian (675 intervenciones) el 23/05/2005 23:27:43
Existe la manera de poder determinar mediante un archivo, saber a que tipo de programa pertenece???
Necesito que al seleccionar un archivo (cualquiera) en una caja de texto me aparezca el programa por el que fue creado.
EJEM:

Yo selecciono un archivo .DOC y en la caja me aparece WORD.

Espero me ayuden que es URGENTE,
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:TIPO DE PROGRAMA es posible?

Publicado por Dennis Baldeón (1 intervención) el 24/05/2005 22:02:58
Prosupuesto que si, solo tienes que buscar la extencion en el registro del sistema en la seccion HKEY_CLASSES_ROOT

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:TIPO DE PROGRAMA es posible?

Publicado por Dennis Baldeón (103 intervenciones) el 25/05/2005 16:45:18
Hola, tuve que trabajar varios minutos para hacerlo, espero te ayude.

Private Const HKEY_CLASSES_ROOT As Long = &H80000000

Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long

Private Function ConsultaRegistro(ByVal Valor As String) As String

Dim nResultado As Long 'guarda el resultado de las llamadas api
Dim nRegistro As Long 'guarda el handled del registro
Dim nTipoDato As Long 'guarda el tipo de dato del valor
Dim nTamañoDato As Long 'guarda el tamaño del valor
Dim sDato As String 'guarda el valor

'abre el registro
nResultado = RegOpenKey(HKEY_CLASSES_ROOT, Valor, nRegistro)

'si no se pudo abrir se salde de la funcion
If nResultado <> 0 Then
Exit Function
End If

'consulta el tamaño del buffer
nResultado = RegQueryValueEx(nRegistro, vbNullString, 0, nTipoDato, ByVal 0, nTamañoDato)

'si se pudo consultar se obtiene el valor
If nResultado = 0 Then

'crea el buffer
sDato = String(nTamañoDato, " ")

'obtiene el valor
nResultado = RegQueryValueEx(nRegistro, vbNullString, 0, 0, ByVal sDato, nTamañoDato)

If nResultado = 0 Then

'devuelve el resultado
ConsultaRegistro = Left$(sDato, nTamañoDato - 1)

End If

End If

'cierra el registro
RegCloseKey nRegistro

End Function

Private Sub Command1_Click()
Dim sResultado As String
'consulta la extencion
sResultado = ConsultaRegistro(".doc")
'consulta la descripcion
MsgBox ConsultaRegistro(sResultado)
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:TIPO DE PROGRAMA es posible?

Publicado por Christian (675 intervenciones) el 25/05/2005 17:32:18
gracias x tu tiempo, funciono, gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar