2

Мне нравится иметь возможность запускать команды прямо из панели задач. Итак, я включил панель инструментов «Адрес» в моей новой системе Windows 7 - так же, как и в моей старой системе XP. Тем не менее, планка, кажется, имеет обязательную минимальную длину, которая немного длиннее, чем я бы предпочел. Это примерно вдвое больше, если память служит, как минимальный размер, допустимый в XP.

Можно ли как-нибудь настроить эту минимальную длину, используя ключ реестра или каким-либо другим способом?

(Примечание: у меня также есть связанный вопрос об удалении кнопки Обновить в конце панели.)

РЕДАКТИРОВАТЬ: для ясности, я добавляю скриншот. Панель инструментов, которую я хочу укоротить, расположена ниже, с пустым полем для ввода текста, в котором есть раскрывающийся список и кнопка "Обновить". В настоящее время он находится между панелью инструментов быстрого запуска и панелью задач. На дальней стороне панели задач, перед системным треем, находится панель инструментов рабочего стола.

2 ответа2

5

Вы должны иметь возможность уменьшить его, если убедитесь, что Блокировка панели задач отключена, но, конечно, Windows Explorer устанавливает минимальную длину, как вы обнаружили. Помимо взлома explorer.exe чтобы найти местоположение (предположительно) жестко заданной минимальной длины, вы не можете ничего сделать, кроме как использовать каналы обратной связи, чтобы пожаловаться в Microsoft.

Если вы скрываете текстовую метку « Адрес» , вы можете немного уменьшить ее (по ширине метки), но, конечно, вы это уже сделали.

Одним из возможных решений может быть использование стороннего инструмента управления окнами для непосредственного редактирования окна, скрытия кнопки обновления и регулировки размера панели инструментов.

Вы также можете попробовать использовать программу макросов / горячих клавиш или даже AutoHotkey / AutoIt / и т.д. установить триггер и событие или просто написать его.

Обновить:

Последние несколько дней я пытался написать программу (сначала C++, а затем скрипт AutoHotkey), чтобы решить эту проблему. Я узнал некоторые интересные вещи:

  • Удалить кнопку обновления довольно просто, так как расширяет поле со списком, чтобы использовать пространство (25 пикселей), которое использовала кнопка.
  • Перетаскивание ручки адресной строки сбрасывает кнопку обновления и размер поля со списком. Другими словами, если вы не заблокируете панель задач, Explorer сбросит адресную строку, как это было, потому что она жестко запрограммирована и динамична.
  • Сжатие адреса (поле со списком) может быть выполнено, но даже в этом случае сама арматура остается того же размера, и в результате на панели задач остается пустое место.

Другими словами, кнопка обновления и минимальный размер имеют сверхтвердый код и не предназначены для настройки.

Может быть, кто-то захочет пойти на неприятности:

  1. Используя адресную строку в панели задач и будьте достаточно раздражены размером и кнопкой
  2. Выяснить, в каком файле он жестко запрограммирован (файлов Windows Explorer в Windows 7 гораздо больше, чем в XP)
  3. Нахождение места, где оно жестко запрограммировано (надеюсь, всего одна переменная, но с этим большой шанс)
  4. Проверка других эффектов, таких как другие вещи, которые запускают размер (архитектура Windows, как правило, имеет много взаимодействий)
  5. Написание кряка / службы / драйвера, чтобы обойти его (крэк проще, но хуже, так как его пришлось бы повторно применять после большинства обновлений)

Если кто-то не проявит достаточного интереса к его исправлению, чтобы решить все проблемы, то, возможно, ваши единственные варианты - это обратиться напрямую в Microsoft (но не забывайте, что они скоро захотят запустить Windows 8, поэтому тратите время на исправить Windows 7, ну…)

А пока вот модифицированный скрипт AutoHotkey, который позволяет вручную указать ширину:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; SetAddressBarWidth.ahk
;
; This script allows the user to specify the width of the address-bar band of
; the Windows 7 taskbar. It also hides the refresh button and extends the
; combo-box (edit field) to use the space of the refresh button.
;
; http://superuser.com/questions/444407/
;
;   (cl) 2012- Synetech inc., Alec Soroudi
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

#NoTrayIcon                                       ;No tray icon, duh
#NoEnv                                            ;Not using environment vars
#SingleInstance Force                             ;Use only a single instance

min:=0                                            ;Set default width
if 0>0                                            ;Check for arguments
  min=%1%                                         ;Set specified width

abr:="Address Band Root1"                         ;Window class name

IfWinExist ahk_class Shell_TrayWnd                ;Check if taskbar exists
{
  ControlGet, tv, Visible, ,  ToolbarWindow323    ;Is refresh button visible?

  ControlGetPos, tx,ty,tw,th, ToolbarWindow323    ;Get button width
  ControlGetPos, cx,cy,cw,ch, ComboBoxEx321       ;Get combobox width
  ControlGetPos, mx,my,mw,mh, msctls_progress321  ;Get address-bar width
  ControlGetPos, ax,ay,aw,ah, %abr%               ;Get rebar width

  {
    Control, Hide,, ToolbarWindow323              ;Hide the refresh button
    ControlGetPos, cx,cy,cw,ch, ComboBoxEx321     ;Get current combobox width

    if min>0                                      ;If a width was specified
      cw=%min%                                    ;Set the combobox to that width

    if tv                                         ;If the refresh button is visible
      cw:=cw+tw                                   ;Add its width to the combobox

    mw:=cw                                        ;Address-bar is same size
    aw:=cw+4                                      ;Rebar has a 2 pixle border

    ControlMove, %abr%, , , %aw% ,                ;Extend whole address-bar rebar
    ControlMove, msctls_progress321, , , %mw% ,   ;Extend address-bar
    ControlMove, ComboBoxEx321, , , %cw% ,        ;Extend combobox to include button
  }
}
4

Любым способом вы должны рассматривать это как надежный источник информации, но только как факт, который может помочь вам начать решение вашей проблемы.

Я искал в реестре адрес, и он нашел следующий ключ реестра в HKEY_CURRENT USER\Software\Classes\Local Settings:

@explorerframe.dll,-13137 REG_SZ &Address

После этого я искал "@ explorerframe.dll" и нашел другой реестр под названием:

MenuTextPUI REG_SZ @C:\Windows\System32\explorerframe.dll,-13137

Если вы будете искать в своем реестре "MenuTextPUI", вы также найдете одинаковые ключи для ссылок и рабочего стола, которые являются частью меню "Панели инструментов" на панели задач, что заставляет меня думать, что у нас есть правильные значения.(Может быть, это неправильно хоть)

Вы можете проверить эти значения или даже открыть explorerframe.dll с помощью Resource Hacker, чтобы увидеть, что вы можете найти в нем.

Может быть, гуру реестра поможет вам с этого момента.

Надеюсь, это поможет в чем-то.

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