Как быстро включить и отключить Aero в Windows 7?

Я поделился своим экраном с коллегами. Во время совместного использования рекомендуется отключить Aero, поскольку он генерирует гораздо больше графики для отправки по кабелю и вызывает задержки при совместном использовании экрана. Некоторые приложения для совместного использования экрана действительно делают это для вас, а некоторые нет.

Я ищу быстрый и удобный способ включения / выключения Aero в Windows 7. В конечном счете, если бы я мог привязать его к горячей клавише, это было бы лучше, но любой значок виджета / лотка или ярлыка на рабочем столе.

Создайте командный файл со следующим содержимым:

@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 не нужно выполнять как Admin.

Можешь попробовать:

 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" } } 
Давайте будем гением компьютера.