Domingo 22 de Diciembre de 2024, 13:32
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Detectar Dispositivos
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Detectar Dispositivos (Leído 8026 veces)
scorpion25acv
Miembro activo
Mensajes: 30
Detectar Dispositivos
«
en:
Domingo 31 de Octubre de 2004, 07:30 »
0
Salu2, Mi consulta es para saber si alguien conoce cómo saber a cual puerto está conectado un dispositivo (En este caso un Modem) por medio de Visual Basic.
Deseo saber si existe alguna funcion de Windows que lo realice, (consultando talvez el mismo registro de windows,) para que me diga, por Ejemplo en cual puerto serie existe conectado un Modem.
Infinitas gracias por su ayuda de antemano
Tweet
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Detectar Dispositivos
«
Respuesta #1 en:
Martes 2 de Noviembre de 2004, 15:01 »
0
Hola scorpion25acv.
Échale un vistazo a esto
http://foros.solocodigo.com/index.php?showtopic=6517
Supongo que te servirá.
Abur.
scorpion25acv
Miembro activo
Mensajes: 30
Re: Detectar Dispositivos
«
Respuesta #2 en:
Viernes 5 de Noviembre de 2004, 08:14 »
0
Salu2, nuevamente.
Brroz, tu ejemplo esta muy interesante, Ahora la duda que tengo es la siguiente:
La funcion: "Private Function MaxComPort() As Integer", si bien analizo, devuelve el numero de puerto mayor que encuentra abriendolo y cerrandolo una vez asignado en la propiedad CommPort durante el ciclo, se genera el error # 8002, por que el puerto no existe, pero que pasa si mi modem esta en el COM4, o el COM5, que fuera, al llegar al COM3, sale porque el ultimo puerto valido fue el 2, (COM1 y COM2 estan por default, para aquellos visitantes que lean esto y talvez no lo saben).
Tambien esta la situacion en donde el modem que tengo puede ser externo, conectado al COM1 y/ o talvez un mouse en el COM2 o viceversa, estas situaciones tambien se deben analizar, porque se generan errores como el # 8005, informando que el puerto ya está abierto (a la primera vez del ciclo se sale al probar el com1, y si no hay nada en el com1, se sale en el com2 por l mouse), y si me salto el error, al decirle MSComm1.PortOpen = False, me genera el error # 8012, que dice que no se puede cerrar algo que obviamente no esta abierto, lo anterior lo escribo, por que intenté saltar el error 8005, pensando que habia encontrado al mouse, y que prosiguiera, pero bueno.
Talves me puedas platicar acerca de las API's que le mencionabas a Piter en la otra ocasion, porque de los casos expuestos anteriormente , me suceden y en el proyecto que realizo, los usuarios no deben de escoger, como se hace usualmente (desde un combo, textbox, etc) el puerto donde se ubica el modem, que posteriormente paso a la propiedad "CommPort" > MsComm.CommPort = ?
Asi que las sugerencias, ayudas q me puedan brindar bienvenidas y Brroz, te agradesco que me tomes en cuenta.
Adjunto el Ejemplo que proporcionaste...
Código: Text
Private Function MaxComPort() As Integer
On Error GoTo Err_Chk
Dim int1 As Integer
For int1 = 1 To 16
MSComm1.CommPort = int1
MSComm1.PortOpen = True
MSComm1.PortOpen = False
Next int1
Exit_Chk:
MaxComPort = int1
Exit Function
Err_Chk:
If Err.Number = 8002 Then
int1 = int1 - 1
Resume Exit_Cont
Else
MsgBox Err.Description
End If
End Function
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Detectar Dispositivos
«
Respuesta #3 en:
Viernes 5 de Noviembre de 2004, 15:31 »
0
Hola.
A ver si a lo largo de la tarde puedo probar estas cosas que me comentas y te digo algo...
Sobre las apis puedes buscar información en el MSDN. Personalmente no las he utilizado nunca y para poder decirte algo con fundamento tendría que informarme y probarlo.
Chao.
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Detectar Dispositivos
«
Respuesta #4 en:
Viernes 5 de Noviembre de 2004, 16:44 »
0
Hola scorpion25acv.
Tal vez unas pequeñas modificaciones en el código, obviando el control Comm sirvan para hayar el puerto COM más alto. Yo no tengo módem ni ratón serial para hacer pruebas, pero puedes probarlo tú y contar como te fué... No las tengo todas conmigo de que funcione, pues a pesar de no conocer como funciona internamente el control, supongo que hace algo parecido, abriéndolo como un archivo.
Código: Text
Public Function MaxComPort() As Integer
On Error GoTo Err_Chk
Dim i1 As Integer, iCanal As Integer
For i1 = 1 To 16
iCanal = FreeFile
Open "COM" & i1 For Binary As #iCanal
Close #iCanal
Next i1
Exit_Chk:
On Error Resume Next
Close #iCanal
MaxComPort = i1
Exit Function
Err_Chk:
If Err.Number = 53 Then ' (53 el archivo no existe)
i1 = i1 - 1
Resume Exit_Chk
Else
MsgBox Err.Description
End If
End Function
Ahora una cuestión que surge es: ¿qúe ocurre con los puertos USB?
Tal vez al final la mejor solución pueda estar recuperando valores del registro de windows. Échale un vistazo a esta clave (w98):
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Class/Modem
Contendrá una subclave para cada uno de los módems instalados. Uno de sus valores será "AtachedTo" que te indicará el puerto.
Espero que esto pueda ayudar. Abur.
scorpion25acv
Miembro activo
Mensajes: 30
Re: Detectar Dispositivos
«
Respuesta #5 en:
Lunes 8 de Noviembre de 2004, 06:41 »
0
Hola, Brroz y gracias nuevamente por ayudarme.
Voy a probar la funcion para informarte luego de los resultados, en el caso de recurrir a ubicarlo en el registro de windows, ya lo estaba intentando pero, la cuestion es que las funciones que tengo para buscar son sobre una clave especifica, crearla, modificarla o borrarla, y por otra parte tenes razon, la clave se encuentra simpre en win9x, pero, (aqui vienen los peros.. jeje) ese es el mero problemita que tengo tiene que funcionar para : win 9x/2000/xp, y en estos casos la cosa varia, pero si sabes de alguien expert manipulando el registry desde visual me avisas, alguien que sepa hacer busquedas en el mismo por que asi talves si funka, si quieres me das tu correo y te escribo una nota detallada del sistema q estoy creando, para no sacrificar tanto a los lectores de este foro con mis cosillas aburridas
jeje! (creo yo q lo son
) y talves luego le cuentes a alguien... Salu2
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Detectar Dispositivos
«
Respuesta #6 en:
Miércoles 10 de Noviembre de 2004, 20:01 »
0
Hola.
Sobre lo que comentas de manipular el registro es algo que hago mediante funciones del api. Si necesitas info tal vez te pueda ayudar...
En lo que respecta a sacrificar a los lectores... precisamente la gracia de estos foros es que cualquiera con un problema similar pueda seguir el desarrollo del tema hasta el final y así sacar su propio provecho, y que las aportaciones vengan desde cualquiera de los forer@s.
Por otro lado tampoco me quiero comprometer en exceso con problemas particulares, ya que luego tal vez no pueda (o no me apetezca, o no sepa) dar el soporte al asunto que me gustaría que a mi me dieran... de todas formas mi intención es ayudar (dentro de unos límites, claro, porque al fin y al cabo yo no vivo de esto).
Suerte, chao.
scorpion25acv
Miembro activo
Mensajes: 30
Re: Detectar Dispositivos
«
Respuesta #7 en:
Sábado 13 de Noviembre de 2004, 04:58 »
0
Hola, nuevamente
y si vamos por puntos... jeje
En cuanto a las funciones con API´s, bienvenida sean, ejemplos, etc, etc, xq del asunto no conosco mucho, ...
por otra parte la deteccion de dispositivos (que a este caso atañen los Modem's) es xq realizo un sistema que ademas de los procesos "comunes" que realiza (calculos, mantenimientos, seguridad, etc) tambien realiza un proceso de conexion remota por llamarlo asi, donde implementando recordset's desconectados, trato de enviar informacion a otra maquina, usado desde luego las lineas telefonicas, y el MSComm, de momento se utilizará en 12 maquinas aproximadamente, pero no se que tanto pueda crecer esta cantidad, ni los sistemas operativos venideros para las mismas , por eso nace la importancia de detectar el puerto donde se ubica el modem , para poder realizar la conexion, reitero los usuarios no intervienen en la eleccion del puerto, como dice el prof del curso "les cuesta la tabla del 0", y esta accion de asignar el puerto en la propiedad CommPort debo acerla internamente.
Me interesa conocer mas de la herramienta, tambien, ya que el sistema lo estoy realizando para poder graduarme (con grado de diplomado, es mi proyecto de graduacion), y como todos o como se da casi siempre corro contra factores Tiempo.
detalles adicionales: Base datos Access,
[guardada con contraseña, accesada por ODBC, con semi-procedimientos almacenados (como yo los llamo), con macros ] crystal report 8, para generacion de reportes (no los he terminado aún), algunos Skins (vbSkinner free, activeSkin 4)...
Salu2 a todos los forer@s, agradeciendo de antemano y quedo esperando respuestas
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Detectar Dispositivos