Bagaimana cara cepat mengaktifkan dan menonaktifkan Aero di Windows 7?

8

Saya banyak berbagi layar dengan rekan kerja. Selama berbagi, disarankan untuk mematikan Aero karena Aero menghasilkan lebih banyak gambar untuk dikirim melalui kabel dan menyebabkan keterlambatan berbagi layar. Beberapa aplikasi berbagi layar sebenarnya melakukan ini untuk Anda, dan beberapa tidak.

Saya mencari cara cepat dan mudah untuk mengaktifkan / menonaktifkan Aero di Windows 7. Pada akhirnya, jika saya bisa mengikatnya ke hotkey, itu yang terbaik, tetapi widget / tray-ikon atau pintasan desktop akan melakukannya.

Jonathan
sumber
Perangkat lunak apa yang Anda gunakan yang tidak melakukan ini UNTUK ANDA ketika Anda mengaktifkan berbagi layar? : / Saya tidak bisa memikirkan yang mainstream yang tidak mendukungnya sekarang.
Shinrai

Jawaban:

10

Buat file batch dengan konten berikut:

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

:sc_start
sc start uxsms
exit

Menjalankannya sebagai alternatif akan menghidupkan dan mematikan Aero. Anda dapat menempatkannya di mana saja Anda suka. AFAIK tidak perlu dieksekusi sebagai Admin.

molgar
sumber
1
Ini sepertinya memerlukan mode admin di windows 7. Bagaimanapun, ini sangat bagus.
Frank V
3

Anda dapat mencoba:

c:\> sc stop uxsms

c:\> sc start uxsms
enlavin
sumber
0

Berhenti, layanan ini terlalu banyak. Saya sangat menyarankan agar kami menggunakan API Windows asli.

Contoh kode di 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
sumber