Saltar al contenido

Motivo de la advertencia: PowerShell detectó que podría estar usando un lector de pantalla y ha deshabilitado PSReadLine por motivos de compatibilidad

Ya no busques más por todo internet ya que estás al lugar exacto, contamos con la solución que buscas sin problemas.

Solución:

Solución 1:

Establecer el siguiente registro key:

Windows Registry 
ComputerHKEY_CURRENT_USERControl PanelAccessibilityBlind AccessOn

valorar 0 y reiniciar

Descubrí esta solución alternativa a través del problema mencionado por @Znatz.

Fuente

Solución 2:

Hay una solución para este error.

Problema de Powershell n.º 11751

Cree un archivo .ps1, pegue el siguiente código y ejecútelo con powershell.

Add-Type -TypeDefinition '
using System;
using System.ComponentModel;
using System.Runtime.InteropServices;

public static class ScreenReaderFixUtil

    public static bool IsScreenReaderActive()
    
        var ptr = IntPtr.Zero;
        try
        
            ptr = Marshal.AllocHGlobal(sizeof(int));
            int hr = Interop.SystemParametersInfo(
                Interop.SPI_GETSCREENREADER,
                sizeof(int),
                ptr,
                0);

            if (hr == 0)
            
                throw new Win32Exception(Marshal.GetLastWin32Error());
            

            return Marshal.ReadInt32(ptr) != 0;
        
        finally
        
            if (ptr != IntPtr.Zero)
            
                Marshal.FreeHGlobal(ptr);
            
        
    

    public static void SetScreenReaderActiveStatus(bool isActive)
    
        int hr = Interop.SystemParametersInfo(
            Interop.SPI_SETSCREENREADER,
            isActive ? 1u : 0u,
            IntPtr.Zero,
            Interop.SPIF_SENDCHANGE);

        if (hr == 0)
        
            throw new Win32Exception(Marshal.GetLastWin32Error());
        
    

    private static class Interop
    
        public const int SPIF_SENDCHANGE = 0x0002;

        public const int SPI_GETSCREENREADER = 0x0046;

        public const int SPI_SETSCREENREADER = 0x0047;

        [DllImport("user32", SetLastError = true, CharSet = CharSet.Unicode)]
        public static extern int SystemParametersInfo(
            uint uiAction,
            uint uiParam,
            IntPtr pvParam,
            uint fWinIni);
    
'

if ([ScreenReaderFixUtil]::IsScreenReaderActive()) 
    [ScreenReaderFixUtil]::SetScreenReaderActiveStatus($false)

Aquí tienes las comentarios y puntuaciones

Si posees alguna suspicacia y capacidad de beneficiar nuestro post puedes dejar una acotación y con mucho gusto lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *