tipo de archivo de registro vb
Primero, para simplificar el proceso de explicación, debemos aclarar la tarea. Ahora supongamos que tenemos un tipo de archivo personalizado .abc y un programa VB. Cuando hacemos doble clic en el ícono del archivo personalizado .abc, o arrastramos el ícono al ícono del programa, solicitamos que el programa se inicie automáticamente y obtenga el nombre del archivo .abc para realizar más operaciones en el archivo. (A modo de ilustración, supongamos que el nombre del archivo es el título del formulario cuando el programa se ejecuta automáticamente. Por supuesto, puede obtener el nombre del archivo y luego abrir el archivo con su programa).
Bueno, el proceso comienza aquí. El primer problema a resolver es ¿cómo "asociar" el archivo .abc con nuestro programa VB? Aquí, utilizamos el método de modificar el "registro" para implementar la asociación de archivos. Comencemos definiendo un módulo con algunas constantes y funciones API.
(Se usarán las siguientes constantes y las explicaré)
Opciones explícitas
Constante pública HKEY_CLASSES_ROOT = & H80000000
Const pública HKEY_CURRENT_USER = amp; H80000000
Const pública HKEY_CURRENT_ROOT = amp; H80000000
Construya la siguiente constante USUARIO = amp H80000001
Const pública HKEY_LOCAL_MACHINE = amp; /p>
Const pública HKEY_USERS = amp; H80000003
Const pública HKEY_PERFORMANCE_DATA = amp; H80000004
Const pública HKEY_CURRENT_CONFIG = amp; HKEY_DYN_DATA = amp.H80000006
(Las funciones anteriores son algunas constantes de registro utilizadas para definir hKey)
Tipo de valor de enumeración
REG_NONE = 0
REG_SZ = 1
REG_EXPAND_SZ = 2
REG_ BINARY= 3
REG_DWORD = 4
REG_DWORD_BIG_ENDIAN = 5
REG_MULTI_SZ = 7
End Enum
(Esta enumeración se utiliza para definir dwType)
Declarar función RegCreateKey Lib "advapi32.dll" alias" RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String,
phkResult As Long) As Long 'Esta función se utiliza para crear la clave primaria del registro
Función de declaración RegCloseKey Lib "advapi32 . dll" (ByVal hKey As Long) As Long 'Esta función se utiliza para cerrar el registro abierto
Declarar función RegSetValue Lib "advapi32.dll" alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As Long). String , ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long 'Esta función se utiliza para reescribir el valor de la clave de registro
Las tres funciones API relacionadas son: RegCreateKey [Crear subclave] y RegClose [Cerrar subclave]
Descripción detallada:
Función RegCreateKey:
Función RegCreateKey:
Función de declaración de declaración VB RegCreateKey Lib "advapi32 .dll" Alias "RegCreateKeyA"
(ByVal hKey As Long, ByVa
l lpSubKey como cadena, phkResult As Long) As Long
hKey: identificador de clave
lpSubKey: nombre o ruta de la subclave
phkResult: si RegOpenKey se ejecuta correctamente, this El parámetro devolverá la hKey de la subclave.
Valor de retorno: =0, indica éxito; ≠0, indica error. [Tenga en cuenta que esto es diferente de otras funciones API]
Su uso de parámetros es el mismo que RegOpenKey. La diferencia es que RegOpenKey solo puede abrir una subclave existente, mientras que RegCreateKey puede crear una subclave. Más específicamente, si la subclave creada llamando a RegCreateKey es una subclave existente, es la misma función que RegOpenKey. Debido a esta característica de RegCreateKey, algunos programadores simplemente no usan RegOpenKey y usan RegCreateKey en lugar de RegOpenKey para la unificación.
Función RegClose:
Declarar la función RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Cuando ya no accedemos al registro, Es una mejor práctica cerrar una subclave abierta o creada, tal como tenemos que cerrarla después de usar la función de apertura de archivo en lenguaje C. ByVal lpData As String, ByVal cbData As Long) As Long
hKey: Identificador de clave
lpSubKey: Nombre o ruta de subclave
dwType: Tipo de datos, pero en este En el ejemplo, solo puede aceptar REG_SZ [tipo de cadena]
lpData: conjunto de cadenas
cbData: la longitud de la cadena lpData, esta longitud incluye caracteres chr (0).
Acerca de los posibles valores de dwType
Con estas funciones de operación del registro, podemos comenzar a definir tipos de archivos. En realidad, el proceso es muy sencillo.
1. Defina el archivo .abc en el registro, indicando que el tipo de archivo es el archivo de usuario "userfile"
2. Defina y abra este tipo de archivo en el "userfile". " del programa de archivos de registro (¡este es nuestro programa VB!).
El código fuente específico es el siguiente:
Sub Main()
Dim ret As Long, hKey As Long, ExePath As String
ret = RegCreateKey(HKEY_CLASSES_ROOT, ".abc", hKey) 'Definir archivo .abc
ret = RegSetValue(HKEY_CLASSES_ROOT, ".abc", REG_SZ, "userfile", 9) 'Definir tipo de archivo , preste atención al último número, es decir, el número de bytes de "userfile" 1
ret = RegCreateKey(HKEY_CLASSES_ROOT, "userfile", hKey) 'Definir "userfile"
ret = RegCreateKey(HKEY_CLASSES_ROOT, "userfile\shell", hKey) 'Definir operaciones de archivos. operación
ret = RegCreateKey(HKEY_CLASSES_ROOT, "userfile\shell\open", hKey) 'Defina específicamente el nombre de la operación
ret = RegCreateKey(HKEY_CLASSES_ROOT, " userfile\shell\ open\ command", hKey) 'Define la acción de la operación
ExePath = App.Path; "\", "\"). Ruta amp; "\" amp; App.EXEName amp; ".exe 1" 'Obtiene el nombre del programa VB
ret = RegSetValue(HKEY_CLASSES_ROOT, "userfile\shell\open\command", REG_SZ , ExePath , LenB(StrConv(ExePath, vbFromUnicode)) 1)
"¡El paso más crítico! Asocia la operación de apertura de "userfile" con nuestro programa
RegCloseKey hKey
End Sub
De esta manera, cuando hagamos doble clic en el icono .abc en el futuro, nuestro programa VB se podrá abrir automáticamente. Por supuesto, esto solo se puede lograr abriendo el programa. ¿Cómo puede saber el programa que hicimos doble clic? ¿Qué pasa con el nombre del archivo? Entonces, creemos un formulario ahora para ilustrar este problema.
Al cargar el formulario, agregue el siguiente código fuente:
Private Sub Form_Load()
Dim ss As String 'Definir una variable de carácter
ss = Command() '¡El paso más crítico! ¡Utilice esta función para obtener el comando! parámetros de línea! Es el "1" mencionado anteriormente, en otras palabras, es el nombre del archivo.
Me.Caption = ss 'Está bien, el nombre de su archivo está en la parte superior del formulario. , con el nombre del archivo, ¡tú decides lo que quieres hacer! )
End Sub
Por supuesto, debes determinar si es la primera vez que se ejecuta el programa. Si es la primera vez, ejecuta Sub Main() antes de cargar el formulario.
Bueno, después de aprender esto, podrás usar archivos personalizados en el programa. El que se abre por defecto será el reproductor que escribiste.