1

У моего ноутбука широкоформатный экран 14 ": довольно широкий, но не очень высокий. Я считаю, что наиболее удобно располагать панель задач Windows в левой части экрана, поскольку я могу сэкономить ширину, но не вертикальное пространство.

Однако, когда в офисе мой компьютер сидит в док-станции и подключен к хорошему большому квадратному экрану. Здесь я предпочитаю иметь панель задач в ее расположении по умолчанию, т.е. внизу.

Конечно, я знаю, как вручную переключаться между двумя положениями панели задач в Свойствах панели задач. Но я делаю это несколько раз в день, что довольно раздражает. У меня вопрос: можно ли автоматически менять расположение панели задач?

Например, при запуске (или выходе из спящего режима) запускается скрипт, который обнаруживает:

  • Форма экрана выше 4:3? (или любой другой номер)
  • Компьютер подключен к док-станции?

Если да, поместите панель задач внизу, иначе слева.

Кто-нибудь знает, как это сделать, или может поставить меня на правильный путь? Или уже есть утилита, которая может это сделать?

1 ответ1

0
HKEY_CURRENT_USER = &H80000001
Set WshShell = CreateObject("WScript.Shell")
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set ObjRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")

'Get curr. user name
Set colItems = objWMIService.ExecQuery("Select * From Win32_ComputerSystem")
For Each objItem in colItems
  strCurrentUserName = objItem.UserName
Next

Set colItems = objWMIService.ExecQuery("Select * from Win32_DesktopMonitor",,48)
For Each objItem in colItems
  intHorizontal = objItem.ScreenWidth
  intVertical = objItem.ScreenHeight 
Next 

bottom = Array(&H28,&H00,&H00,&H00,&Hff,&Hff,&Hff,&Hff,&H02,&H00,&H00,&H00,&H03,&H00,&H00,&H00,&H3e,&H00,&H00,&H00,&H2e,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&H82,&H04,&H00,&H00,&H80,&H07,&H00,&H00,&Hb0,&H04,&H00,&H00)
left_   = Array(&H28,&H00,&H00,&H00,&Hff,&Hff,&Hff,&Hff,&H02,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&H3e,&H00,&H00,&H00,&H2e,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&H3e,&H00,&H00,&H00,&Hb0,&H04,&H00,&H00)

if intVertical >= 800 then
  regdata = bottom
 else
  regdata = left_
    end if

ObjRegistry.SetBinaryValue HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2\", "Settings", regdata

'Restart user shell
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'Explorer.exe'")
For Each objProcess in colProcessList
    colProperties = objProcess.GetOwner(strNameOfUser,strUserDomain)


If strUserDomain & "\" & strNameOfUser = strCurrentUserName then
      objProcess.Terminate()
end if

следующий

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .