- Details
- Hits: 3947
Esta solución está probada en Windows 10 PRO a fecha 10/05/2020
Para poder restablecer el comportamiento esperado de javaw.exe y conseguir que al hacer doble click sobre un archivo .jar se abra y ejecute el programa de java en un entorno con ventanas, tienes que seguir estos pasos:
Elimina la siguiente rama del registro de windows con Regedit:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jar
Ejecuta desde una consola con permisos de administrador:
assoc .jar=jarfile
ftype jarfile="C:\program files\java\jre1.8.0_251\bin\javaw.exe" -jar "%1" %*
(cambia la ruta a javaw.exe por la que tengas en tu ordenador)
La rama del registro de windows HKEY_CLASSES_ROOT\.jar tiene que tener lo siguiente:
Predeterminado REG_SZ jarfile
La rama del registro de windows HKEY_CLASSES_ROOT\jarfile tiene que tener:
shell
open
command
Predeterminado REG_EXPAND_SZ "C:\program files\java\jre1.8.0_251\bin\javaw.exe" -jar "%1" %*
Por último debes activar las variables de estado de Windows referentes a Java:
Doble click en el icono "Este Equipo" en el escritorio, se abre la ventana y en la opción de la izquierda: Configuración Avanzada del Sistema, se abrirá la ventana Propiedades del Sistema, nos vamos a la solapa Opciones avanzadas, pulsamos el botón de abajo: Variables de entorno.
Tenemos que añadir o modificar las siguientes "Variables del Sistema":
JAVA_HOME=C:\program files\java\jre1.8.0_251
Pulsamos Editar en la variable PATH y añadimos C:\program files\java\jre1.8.0_251
Recuerda cambiar la ruta de Java por la tuya en todos los casos.
Para descargar Java hay que seguir este enlace:
https://www.java.com/es/download/win10.jsp
Hay veces que necesitamos una versión má avanzada de Java porque al ejecutar algún script se nos dice que no tenemos una versión para un runtime determinado. En ese caso recomiendo esta versión de JRE de Java de software libre y multiplataforma:
https://adoptopenjdk.net/?variant=openjdk14&jvmVariant=hotspot
Si se instala esta versión, debes saber que no hay problema para que conviva junto con la versión oficial de Java de Oracle. Lo que sí es importante es que las variables de estado apunten a la versión que quieres ejecutar en cada momento. No olvides revisar el acceso directo que se encuentra aquí en esta ruta:
C:\Program Files (x86)\Common Files\Oracle\Java
Ahí encontrarás un acceso directo que se llama javapath y es el que tienes que rehacer si quieres que apunte a otra versión de Java que tengas instalado en tu sistema.
- Details
- Hits: 19316
Con la última actualización de Windows me dejó de funcionar mi receptor inalámbrico de los mandos y volante de la XBOX 360 que tengo conectados a mi PC.
Os voy a contar cómo lo solucioné.
El problema viene de que los controladores que no vengan firmados por una entidad reconocida no se pueden instalar en Windows 10. Directamente no dejan. Pero... todo es configurable, a veces con un click y otras veces el proceso es más largo, pero se puede.
Para instalar los drivers del receptor me fui a la web de Microsoft para descargarlos:
https://www.microsoft.com/accessories/es-es/d/xbox-360-wireless-controller-for-windows
(Actualizado) Descarga la última versión disponible desde mi web
Desconecté el receptor del puerto USB y luego instalé el ejecutable de los drivers.
En la carpeta donde se instaló: C:\Program Files\Microsoft Xbox 360 Accessories
Modifiqué el siguiente archivo: Xusb21.inf
(esto de modificar el archivo no es necesario si se ha descargado el driver desde mi web)
Y cambié cada vez que aparecía la siguiente línea:
%XUSB21.DeviceName%=CC_Install, USB\Vid_045E&Pid_0719
Por esta otra:
%XUSB21.DeviceName%=CC_Install, USB\Vid_045E&Pid_0291
Quité la que estaba en su lugar que era igual pero acababa en otros 4 números que no correspondían con los de mi receptor. En la siguiente captura puedes ver que mi receptor tiene un identificador PID_0291, pues ese es el número que tienes que cambiar en el fichero Xusb21.inf para que Windows reconozca tu receptor correctamente. Mira el número del tuyo por si varía y pon el que te salga a ti en esa ventana.
Ojo porque para modificar este archivo necesitas permisos de administrador. Abre el editor de texto (el bloc de notas, el notepad++ o el que uses) en modo administrador antes de empezar a editar para poder grabarlo luego.
Cuando lo tengas grabado, tienes que reiniciar Windows pero utilizando el modo especial que permita instalar controladores no firmados.
En Windows 10: Configuración / Recuperación / Inicio Avanzado / Reiniciar ahora
En Windows 11: Configuración / Windows Update / Opciones Avanzadas / Recuperación / Inicio Avanzado - Botón Reiniciar ahora
Le damos a Solucionar problemas:
Elegimos Configuración de inicio:
Elegimos la opción 7) Deshabilitar el uso obligatorio de controladores firmados
Ahora ya podemos instalar el driver que modificamos.
Cuando arranque Windows enchufamos el receptor USB que no nos funciona y que por ahora sigue sin reconocernos Windows.
Nos vamos al administrador de dispositivos y actualizamos el controlador que no nos funciona (nos saldrá como dispositivo desconocido). Damos con el botón derecho sobre el dispositivo, seleccionamos Propiedades, solapa Controlador y pulsamos el botón Actualizar controlador. Pulsamos en Examinar mi PC en busca de controladores y en la ruta de búsqueda ponemos o buscamos la carpeta C:\Program Files\Microsoft Xbox 360 Accessories que es donde está el driver instalado (si lo tienes en otro sitio pon ese otro sitio). El caso es que lo buscamos en la carpeta en la que modificamos el archivo Xusb21.inf que modificamos en uno de los pasos anteriores.
De la lista que nos muestra elegimos el Receptor que corresponda a nuestro aparato. En mi caso: Xbox 360 Wireless Receiver for Windows
Cuando se vaya a instalar nos saldrá una ventana en rojo avisando del peligro de instalar controladores no firmados. Le damos que sí queremos instalarlo, que para eso lo hemos modificado nosotros.
Cuando esté instalado ya podremos utilizar nuestro receptor.
- Details
- Hits: 5200
Para ejecutar la herramienta System Update Readiness, sigue estos pasos:
- Escribe cmd en el cuadro de búsqueda.
- En la lista de resultados, haz clic con el botón derecho del ratón en Símbolo del sistema y, a continuación, haz clic en Ejecutar como administrador.
- En la ventana del símbolo del sistema, escribe los comandos siguientes exactamente como aparecen. Pulsa la tecla ENTER después de cada comando:
- DISM.exe /Online /Cleanup-image /Scanhealth
- DISM.exe /Online /Cleanup-image /Restorehealth
- net stop cryptSvc
- net stop bits
- net stop msiserver
- net stop AppIDSvc
- ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
- ren C:\Windows\System32\Catroot2 Catroot2.old
- net start cryptSvc
- net start bits net
- start msiserver
- net start AppIDSvc
- ICACLS C:\Windows\winsxs
- wuauclt.exe /updatenow
- Importante: Si los dos primeros comandos no funcionaran al ejecutarlos, sigue con los demás pasos y cuando llegues al paso 14, REINICIA el equipo. Luego al volver al escritorio, ejecuta los dos primeros pasos que no funcionaron.
- Para cerrar el símbolo del sistema escribe Exit y pulsa ENTER.
- Descargar de la siguiente web el reparador de Microsoft para Windows Update
- https://aka.ms/diag_wu
- Ejecuta Windows Update de nuevo.
- En el caso raro e hipotético de que siguiera sin funcionar ejecuta SFC /scannow desde una consola de Símbolo del Sistema para ver qué archivos están estropeados y repararlos.
Tengo un artículo con un script que realiza todo esto por nosotros y a lo mejor te resulta más sencillo que hacerlo paso a paso.
Lo puedes leer aquí:
https://www.rafaelsantos.es/web/informatica/windows/66-reparar-windows-update-y-mucho-mas
- Details
- Hits: 40407
Si has querido realizar una tarea programada con Windows 10 te habrás dado cuenta de que MicroSoft da por obsoletas las opciones de enviar un email o mostrar un mensaje.
Es evidente que lo hacen para potenciar el uso de PowerShell y de este modo incrementar su difusión. Así es que nosotros vamos a hacer un Script de PowerShell para enviar un email desde la consola y luego vamos a crear una tarea programada que lo ejecute.
El Script puede ser por ejemplo así:
$EmailPropio = "This email address is being protected from spambots. You need JavaScript enabled to view it.";
$EmailDestino = "This email address is being protected from spambots. You need JavaScript enabled to view it.";
$Asunto = "El asunto del email"
$Mensaje = "El cuerpo del mensaje"
$ServidorSMTP = "smtp.gmail.com"
$ClienteSMTP = New-Object Net.Mail.SmtpClient($ServidorSMTP, 587)
$ClienteSMTP.EnableSsl = $true
$ClienteSMTP.Credentials = New-Object System.Net.NetworkCredential("usuario", "contraseña");
$ClienteSMTP.Send($EmailPropio, $EmailDestino, $Asunto, $Mensaje)
Solo habría que personalizar las diferentes variables con los valores que te correspondan prestando especial atención al "usuario" y "contraseña" (ojo que las credenciales van todas en una sola línea)
Una vez personalizado el Script lo tenemos que guardar en un archivo con extensión .ps1 en una carpeta accesible, con permisos suficientes al menos a nuestro usuario o al que vaya ejecutar la tarea.
Luego desde el programador de tareas seleccionamos como acción a realizar "Iniciar un programa" y en el siguiente paso escribimos lo siguiente:
powershell -file "C:\rutadelscript\nombredelscript.ps1"
Y al darle a siguiente luego pulsamos Sí:
Con esto ya tendremos la tarea que envía emails. Asóciala a un evento, a un horario, a un inicio de sesión... a lo que necesites y desde ese momento tu ordenador te avisará por email de lo que suceda.
NOTA: Para asegurarnos que GMAIL envía los mensajes correctamente tenemos que habilitar el uso de "aplicaciones menos seguras" en la configuración de la cuenta de Google. Ayuda de Google.
Para Windows 2008
Para que se ejecuten los scripts de PowerShell en Windows 2008 hay que activarlos con el siguiente comando escrito en la consola de PowerShell: Set-ExecutionPolicy Unrestricted
Para ejecutar los scripts en PowerShell con una tarea programada hay que hacerlo sin el parámetro -file que se usa para Windows 10, de modo que quedaría así: powershell "rutadelscript\script.ps1"
Adjuntar un archivo al email
Si lo que queremos es enviar un email y adjuntar un archivo al mismo tiempo, el código fuente anterior hay que modificarlo un poco y dejarlo así:
$EmailPropio = "This email address is being protected from spambots. You need JavaScript enabled to view it.";
$EmailDestino = "This email address is being protected from spambots. You need JavaScript enabled to view it.";
$Asunto = "El asunto del email"
$Texto = "El cuerpo del mensaje"
$ServidorSMTP = "smtp.gmail.com"
$Archivo = "c:\carpeta\archivo.txt"
$Mensaje = New-Object System.Net.Mail.MailMessage
$Mensaje.From = $EmailPropio
$Mensaje.To.Add($EmailDestino)
$Mensaje.IsBodyHtml = $True
$Mensaje.Subject = $Asunto
$Mensaje.Body = $Texto
$Adjunto = New-Object Net.Mail.Attachment($Archivo)
$Mensaje.Attachments.Add($Adjunto)
$ClienteSMTP = New-Object Net.Mail.SmtpClient($ServidorSMTP, 587)
$ClienteSMTP.EnableSsl = $true
$ClienteSMTP.Credentials = New-Object System.Net.NetworkCredential("usuario", "contraseña");
$ClienteSMTP.Send($Mensaje)
No olvidar que hay que modificar los valores entre comillas por los correspondientes a cada caso particular.
Page 5 of 16