Banner publicitario de PCBWay

¿Se puede activar/desactivar un controlador como un interruptor?

Yo ya estuve antes con el módulo transmisor de FM. Pero, esta vez, es por otra cosa.
Resulta que cada vez que lo enchufo a la terminal USB se activa el módulo pero se desactiva el audio en los parlantes de la PC. Entonces, para no estar a cada rato enchufando y desenchufando el aparatito, pensé que se podría de alguna forma tener un "interruptor" para activarlo y desactivarlo.
¿No pasa nada? ¿Es completamente seguro?
1773671620459.png
 
Se puede hacer? .- Sí
Cortamos pistas para lograrlo? .- Es posible
Hay una mejor manera? .- Sí

Como?:
En mi caso uso el método de "desaparecer" el dispositivo con un script ya sea de consola o Powershell.
Lo uso para desaparecer unidades de almacenamiento ya sean IDE, SATA ó USB que mas tarde hago "aparecer" de acuerdo a intereses.
El término "desaparecer" es literal, no es que lo ves en el administrador de dispositivos como desactivado o cosa por el estilo, ni siquiera aparece allí.
Vá un ejemplo que uso YO para poteger las unidades de backup, para que se entienda mejor:

1) Obtengo un ID de hardware que corresponde al dispositivo objeto (recordar que estoy trabajando sobre unidades de almacenamiento) lo mismo se aplica para CUALQUIER dispositivo apuntando a su class y a las condiciones particulares de la clase e intereses.

pnputil /enum-devices /connected /class diskdrive /deviceids | Find /i "Id. de hardware"
Traducción human entendible:
Llamo al instalador de "devices" PNPUtil y que me enumere la clase diskdrive pero las que estén conectadas** con sus ID de dispositivo a continuación hago una búsqueda (Find) de la fila de interés de lo que voy a "desaparecer", así como está, prueben a usarlo en sus equipos sin miedo:
1773710272278.png
El string útil es el que aparece desde SCSI.... hasta el final, creo recordar que se puede recortar esa fila larrrrrga desde el principo y sigue funcionando, prueben, en algun lugar deja de funcionar, cortar la cabeza se dejaba pero nó la cola......................

2)Con el ID de hardware en la mano lo desaparecemos como se vé a continuación :
pnputil /remove-device /deviceid "SCSI\DiskNVMe___________________Samsung_SSD_960_EVO_250GB3B7QCXE7"
Explicación del script:
Llamamos al instalador de "devices" para remover el siguiente ID de dispositivo 💁‍♂️

SI queremos "recuperar" el/los dispositivo/s sin necesidad de re-iniciar el equipo:
pnputil /scan-devices

Para unidades USB:
pnputil /enum-devices /connected | findstr /i "USBSTOR"

Notas:
** Se hace referencia a unidades ACTUALMENTE conectadas (/connected) debido a que /enum-devices recupera también las que alguna vez estuvieron conectadas, dependiendo de algunos factores, ciertos pendrives los enumera como discos y si ALGUNA vez estuvieron conectados te los listaría.
Si por ejemplo fuera un Arduino o un ESP-32 también puedes hacerlo, se anuncian como puerto COM y debes trabajar sobre ese ID de hardware.
No he probado con otros "Devices" debido a mi fidelidad inquebrantable con pereza de la mejor cepa.
Si Find no arrojara resultados es debido al idioma en "inglish" el string: "ID. de hardware" se translitera: "Hardware ID" o lo que corresponda.......

Nota II:
Para el amigo Guerropa, una vez que le encuentres la vuelta a "desaparecerlo/aparecerlo" metes en el programador de tareas en: antes del inicio del sistema el string "desaparecedor" y ya con el "Windors" iniciado, si quieres activar el aparatejo ese, solo ejecutas en consola:
pnputil /scan-devices
Y San se acabó 🤷‍♂️
 
Última edición:
Seguro que en windows se puede elegir por donde quieres que salga el audio desde el panel de control o algún sito así.
Windows lo uso lo mínimo, pero en linux eso se puede hacer sin scripts ni nada, desde el entorno gráfico en configuración.
 
Hola, Ferdinando. Acabo de hacer el 1er. paso. Y me salió esto... O sea, no hizo nada.
Elimina del comando, la cola, sería esto a borrar: | Find /i "Id. de hardware"
Prueba de nuevo y nos informas, abajo te repito el porqué no arrojaría nada
Si Find no arrojara resultados es debido al idioma en "inglish" el string: "ID. de hardware" se translitera: "Hardware ID" o lo que corresponda.......
Traducido a cagastellano básico, MUY POSIBLEMENTE no te sale nada debido a que en tu sistema operativo el idioma de Win está en un juego de caracteres distinto a español aunque esté en idioma español 🤷‍♂️
Te faltó aclarar que estás usando un viejo Windows 7 y encima con el service Pack 1 (ni siquiera el SP2) y a mí me faltó aclarar que las pruebas las hago en Win11 aunque está visible en mi captura de pantalla la versión en la que se ejecutaron mis comandos


