¡Hola a todos!
Espero que estén bien. Quisiera pedirles su ayuda con un problema que estoy enfrentando.
Estoy utilizando un programa de terceros que requiere el uso de la webcam del PC y lo estoy ejecutando desde Visual FoxPro.. Cada vez que ejecuto este programa, Windows muestra un cuadro de diálogo (como se muestra en la imagen adjunta) solicitando la selección del controlador de la webcam. ¿Existe alguna manera de integrar los nombres de los controladores disponibles en un ComboBox en mi formulario para que pueda seleccionar una opción de forma predeterminada durante el proceso? O, ¿hay alguna forma de registrar la opción seleccionada en un archivo init, de modo que cada vez que se inicie el programa, se seleccione automáticamente la opción previamente elegida? Estoy buscando una solución para evitar tener que seleccionar manualmente el controlador cada vez que ejecuto el programa.
Para proporcionar un contexto, he estado trabajando en un código que puede identificar los controladores disponibles para la webcam en mi sistema. Aquí está parte del código que he utilizado:
LOCAL lcMessage
lcMessage = ""
loWMI = Getobject("winmgmts:\\.\root\cimv2")
loDevices = loWMI.ExecQuery("SELECT * FROM Win32_PnPEntity WHERE Caption LIKE '%camera%'")
For Each loDevice In loDevices
If loDevice.Present
lcMessage = SPACE(40)+ "** The following drivers were found **" + Chr(13)
For Each loDevice In loDevices
If loDevice.Present
lcMessage = lcMessage + SPACE(20)+ "---------------------------------------------------------------------------------------" + Chr(13)
lcMessage = lcMessage + SPACE(5)+ "Name:................." + loDevice.Name + Chr(13)
lcMessage = lcMessage + SPACE(5)+ "Description:......." + loDevice.Description + Chr(13)
lcMessage = lcMessage + SPACE(5)+ "Device ID:..........." + loDevice.DeviceID + Chr(13)
lcMessage = lcMessage + SPACE(5)+ "PNP Device ID:.." + loDevice.PNPDeviceID + Chr(13)
lcMessage = lcMessage + SPACE(5)+ "Class:................." + loDevice.PNPClass + Chr(13)
lcMessage = lcMessage + SPACE(5)+ "Manufacturer:...." + loDevice.Manufacturer + Chr(13)
lcMessage = lcMessage + SPACE(5)+ "Service:.............." + loDevice.Service + Chr(13)
lcMessage = lcMessage + SPACE(5)+ "Present:............." + "Yes" + Chr(13) + Chr(13)
Endif
Endfor
Exit
Endif
Endfor
If Empty(lcMessage)
lcMessage = SPACE(30)+ "No driver detected, information not available...!" + Chr(13) + Chr(13)
lcMessage = lcMessage + SPACE(20)+ "---------------------------------------------------------------------------------------" + Chr(13)
lcMessage = lcMessage + SPACE(5)+ "Name:................."+ Chr(13)
lcMessage = lcMessage + SPACE(5)+ "Description:......." + Chr(13)
lcMessage = lcMessage + SPACE(5)+ "Device ID:..........." + Chr(13)
lcMessage = lcMessage + SPACE(5)+ "PNP Device ID:.." + Chr(13)
lcMessage = lcMessage + SPACE(5)+ "Class:................." + Chr(13)
lcMessage = lcMessage + SPACE(5)+ "Manufacturer:...." + Chr(13)
lcMessage = lcMessage + SPACE(5)+ "Service:.............." + Chr(13)
lcMessage = lcMessage + SPACE(5)+ "Present:............." + "No" + Chr(13) + Chr(13)
Else
Thisform.Edit1.Value = lcMessage
Endif

Agradecería mucho cualquier ayuda al respecto. ¡Gracias!