Red de conocimiento informático - Problemas con los teléfonos móviles - tipo de archivo de registro vb

tipo de archivo de registro vb

En Windows, cuando hacemos doble clic en un archivo .txt, el programa "Bloc de notas" se abrirá automáticamente y mostrará el contenido del archivo .txt; cuando arrastremos un archivo .txt al icono "Bloc de notas", el programa Bloc de notas El contenido; del archivo .txt también se abrirá y mostrará automáticamente. En Windows, esta tecnología se llama "asociación de archivos", que es una característica muy práctica y fácil de usar para el operador. Cuando diseñamos un programa, a menudo necesitamos usar nuestros propios archivos definidos para ejecutar nuestro propio programa. Por ejemplo, una vez diseñé un "juego de crucigramas". Este juego requiere un "archivo de juego de crucigramas" para admitirlo. Si el usuario quiere jugar este "juego de crucigramas", debe iniciarlo. juego de crucigramas, primero debe iniciar el programa "Crucigrama", luego seleccionar "Archivo" en el menú, luego seleccionar "Abrir crucigrama" y luego seleccionar "Abrir crucigrama" en el cuadro de diálogo "Abrir crucigrama". Luego seleccione un archivo de crucigrama en el cuadro de diálogo "Abrir crucigrama" y finalmente presione "Iniciar juego" para jugar. Me he estado preguntando si es posible simplificar estas operaciones. El usuario solo necesita hacer doble clic en "Archivo de crucigrama" y el sistema completará automáticamente las operaciones preliminares. El usuario solo necesita presionar "Iniciar juego" para jugar. juego. Quizás una función de este tipo sea fácil de implementar en VC, pero ¿se puede realizar en VB? ¡La respuesta es "Absolutamente"!

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.