Wie kann ich Aero in Windows 7 schnell aktivieren und deaktivieren?

8

Ich teile meinen Bildschirm viel mit Kollegen. Während der Freigabe ist es ratsam, Aero auszuschalten, da es viel mehr Grafiken generiert, die über das Kabel gesendet werden können, und Verzögerungen bei der Bildschirmfreigabe verursacht. Einige Bildschirmfreigabeanwendungen erledigen dies tatsächlich für Sie, andere nicht.

Ich suche nach einer schnellen und bequemen Möglichkeit, Aero unter Windows 7 ein- und auszuschalten. Wenn ich es an einen Hotkey binden könnte, wäre dies am besten, aber jedes Widget / Tray-Symbol oder jede Desktop-Verknüpfung würde es tun.

Jonathan
quelle
Welche Software verwenden Sie, die dies NICHT FÜR SIE tut, wenn Sie die Bildschirmfreigabe aktivieren? : / Ich kann mir keine Mainstreams vorstellen, die das noch nicht unterstützen.
Shinrai

Antworten:

10

Erstellen Sie eine Batchdatei mit folgendem Inhalt:

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

:sc_start
sc start uxsms
exit

Durch Ausführen wird Aero alternativ ein- und ausgeschaltet. Sie können es überall platzieren, wo Sie möchten. AFAIK muss nicht als Admin ausgeführt werden.

Molgar
quelle
1
Dies scheint unter Windows 7 den Admin-Modus zu erfordern. Unabhängig davon ist dies hervorragend.
Frank V
3

Du kannst es versuchen:

c:\> sc stop uxsms

c:\> sc start uxsms
Enlavin
quelle
0

Hör auf, dieser Service ist zu viel. Ich empfehle dringend, die native API Windows zu verwenden.

Ein Beispiel für Code in 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
quelle