Encontré el ID del dispositivo a través del "Administrador de Dispositivos". ¿Cuál tengo que elegir?
El ID "completo" de TU hardware es el primero pero puedes dejar fuera: &REV_0100 ya que esto dice que es una versión /revisión específica de la parte anterior a ésta, o sea: USB\VID_4C4A&PID_4155

VID_4C4A identifica al fabricante, en este caso sería: Jieli Technology
PID_4155 identifica el Product ID que en ESTE fabricante correspondería a: dispositivos de audio USB/headsets

Hay otra consideración importante, DEBES encontrar los "devices" primero, como es este caso nos importa solo "lo USB" deberías correr el siguiente comando en consola:

Código:
pnputil /enum-devices /connected | findstr /i usb

Este comando va a devolver las "cosas" USB así que debes tener el dispositivo conectado
Atención al: /connected, eso debe ir para que no te tire una parafernalia de cosas que alguna vez estuvieron conectados, igual tira mucha info y hay que buscar el que identifica a ese hardware objetivo.
Pero, pero, pero, pero... creo, creo, creo, que estos parámetros no estaban presentes en Windows 7 🤷‍♂️
Suerte con eso, te va a tocar jugar con lo que había disponible en PNPUtil.exe de W7 para lograr un /remove

Vá el comando tentativo para que pruebes de una sin complicarte, si te funciona, me debes una cervecita.

Código:
pnputil /remove-device /deviceid "USB\VID_4C4A&PID_4155"

SI no funciona, estás frito y yo me perdí la cervecita.....
Eso te pasa por utilizar versiones viejas :cry:
Seguro que en windows se puede elegir por donde quieres que salga el audio desde el panel de control
Así es, pero el objetivo aquí era lograrlo de la manera fácil o eso creí entender.....
 
Lo conozco y me dá sanísima envidia pero como alimento familia y el dinero está en Win 💁‍♂️ nunca me hice/tuve el suficiente tiempo ni entusiasmo como para aprenderlo bien, solo coqueteo con LMint, tuve una temporada que estaba muy psicodélico y me puse con los RTOs (fiebres de loca juventud) en algún momento quise pasar a algunas clínicas a Linux y estuve estudiando seriamente el tema pero lo que me tiró hacia atrás fué la resistencia del usuario, les das un vaso para que hagan un cero y lo acuestan.... 🙏
Hace como 6 años que no visito un solo cliente, hago ABSOLUTAMENTE todo remoto tanto a las empresas con abono como a particulares, y como ya peino canas, poco pelo, caspa, sabañones y mañas de viejito, no me va a molestar pasar otro tiempo sin sus bondades, pero juro que lo observo con amor inconfesable.......🙏🙏
 
No te surge un fuerte amor por el comando "grep" que no existe en Windows???
La verdad que no tengo ni idea de lo que es.
Elimina del comando, la cola, sería esto a borrar: | Find /i "Id. de hardware"
Prueba de nuevo y nos informas, abajo te repito el porqué no arrojaría nada

Traducido a cagastellano básico, MUY POSIBLEMENTE no te sale nada debido a que en tu sistema operativo el idioma de Win está en un juego de caracteres distinto a español aunque esté en idioma español 🤷‍♂️
Ya lo hice. Y me da esto... (No se ensancha más que eso)
 

Adjuntos

  • cmd II.PNG
    cmd II.PNG
    42.8 KB · Visitas: 7
Última edición:
No hace falta ningún script ni nada. Debes elegir el dispositivo predeterminado de salida de audio desde Windows. No recuerdo cómo era en Windows 7 pero seguro que se puede hacer porque lo hacía hace muchos años. En W10 es desde la barra de tareas asique por ahí podés empezar.
Se puede hacer? .- Sí
Cortamos pistas para lograrlo? .- Es posible
Hay una mejor manera? .- Sí

Como?:
En mi caso uso el método de "desaparecer" el dispositivo con un script ya sea de consola o Powershell.
Lo uso para desaparecer unidades de almacenamiento ya sean IDE, SATA ó USB que mas tarde hago "aparecer" de acuerdo a intereses.
El término "desaparecer" es literal, no es que lo ves en el administrador de dispositivos como desactivado o cosa por el estilo, ni siquiera aparece allí.
Vá un ejemplo que uso YO para poteger las unidades de backup, para que se entienda mejor:

1) Obtengo un ID de hardware que corresponde al dispositivo objeto (recordar que estoy trabajando sobre unidades de almacenamiento) lo mismo se aplica para CUALQUIER dispositivo apuntando a su class y a las condiciones particulares de la clase e intereses.


