Comment activer et désactiver rapidement Aero dans Windows 7?

8

Je partage beaucoup mon écran avec des collègues. Pendant le partage, il est conseillé de désactiver Aero car il génère beaucoup plus de graphiques à envoyer sur le fil et entraîne des retards dans le partage d'écran. Certaines applications de partage d'écran le font pour vous, et d'autres non.

Je cherche un moyen rapide et pratique d'activer / désactiver Aero sur Windows 7. En fin de compte, si je pouvais le lier à un raccourci clavier, ce serait mieux, mais n'importe quel widget / icône de plateau ou raccourci de bureau ferait l'affaire.

Jonathan
la source
Quel logiciel utilisez-vous qui ne fait pas cela POUR VOUS lorsque vous activez le partage d'écran? : / Je ne peux penser à aucun grand public qui ne le supporte pas maintenant.
Shinrai

Réponses:

10

Créez un fichier de commandes avec le contenu suivant:

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

:sc_start
sc start uxsms
exit

L'exécuter activera ou désactivera Aero alternativement. Vous pouvez le placer où bon vous semble. AFAIK, il n'a pas besoin d'être exécuté en tant qu'administrateur.

molgar
la source
1
Cela semble nécessiter le mode administrateur sur Windows 7. Quoi qu'il en soit, c'est excellent.
Frank V
3

Tu peux essayer:

c:\> sc stop uxsms

c:\> sc start uxsms
enlavine
la source
0

Arrêtez, ce service est trop. Je recommande fortement d'utiliser l'API native Windows.

Un exemple de code dans 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"
    }
}
Nicolas
la source