Answers:
一种完美的工作解决方案是:
@echo off
echo ThinTaskbar
echo Please wait a few secconds...
net stop "UxSms"
net start "UxSms"
现在,您可以根据需要禁用自动隐藏。每次重新启动后必须应用脚本。
资料来源:Youtube
其实我问这个问题的重复,它仍然没有解决Windows Server 2008上的垂直任务栏太宽
但我可以指出您此链接:
基本上,它说的是小图标实际上比它们看上去宽(但不是更高),这是设计使然。您不能在图标的虚拟宽度下方更改任务栏的宽度。
当水平时,它允许较小的“高”的原因是,由于每个图标仍具有较宽的宽度,因此可以通过指尖轻松保持可定位目标。
也许有人可以使用它来创建解决方案:)
我有一个正在使用的解决方案。我花了几个小时对此进行编码,并且非常满意它对我来说非常有效。如果需要,请继续使用它,如果您想在论坛上在线发布此代码,请相信我(drange17)。反过来,我想感谢Lexikos提供的ConsoleSend代码。
首先,我在C:\ Program Files中放置了一个名为“ cmd.lnk”的命令提示符快捷方式。我转到此快捷方式的属性>>快捷方式选项卡>>高级>>启用以管理员身份运行。
其次,我下载了AutoHotkey并使其在启动时运行(在“开始”菜单“启动”文件夹中放置AutoHotkey的快捷方式),并带有以下代码(这绝对不是很好,我确定有人可以做得更好,但确实如此)为我缩小垂直任务栏的工作):
Sleep, 15000
SendInput {LWin Down}r{LWin Up}
IfWinExist, Run
WinActivate
Sleep, 500
SendInput {Raw}RunDll32.exe shell32.dll,Options_RunDLL 1
SendInput {Enter}
WinWait, Taskbar and Start Menu Properties
SendInput {Tab}{Space}{Enter}
WinWaitClose
Run C:\Program Files\cmd.lnk
WinWait, Administrator: cmd ahk_class ConsoleWindowClass
winwaitactive Administrator: cmd ahk_class ConsoleWindowClass
ConsoleSend("net stop uxsms", "ahk_class ConsoleWindowClass")
ConsoleSend("`r", "ahk_class ConsoleWindowClass")
Sleep, 3000
ConsoleSend("net start uxsms", "ahk_class ConsoleWindowClass")
ConsoleSend("`r", "ahk_class ConsoleWindowClass")
Sleep, 3000
ConsoleSend("exit", "ahk_class ConsoleWindowClass")
ConsoleSend("`r", "ahk_class ConsoleWindowClass")
WinWaitClose
SendInput {LWin Down}r{LWin Up}
IfWinExist, Run
WinActivate
Sleep, 500
SendInput {Raw}RunDll32.exe shell32.dll,Options_RunDLL 1
SendInput {Enter}
WinWait, Taskbar and Start Menu Properties
SendInput {Tab}{Space}{Enter}
Run outlook.exe
ConsoleSend(text, WinTitle="", WinText="", ExcludeTitle="", ExcludeText="")
{
WinGet, pid, PID, %WinTitle%, %WinText%, %ExcludeTitle%, %ExcludeText%
if !pid
return false, ErrorLevel:="window"
if !DllCall("AttachConsole", "uint", pid)
return false, ErrorLevel:="AttachConsole"
hConIn := DllCall("CreateFile", "str", "CONIN$", "uint", 0xC0000000
, "uint", 0x3, "uint", 0, "uint", 0x3, "uint", 0, "uint", 0)
if hConIn = -1
return false, ErrorLevel:="CreateFile"
VarSetCapacity(ir, 24, 0) ; ir := new INPUT_RECORD
NumPut(1, ir, 0, "UShort") ; ir.EventType := KEY_EVENT
NumPut(1, ir, 8, "UShort") ; ir.KeyEvent.wRepeatCount := 1
Loop, Parse, text ; for each character in text
{
NumPut(Asc(A_LoopField), ir, 14, "UShort")
NumPut(true, ir, 4, "Int") ; ir.KeyEvent.bKeyDown := true
gosub ConsoleSendWrite
NumPut(false, ir, 4, "Int") ; ir.KeyEvent.bKeyDown := false
gosub ConsoleSendWrite
Sleep, 10
}
gosub ConsoleSendCleanup
return true
ConsoleSendWrite:
if ! DllCall("WriteConsoleInput", "uint", hconin, "uint", &ir, "uint", 1, "uint*", 0)
{
gosub ConsoleSendCleanup
return false, ErrorLevel:="WriteConsoleInput"
}
return
ConsoleSendCleanup:
if (hConIn!="" && hConIn!=-1)
DllCall("CloseHandle", "uint", hConIn)
DllCall("FreeConsole")
return
}
这是最终的瘦垂直任务栏:
有人说,此行为是设计使然,目的是限制触摸功能的最小厚度:防止任务栏变得太小以至于无法用指尖使用,因此在屏幕侧面,它将保持此最小尺寸。
如果您有一台笔记本电脑,我会找到以下临时解决方案:
开机时,任务栏将以其默认的“宽”尺寸垂直出现在屏幕左侧。为了缩小任务栏的宽度,我只是拔下了笔记本电脑的交流电源。立即调整任务栏的大小(如果任务栏未设置为“自动隐藏”,则该按钮不起作用)。在Windows 7操作期间,新任务栏的大小将“永久”保持。我什至可以在此时禁用“自动隐藏”设置,并且任务栏仍保持较小的尺寸。当然,我将交流电源插回笔记本电脑以保持电池充电。关闭笔记本电脑,然后再将其打开使用后,我只需执行相同的交流电源技巧即可再次调整垂直任务栏的大小。我没有在其他笔记本电脑/ PC上尝试过此操作,所以我没有
编辑
我可能已经找到了您可以遵循的方向。
首先,将Windows主题设置为“经典”时,我注意到“开始”按钮的宽度减小了,然后它允许将任务栏的宽度减小为“开始”按钮的宽度。您可能还需要关闭时钟和日期。
这使我开始想到宽度问题是由“开始”按钮本身太宽引起的。因此,这里有一些自定义“开始”按钮的链接:
如何在Windows 7 中更改开始按钮的文本如何在Windows 7
中更改开始菜单按钮
此解决方案可能会或可能不会起作用,并且可能会或可能不会与Aero一起工作,或者仅在经典模式下起作用。
无论如何:祝您黑客愉快!
我是自动热键的忠实粉丝,我花了一些时间才找到解决此问题的最简单方法。我首先尝试了直接注册表设置更改,但是这些更改要求重新启动explorer.exe,这是我不喜欢的,因此最终,在尝试了许多失败之后,我最终还是这样做了。如果需要任何改进,我将更新pastebin中的代码。
我制作了一个自动热键代码,使您的Windows 7侧面任务栏带有小图标1图标变薄:
^+t::
; GinThinSideTaskbar
; by giny8i8
; v1p01 at 2014-06-21
; If you use the Windows 7 Taskbar on the side of your screen, with smal icons, this makes it look 1 icon thin instead of the default double size.
; Assumptions: The taskbar is not hidden when you run this code (UxSms restart thinners the taskbar only if the taskbar is hidden)
TaskbarToggler() ;Hide Taskbar
Sleep 1000 ;Wait a little
RunWait,sc stop "UxSms" ;Stop "Desktop Window Manager Session Manager Service" service.
RunWait,sc start "UxSms" ;Start "Desktop Window Manager Session Manager Service" service.
Sleep 1000 ;Wait a little
TaskbarToggler() ;Show Taskbar again
TaskbarToggler()
{
Run % "RunDll32.exe shell32.dll,Options_RunDLL 1" ;Open "Taskbar and Start Menu Properties" window
WinWait, Taskbar and Start Menu Properties ;Wait for the window to open
SendInput {Tab}{Space}{Enter} ;Togle Taskbar hiding
}
return
我也将其放在http://pastebin.com/4upmWETQ上
随时使用和分发,请发表反馈!giny8i8
我知道这是一个老问题,但是您可以使用称为7+ Taskbar Tweaker的工具来完成此任务。
安装并运行后,如果右键单击任务栏图标并打开“高级选项”,则有一个名为“ no_width_limit”的选项。启用该选项并应用新配置。
启用此功能后,如果您解锁任务栏,则现在应该能够使用鼠标相对于图标大小减小任务栏的宽度。
之后,随时锁定任务栏。我相信这是最完整的解决方案。