Traducción human entendible:
Llamo al instalador de "devices" PNPUtil y que me enumere la clase diskdrive pero las que estén conectadas** con sus ID de dispositivo a continuación hago una búsqueda (Find) de la fila de interés de lo que voy a "desaparecer", así como está, prueben a usarlo en sus equipos sin miedo:
Ver el archivo adjunto 337293
El string útil es el que aparece desde SCSI.... hasta el final, creo recordar que se puede recortar esa fila larrrrrga desde el principo y sigue funcionando, prueben, en algun lugar deja de funcionar, cortar la cabeza se dejaba pero nó la cola......................

2)Con el ID de hardware en la mano lo desaparecemos como se vé a continuación :

Explicación del script:
Llamamos al instalador de "devices" para remover el siguiente ID de dispositivo 💁‍♂️

SI queremos "recuperar" el/los dispositivo/s sin necesidad de re-iniciar el equipo:


Para unidades USB:


Notas:
** Se hace referencia a unidades ACTUALMENTE conectadas (/connected) debido a que /enum-devices recupera también las que alguna vez estuvieron conectadas, dependiendo de algunos factores, ciertos pendrives los enumera como discos y si ALGUNA vez estuvieron conectados te los listaría.
Si por ejemplo fuera un Arduino o un ESP-32 también puedes hacerlo, se anuncian como puerto COM y debes trabajar sobre ese ID de hardware.
No he probado con otros "Devices" debido a mi fidelidad inquebrantable con pereza de la mejor cepa.
Si Find no arrojara resultados es debido al idioma en "inglish" el string: "ID. de hardware" se translitera: "Hardware ID" o lo que corresponda.......

Nota II:
Para el amigo Guerropa, una vez que le encuentres la vuelta a "desaparecerlo/aparecerlo" metes en el programador de tareas en: antes del inicio del sistema el string "desaparecedor" y ya con el "Windors" iniciado, si quieres activar el aparatejo ese, solo ejecutas en consola:

Y San se acabó 🤷‍♂️
Yo hago lo mismo pero manualmente desde el administrador de dispositivos, click derecho "desinstalar" y no aparece más, si quiero que vuelva la unidad click derecho "buscar cambios de hardware" y vuelve a aparecer y se instala sola. Cómo generalmente hago hackup de una unidad a la vez no tengo problemas con ese método. No soy un experto asique me ha servido esa forma desde w7. Además que la placa madre tiene o se lleva bien con el hotswap de unidades ide y sata.

Repito, no soy un experto en programación por eso uso las herramientas que ya trae Windows.
 
Última edición:
Creo que se perdió un poco de vista la consigna (releer).
Hacer se puede hacer de muchas maneras posibles, el tema es que hay que comprender que acciones tales como "buscar cambios de hardware" lo que hace el sistema operativo en realidad es ejecutar PNPUtil.exe /rescan-devices (PNPUtil.exe es de windows y es el encargado de instalar/desinstalar)
Cuando desinstalamos desde el administrador de dispositivos, lo que se hace, realmente, es pasar el dispositivo sobre el que estamos parados a PNPUtil.exe con el parámetro /remove-device.
Fry, estamos hablando exactamente de lo mismo, la diferencia estriba en saber que exste PNPUtil.exe 💁‍♂️.
Dependiendo de los fines perseguidos hay que usar la estrategia que nos convenga.

Ejemplo: para proteger a mis clientes del ramsonware, no mido fuerzas, no me enfrento contra él, simplemente salgo del radar, si no me vé no me daña 💁‍♂️
Es un poco mas complejo pero para ilustrar cumple.

Sigamos con el tema.....
Se necesita un script? .-Nó
Pero es mejor un script? .-Sí

Hay un detalle más, dependiendo el parámetro que se use para eliminar, en el próximo boot lo instala de nuevo, ó en su defecto si le das a "buscar cambios de hardware" en cambio si lo deshabilitas (parámetro persistente) no se activa hasta que lo actives expresamente y depende de como lo elimines se elimina de los dispositivos "atachados" a su driver correspondiente que tiene otras implicancias ya que en el próximo boot estaría reconociendo hardware nuevo y teniendo que ir a "su biblioteca" de drivers a buscar el correspondiente driver para que el señor PNPUtil.exe lo instale de nuevo 💁‍♂️
Hay que agregar que en el caso tratado, a pedido del amigo Gueroppa, se podría usar perfectamente lo propuesto por DJ T3 que es totalmente válido.
También he concluido, basado en evidencia, que Windows es muy temperamental con esos manejos dependiendo de la "class" de dispositivo, llevando la peor reputación todo lo USB.
Debo aceptar que podemos hacerlo de las peores maneras posibles, que nada nos impida hacerlo peor.
Te dejo todo lo manual para vos que usas un viejo y muy querido sistema operativo yo me quedo con comandos que no llegan a un renglon.
No soy programador, solo soy curioso y le meto muchas horas qLo a "descular" como hacer mas fácil las cosas pero de puro vago que soy.
Tengo un dicho 100% mío, para no trabajar, primero hay que trabajar como un burro, una vez que terminaste con la tarea te hechas a descansar .
Para que las unidades IDE/SATA "soporten" Hot Swap hay que configurarlo en el BIOS, pero, pero, pero, pero......les dá tratamiento de Pendrive, uso ese truco bastante seguido en mi mesa de destripador y francamente no sé que es lo que cambia pero la palabreja USB me cae un poco indigesta y no pienso perder tiempo en averiguar que hace existiendo/teniendo mejores opciones, solo cuando me dá fiebre de andar haciendo experimentos......

Concluyendo:
Creo haber interpretado correctamente la consigna del amigo Gueroppa con un procedimiento idóneo pero que por limitaciones de su versión de sistema operativo no le sirven, no se me ocurrió revisar que versión de sistema operativo estaba usando al no informarlo él de entrada.
 
Última edición:
Creo que se perdió un poco de vista la consigna (releer).
Hacer se puede hacer de muchas maneras posibles, el tema es que hay que comprender que acciones tales como "buscar cambios de hardware" lo que hace el sistema operativo en realidad es ejecutar PNPUtil.exe /rescan-devices (PNPUtil.exe es de windows y es el encargado de instalar/desinstalar)
Cuando desinstalamos desde el administrador de dispositivos, lo que se hace, realmente, es pasar el dispositivo sobre el que estamos parados a PNPUtil.exe con el parámetro /remove-device.
Fry, estamos hablando exactamente de lo mismo, la diferencia estriba en saber que exste PNPUtil.exe 💁‍♂️.
Dependiendo de los fines perseguidos hay que usar la estrategia que nos convenga.

Ejemplo: para proteger a mis clientes del ramsonware, no mido fuerzas, no me enfrento contra él, simplemente salgo del radar, si no me vé no me daña 💁‍♂️
Es un poco mas complejo pero para ilustrar cumple.

Sigamos con el tema.....
Se necesita un script? .-Nó
Pero es mejor un script? .-Sí

Hay un detalle más, dependiendo el parámetro que se use para eliminar, en el próximo boot lo instala de nuevo, ó en su defecto si le das a "buscar cambios de hardware" en cambio si lo deshabilitas (parámetro persistente) no se activa hasta que lo actives expresamente y depende de como lo elimines se elimina de los dispositivos "atachados" a su driver correspondiente que tiene otras implicancias ya que en el próximo boot estaría reconociendo hardware nuevo y teniendo que ir a "su biblioteca" de drivers a buscar el correspondiente driver para que el señor PNPUtil.exe lo instale de nuevo 💁‍♂️
Hay que agregar que en el caso tratado, a pedido del amigo Gueroppa, se podría usar perfectamente lo propuesto por DJ T3 que es totalmente válido.
También he concluido, basado en evidencia, que Windows es muy temperamental con esos manejos dependiendo de la "class" de dispositivo, llevando la peor reputación todo lo USB.
Debo aceptar que podemos hacerlo de las peores maneras posibles, que nada nos impida hacerlo peor.
Te dejo todo lo manual para vos que usas un viejo y muy querido sistema operativo yo me quedo con comandos que no llegan a un renglon.
No soy programador, solo soy curioso y le meto muchas horas qLo a "descular" como hacer mas fácil las cosas pero de puro vago que soy.
Tengo un dicho 100% mío, para no trabajar, primero hay que trabajar como un burro, una vez que terminaste con la tarea te hechas a descansar .
Para que las unidades IDE/SATA "soporten" Hot Swap hay que configurarlo en el BIOS, pero, pero, pero, pero......les dá tratamiento de Pendrive, uso ese truco bastante seguido en mi mesa de destripador y francamente no sé que es lo que cambia pero la palabreja USB me cae un poco indigesta y no pienso perder tiempo en averiguar que hace existiendo/teniendo mejores opciones, solo cuando me dá fiebre de andar haciendo experimentos......

Concluyendo:
Creo haber interpretado correctamente la consigna del amigo Gueroppa con un procedimiento idóneo pero que por limitaciones de su versión de sistema operativo no le sirven, no se me ocurrió revisar que versión de sistema operativo estaba usando al no informarlo él de entrada.
Ta bien.

Es que el SO que utiliza lo informó en el otro tema y lo había visto en la tarde.

@Gueroppa Voy a encender una de mis viejas AM3 que anda con gasoil y tiene W7 y te digo como elegir el dispositivo predeterminado de audio para que lo puedas hacer en tu PC, así tienes una opción más.


Alguno pensará, "porque no la virtualiza en otra máquina", no hay porque.
 
Atrás
Arriba