Windows 7에서 Aero를 빠르게 활성화 및 비활성화하는 방법은 무엇입니까? 공유가 지연되므로

화면을 동료들과 많이 공유합니다. 공유하는 동안 훨씬 더 많은 그래픽을 생성하여 유선으로 전송하고 화면 공유가 지연되므로 Aero를 끄는 것이 좋습니다. 일부 화면 공유 응용 프로그램은 실제로이 작업을 수행하지만 일부는 그렇지 않습니다.

Windows 7에서 Aero를 켜고 끄는 빠르고 편리한 방법을 찾고 있습니다. 궁극적으로, 핫키에 연결할 수 있다면 가장 좋을 것입니다.



답변

다음 내용으로 배치 파일을 작성하십시오.

@echo off
sc interrogate uxsms | find "1062"
if %errorlevel%==0 goto :sc_start
sc stop uxsms
exit

:sc_start
sc start uxsms
exit

실행하면 Aero가 켜지거나 꺼집니다. 원하는 곳에 배치 할 수 있습니다. AFAIK 관리자로 실행할 필요가 없습니다.


답변

당신은 시도 할 수 있습니다:

c:\> sc stop uxsms

c:\> sc start uxsms


답변

그만해,이 서비스가 너무 많아 네이티브 API Windows를 사용하는 것이 좋습니다.

PowerShell의 코드 예 :

# Definition des fonctions natives Windows permettant le test d'activation d'Aero et l'activation ou non d'Aero
$def = @"

    [DllImport("dwmapi.dll", PreserveSig = false)]
    public static extern bool DwmIsCompositionEnabled();

    [DllImport("dwmapi.dll", PreserveSig=false)]
    public static extern int DwmEnableComposition(bool fEnable);

"@
# Chargement de la fonction native dans un namespace personnel
Add-Type -Namespace MaifCode -Name Aero -MemberDefinition $def


# Fonction qui check si Aero est desactive ou non
function Check-Is-Aero{
    [CmdletBinding()]
    param()
    Write-Verbose "[$([DateTime]::Now)] ==> Test de la presence du mode Aero pour la session utilisateur $env:USERNAME"
    if([MaifCode.Aero]::DwmIsCompositionEnabled()){
        Write-Verbose "[$([DateTime]::Now)] ==> Aero actif pour la session utilisateur $env:USERNAME"
        return $true
    }
    else{
        Write-Verbose "[$([DateTime]::Now)] ==> Aero inactif pour la session utilisateur $env:USERNAME"
        return $false
    }
}

# Fonction qui test si Aero est actif et le desactive dans ce cas
function Disable-Aero{
    [CmdletBinding()]
    param()
    # Test si aero actif
    If(Check-Is-Aero) {
        Write-Verbose "[$([DateTime]::Now)] ==> Tentative de desactivation du mode Aero pour la session utilisateur $env:USERNAME"
        # Desactivation du mode aero
        try{
            $resultat = [MaifCode.Aero]::DwmEnableComposition($false)
        }
        catch [exception]
        {
            # Si erreur alors on sort et on affiche le message d'erreur
            Write-Error "Erreur dans l'execution de la desactivation du mode Aero : $error"
            exit -1
        }
        Write-Verbose "[$([DateTime]::Now)] ==> Desactivation du mode Aero pour la session utilisateur $env:USERNAME terminee"
    }
    else{
        Write-Verbose "[$([DateTime]::Now)] ==> sortie du script sans action"
    }
}


답변