¿Cómo sabe Yi Language si el teléfono móvil está conectado a la computadora o desconectado?
Generalmente, cuando se inserta un teléfono móvil, se mostrará la unidad H o algo más.
Solo usted puede determinar si la unidad H existe.
El siguiente es el código para obtener el evento de inserción o eliminación del disco U, incluidos comandos dll y constantes de tipo personalizado.
.Versión 2
.Ventana de ensamblaje ensamblaje 1
.Variable de ensamblaje a, puntero de subrutina
.Subrutina __Ventana de inicio_Creación completada
. p>
a = SetWindowLong (_Ventana de inicio. Obtener identificador de ventana (), -4, amp; MsgProc)
Subrutina MsgProc, entero
.Parámetro hwnd, tipo entero.
.Parámetro msg, tipo entero
.Parámetro wp, tipo entero
.Parámetro lp, tipo entero
Variable local val. , PDEV_BROADCAST_VOLUME
Variable local i, tipo entero
Máscara de variable local, tipo entero
Se inicia el juicio (msg = 537). p> .El juicio comienza (wp = #DBT_DEVICERARRIVAL) 'Insertar dispositivo
Copiar estructura (val, lp, 14)
.Si es verdadero (val.dbcv_devicetype = #DBT_DEVTYP_VOLUME) p>
máscara = val.dbcv_unitmask
.Cabeza de bucle variable (0, 25, 1, i)
.si es verdadero (bit AND (máscara, 1) = 1 )
salir del bucle()
.if true end
máscara = desplazamiento a la derecha (máscara, 1)
.Variable loop tail()
Cuadro de edición 1. Agregue texto ("Se inserta un disco USB, letra de unidad:" + caracteres (65 + i) + #salto de línea)
Detectar (Carácter (65 + i))
. Si es verdadero
Juez (wp = #DBT_DEVICEREMOVECOMPLETE) ' Eliminar dispositivo
Copiar estructura (val, lp, 14). )
.si es verdadero (val.dbcv_devicetype = #DBT_DEVTYP_VOLUME)
máscara = val.dbcv_unitmask
.cabezal de bucle variable (0, 25, 1, i )
.Si es verdadero (bit AND (máscara, 1) = 1)
Saltar fuera del bucle ()
.Finalizar si es verdadero
máscara = desplazamiento hacia la derecha (máscara, 1)
.Cola de bucle variable()
Cuadro de edición 1. Agregue texto (" Se extrae el disco USB, letra de unidad: " + caracteres (65 + i) + # carácter de nueva línea)
. Si es verdadero, finaliza
. Predeterminado
. Fin del juicio
<p>.Default
.Fin del juicio
Retorno (CallWindowProc (a, hwnd, msg, wp, lp))
.Subrutina__ventana de inicio _será destruida
a = SetWindowLong (_Iniciar ventana. Obtener identificador de ventana (), -4, a)
Detección de subrutina
. Parámetros Letra de unidad, tipo de texto<. /p>
Variable local fn, tipo de texto
fn = Buscar archivo (letra de unidad + ":\*.*", )
Cuadro de edición 2. Contenido =. “”
Determine el comienzo del bucle (fn ≠ “”)
Cuadro de edición 2. Agregue texto (fn + #salto de línea)
fn. = Buscar archivo (, )
Determinar el final del ciclo ()
≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈ ≈≈≈. ≈≈≈Tipo personalizado≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈
.Tipo de datos PDEV_BROADCAST_VOLUME
.Miembro dbcv_size, tipo entero, , , 14
.Miembro dbcv_devicetype, tipo entero
.Miembro dbcv_reserved, tipo entero
.Miembro dbcv_unitmask, tipo entero
.Miembro dbcv_flags, tipo entero corto
.Tipo de datos_DEV_BROADCAST_HDR
.Miembro dbch_size, tipo entero
.Miembro dbch_devicetype, tipo entero
.Miembro dbch_reserved, tipo entero
≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈constante≈≈≈≈ ≈≈≈≈≈≈≈≈≈ ≈≈≈≈
Constante WM_DEVICECHANGE, "537", , se cambia la letra de la unidad
Constante DBT_DEVICEREMOVECOMPLETE, "32772"
.Constante DBT_DEVICERARRIVAL, "32768"<. /p>
.Constante DBT_DEVTYP_OEM, "0"
.Constante DBT_DEVTYP_DEVNODE, "1"
.Constante DBT_DEVTYP_VOLUME, "2"
. DBT_DEVTYP_PORT, "3"
Constante DBT_DEVTYP_N, "4"
.