У меня есть папка с изображениями, по которым я хочу иметь возможность перемещаться в Windows Photo Viewer. Эти изображения большие и не полностью помещаются на моем экране в реальном размере.
Если я открываю любое изображение в папке, Photo Viewer отображает его в уменьшенном масштабе, чтобы вписаться, и со стрелками назад/вперед по обе стороны для навигации. Я могу нажимать стрелки или использовать клавиши со стрелками влево и вправо на клавиатуре для навигации — пока все хорошо.
Проблема в том, что если я нажимаю правой кнопкой мыши на изображение и выбираю "Показать реальный размер", то стрелки навигации исчезают. Они не просто скрываются, они действительно исчезают - даже клавиши со стрелками влево и вправо перестают работать. Если я снова нажимаю правой кнопкой мыши и возвращаюсь к "Увеличить до нужного размера", то стрелки возвращаются, и клавиши со стрелками на клавиатуре снова работают.
Другими словами, если я хочу просмотреть папку с изображениями в полном размере, мне придется переключиться с «масштабировать для подгонки» (исходный вид) на «просмотр фактического размера», а затем обратно на «масштабировать для подгонки», чтобы стрелки навигации снова появились для каждого изображения!
Я не могу себе представить, почему это было бы преднамеренно или желательно. Неужели нет способа просто перемещаться по папке изображений в полном размере?
решение1
Это действительно раздражающая проблема. Решения нет, но я могу создать обходной путь: я создаю скрипт powershell, чтобы сделать многие шаги, которые мне пришлось бы делать вручную, автоматизированным способом. Например: нажмите «стрелку вправо»: сначала нажмите esc, затем стрелку вправо, затем увеличение, прокрутка вверх. Смотрите:
#Run this command line on a command prompt, powershell 7 required. Replace -File param with the path of the file
#pwsh -ExecutionPolicy Bypass -File C:\Workspace\repos\test2\pdf-utilities\sendkeys.ps1 -WindowTitle Archie
param ([Parameter(Mandatory=$true)][string]$WindowTitle)
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
$SendKeys = [System.Windows.Forms.SendKeys]
$Interaction = [Microsoft.VisualBasic.Interaction]
while ($true) {
$key = [System.Console]::ReadKey($true).key
if ($key -eq 'e') {
Exit
}
$Interaction::AppActivate($WindowTitle)
Start-Sleep 0.1
if ($key -eq 'LeftArrow' -Or $key -eq 'RightArrow') {
$SendKeys::SendWait("{ESC}")
$SendKeys::SendWait($key -eq 'LeftArrow' ? "{LEFT}" : "{RIGHT}")
$key = 'x'
}
if ($key -eq 'x') {
$SendKeys::SendWait("^=")
$SendKeys::SendWait("^=")
$SendKeys::SendWait("^=")
$SendKeys::SendWait("^=")
$SendKeys::SendWait("^=")
$SendKeys::SendWait("^=")
$key = 'UpArrow'
}
if ($key -eq 'UpArrow' -Or $key -eq 'DownArrow') {
$arrow = $key -eq 'UpArrow' ? 'UP' : 'DOWN'
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
}
if ($key -eq 'PageUp' -Or $key -eq 'PageDown') {
$arrow = $key -eq 'PageUp' ? 'UP' : 'DOWN'
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
$SendKeys::SendWait("{$arrow}")
}
$SendKeys::Flush()
$Interaction::AppActivate('Command')
}
решение2
Вот самое простое решение:
- Вас не заставляют использовать Windows Viewer (надеюсь).
- Используйте другой просмотрщик, например ImageGlass или IrfanView или любой другой.
- Настройте сочетания клавиш по своему усмотрению.
- В качестве бонуса некоторые просмотрщики изображений позволяют открывать изображения в полном разрешении.
Ваше здоровье!