yabalak

Пикабушник
1027 рейтинг 7 подписчиков 137 подписок 9 постов 5 в горячем
Награды:
Багажных дел мастер 5 лет на Пикабу
4

Ответ на пост «Ошиблась»1

Если Java даёт свободу перемещения по миру, то благодаря JavaScript и вовсе можно выйти в космос! См. Телескоп «Джеймс Уэбб» использует в  системе управления  код JavaScript

Ответ на пост «Ошиблась» Javascript, Повтор, Телескоп Джеймс Уэбб, Ответ на пост
Ответ на пост «Ошиблась» Javascript, Повтор, Телескоп Джеймс Уэбб, Ответ на пост
Показать полностью 2
43

Панорамирование/скроллинг/рука в Office

UPD:

Ссылка на скрипт: https://gitflic.ru/project/yabalak/office-pan

В двух словах: перемещаем документ зажатым колесом мыши в Microsoft Office с помощью скрипта на Autohotkey.

Панорамирование/скроллинг/рука в Office Autohotkey, Microsoft Word, Microsoft Excel, Visio, Microsoft PowerPoint, Скрипт, Скроллинг, Длиннопост

Введение

При работе в дизайнерских программах, при просмотре карт или PDF-документов Вы можете передвигать чертёж/карту/документ при зажатой кнопке мыши. В CADах это обычно средняя кнопка, в PDF — левая, в 2gis — левая или правая.

Обычно за включение этого режима отвечает кнопка с иконкой руки (panning hand), вроде такой:

Панорамирование/скроллинг/рука в Office Autohotkey, Microsoft Word, Microsoft Excel, Visio, Microsoft PowerPoint, Скрипт, Скроллинг, Длиннопост

Однако в офисных приложениях нажатие на колесо вызывает режим прокрутки, когда документ начинает ползти в сторону перемещения мыши, что не всегда удобно. Попробуем вернуть «нормальное» поведение колеса в приложениях Microsoft Office.

Word

С word-ом проще всего. Функция «рука» встроена в ворд, она называется «Режим панорамирования»:

Панорамирование/скроллинг/рука в Office Autohotkey, Microsoft Word, Microsoft Excel, Visio, Microsoft PowerPoint, Скрипт, Скроллинг, Длиннопост

В этом режиме удобно редактировать графические элементы в word при большом увеличении. Если функция панорамирования в ворде нужна Вам периодически, то можно вынести её на панель быстрого доступа (см. картинку выше). А чтобы назначить эту функцию на среднюю кнопку мыши, используем следующий скрипт AHK:

#HotIf WinActive("ahk_class OpusApp") ; Когда открыт Word...

MButton:: WordPan()

WordPan(*) {

if !(wd := GetWord()) ; Если ворд не берётся,

return ; то выход

try {

WD.ActiveWindow.View.Panning := True ; рука вкл

Click "down" ; зажали ЛКМ

KeyWait "MButton" ; ждём отпускания колеса

Click "up" ; отжали лкм

WD.ActiveWindow.View.Panning := False ; рука выкл

}

}

GetWord(Force:=0) {

static wd := ""

return GetComApp(&wd, force, "Word.Application", "Word")

}

Скачать все скрипты из статьи

В скрипте используется функция GetComApp

Visio

В visio тоже несложно использовать «руку», но она активируется странным сочетанием Ctrl+Shift+Правая кнопка мыши. Поменяем на среднюю кнопку:

#HotIf WinActive("ahk_class VISIOA")

MButton:: {

SendInput "{Ctrl down}{Shift down}"

Sleep 20

Send "{Rbutton down}"

KeyWait "MButton"

Send "{Rbutton up}"

SendInput "{Ctrl up}{Shift up}"

}

Для большего сходства с автокадом включите опцию «Панорамирование с помощью IntelliMouse» в настройках visio, чтобы поворот колеса менял увеличение:

Панорамирование/скроллинг/рука в Office Autohotkey, Microsoft Word, Microsoft Excel, Visio, Microsoft PowerPoint, Скрипт, Скроллинг, Длиннопост

Excel

А теперь начинается самое интересное. В экселе режима руки нет, хотя он был бы очень кстати для прокрутки широких таблиц влево-вправо. С другой стороны, в Excel имеется поддержка клавиши ScrollLock. Когда Scroll Lock активен (индикатор на клавиатуре горит), клавиши управления курсором ↑↓←→ не передвигают выделение, а осуществляют прокрутку листа, при этом выделение не сбивается. Попробуйте сами. Excel — одна из немногих программ, где работает Scroll Lock.

А ведь это решение! При зажатии колеса мыши мы будем активировать режим Scroll Lock, а при отжатии — снимать его. Останется периодически опрашивать положение мыши, и, если она передвинулась, сдвигать лист в соответствующую сторону клавишами ↑↓←→. Скрипт для Excel:

#HotIf WinActive("ahk_class XLMAIN") ; Excel

MButton:: ScrollLockPan ; Панорамирование СкроллЛоком

ScrollLockPan() {

static XT := 30 ; Порог обнаружения движения мыши (пикселей)

static YT := 30

static MPOLLING := 50 ; Частота опроса мыши, мс

mx0:=my0:=mx1:=my1 := 0 ; Начальные и конечные координаты мыши

MouseGetPos &mx0, &my0

SetScrollLockState 1 ; Скролл лок ВКЛ

Loop {

Sleep MPOLLING

if !GetKeyState("MButton", "P") { ; Если колесо отпущено,

SetScrollLockState 0 ; отключаем скролл лок

return ; и выходим

}

MouseGetPos &mx1, &my1

dx := mx1-mx0

dy := my1-my0

dx := round(dx/XT*1) ; Здесь значения можно подобрать по вкусу

dy := round(dy/YT*4) ; Я умножил на 4, чтобы по вертикали двигалось поживее

;tooltip "dx " dx " dy " dy

if dX > 0 {

Send "{Left " dX "}" ; Нажимаем «влево» нужное число раз (в dX — число)

} else if dX < 0 {

Send "{Right " abs(dX) "}"

}

if dY > 0 {

Send "{Up " dY "}"

} else if dY < 0 {

Send "{Down " abs(dY) "}"

}

mx0 := mx1

my0 := my1

}

}

Скачать все скрипты из статьи

Разумеется, перемещение листа будет не плавным, как в Word или Visio, а скачками: целыми колонками и строчками сразу. Также сдвиг не будет численно соответствовать количеству пикселей, на которые переместилась мышь. Да это и невозможно, ведь в общем случае все колонки имеют разную ширину, а строки отличаются по высоте.
Отрегулируйте параметры задержки (MPOLLING), порогов (XT, YT) и множители в формулах определения dX/dY так, как Вам будет удобнее.

PowerPoint

В PowerPoint тоже нет функции «рука». Действуем аналогично: опрашиваем положение мыши, вычисляем сдвиг, но вместо ScrollLock вызываем функцию SmallScroll, передавая в неё величину сдвигов:

#HotIf WinActive("ahk_class PPTFrameClass") ; PowerPoint 2010+

MButton:: ComPanP(GetPoint())

#HotIf WinActive("ahk_class PP12FrameClass") ; PowerPoint 2007

MButton:: ComPanP(GetPoint())

ComPanP(App) { ; Панорамирование для PowerPoint

static XT := 20 ; Это для панорамирования колёсиком

static YT := 20

static MPOLLING := 50

mx0:=mx1:=my0:=my1:=0

MouseGetPos &mx0, &my0

if !GetKeyState("MButton", "P")

return

loop {

sleep MPOLLING

MouseGetPos &mx1, &my1

dx := mx1-mx0

dy := my1-my0

if !GetKeyState("MButton", "P")

return

dx := round(dx/XT*2)

dy := round(dy/YT*4)

;tooltip "dx " dx " dy " dy

if (dX||dY) {

try {

App.ActiveWindow.SmallScroll -dY, dY, -dX, dX ; Отрицательные значения не воспринимает

} catch {

Tooltip "Отпустите кнопку и начните ещё раз!"

KeyWait "MButton"

Sleep 50

SendLevel 1

SendEvent "^+{MButton}"

SendLevel 0

Tooltip

return

}

mx0 := mx1

my0 := my1

}

}

}

GetPoint(Force:=0) {

static pp := ""

return GetComApp(&pp, force, "PowerPoint.Application", "PowerPoint", "PP_")

}

Скачать все скрипты из статьи

Аналогично, параметры настраиваем по вкусу.

В powerpoint есть неприятная особенность: слайд переключатся на следующий, если прокрутить в самый низ или верх слайда. См. Как отключить переход к следующему слайду колёсиком в PowerPoint.

Другие программы

Использованный приём с регулярным опросом мыши можно распространить и на другие приложения, где Вам хотелось бы добавить панорамирование. Вопрос в том, как сообщать программе, что мы хотим сдвинуть её окно. Один из способов сделать это — послать окну программы сообщение о прокрутке:

PostMessage 0x114, 1, 0, ctrl, win

Здесь 0x114 — горизонтальная прокрутка (0x115 — вертикальная),
1 — направление,
ctrl — id элемента управления
win — HWND окна.

Узнать id элемента управления можно задав ClassNN, полученный с помощью утилиты Window spy из комплекта программы AutoHotKey:

Панорамирование/скроллинг/рука в Office Autohotkey, Microsoft Word, Microsoft Excel, Visio, Microsoft PowerPoint, Скрипт, Скроллинг, Длиннопост

Ниже пример скрипта для WordPad. Маловероятно, что Вам захочется панорамировать WordPad, но как пример подойдёт:

#HotIf WinActive("ahk_class WordPadClass") ; WordPad

MButton::PanWordPad()

PanWordPad(*) {

static XT := 30

static YT := 30

static MOUSEPOLLING := 50

mx0:=my0:=mx1:=my1:=0

win := WinGetID("A") ; получим id активного окна

ctrl := ControlGetHWND("RICHEDIT50W1", win) ; получим id основного элемента управления, который двигать будем

MouseGetPos &mx0, &my0

Loop {

Sleep MOUSEPOLLING

if !GetKeyState("MButton", "P") {

return

}

MouseGetPos &mx1, &my1

dx := mx1-mx0

dy := my1-my0

dx := -round(dx/XT*3)

dy := -round(dy/YT*1)

;tooltip "dx " dx " dy " dy

if (dX||dY) {

if dX > 0 {

loop dX

PostMessage 0x114, 1, 0, ctrl, win ; вправо

} else if dX < 0 {

loop abs(dX)

PostMessage 0x114, 0, 0, ctrl, win ; влево

}

if dY > 0 {

loop dY

PostMessage 0x115, 1, 0, ctrl, win ; вниз

} else if dY < 0 {

loop abs(dY)

PostMessage 0x115, 0, 0, ctrl, win ; вверх

}

}

mx0 := mx1

my0 := my1

}

}

Скачать все скрипты из статьи

Скрипты проверялись в AutoHotKey 2.0.2

Показать полностью 4
409

Ответ на пост «Как посмотреть пароли от всех Wi-Fi, к которым вы когда-либо подключались»2

Чтобы не вводить команды для показа паролей от Wi-Fi, вставьте в консоль cmd.exe, запущенную от имени администратора, следующую команду (это одна строка):

For /f "tokens=4*" %a in ('netsh wlan show profiles^|findstr профили') do @Echo %b & @netsh wlan show profile name="%b" key=clear|findstr "Содержимое" & @Echo -----------------

проверял на русской версии win 7.

Можно сохранить в файл .cmd, но тогда символы процента надо удваивать и не забыть pause в конце, чтобы увидеть результат:

:: wifipass.cmd
For /f "tokens=4*" %%a in ('netsh wlan show profiles^|findstr профили') do @echo %%b & @netsh wlan show profile name="%%b" key=clear|findstr "Содержимое" & @echo -----------------
pause
Сохранять надо в кодировке 866. Запускать тоже от имени администратора.
13

Как очистить/поменять новую вкладку в chrome

Когда Вы выбираете поисковую систему по умолчанию в chrome (chrome://settings/searchEngines), то в новой вкладке, помимо последних посещённых сайтов, начинает показываться «спонсорский контент» — погода, пробки, реклама, яндекс.дзен, пульс мейл.ру, новости bing и т.д.

Можно, конечно, указать свою поисковую строку, например https://yandex.ru/search?text=%25s , но тогда пропадают поисковые подсказки в адресной строке (омнибокс).

Можно установить расширение, которое очищает/меняет/перенаправляет путь к «новой вкладке», но есть способ гораздо проще и быстрее. В реестре делаем так:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome]
"NewTabPageLocation"="about:blank"
Можно заменить about:blank на другой путь. Например, chrome://bookmarks/ — панель закладок, chrome://bookmarks/?id=2 — папка «другие закладки», https://ya.ru/white — минималистичный яндекс и т.п.

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

54

Как отключить переход к следующему слайду колёсиком в PowerPoint

Вы увеличили масштаб в PowerPoint и прокрутили слайд мышкой в самый низ, например, для регулировки размеров изображения в этом месте. Одно неосторожное движение колёсиком и слайд переключается на следующий! УЪУЪУ, бесит!

Как отключить переход к следующему слайду колёсиком в PowerPoint Microsoft PowerPoint, Презентация, Скроллинг, Компьютерная мышка

Сейчас мы будем решать эту проблему. На ленте выберите Вид → Образец слайдов. Выберите самый первый образец в колонке слева, он чуть больше остальных. Поставьте маленький масштаб. Разместите сверху и снизу от слайда (подальше) какие-нибудь фигуры.

Как отключить переход к следующему слайду колёсиком в PowerPoint Microsoft PowerPoint, Презентация, Скроллинг, Компьютерная мышка

Проделайте то же самое на других образцах слайдов, например, на образце титульного слайда, пустого слайда (по желанию). Нажмите «Закрыть режим образца» на первой вкладке.

Готово! Теперь колесо мышки не переключает слайды при редактировании (а при демонстрации, как и положено, переключает).

В следующих постах обсудим необычные методы прокрутки в офисных приложениях.

Источник: superuser

Показать полностью 1
25

PowerPoint вылетает, если музыка на несколько слайдов

Есть один редко встречающийся глюк, описанный в заголовке.

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

PowerPoint вылетает, если музыка на несколько слайдов Microsoft PowerPoint, Баг, Презентация, Музыка, Windows Media Player

...нажимаете просмотр, и тут — БАЦ! PowerPoint вылетает сразу или при переключении на следующий слайд:

PowerPoint вылетает, если музыка на несколько слайдов Microsoft PowerPoint, Баг, Презентация, Музыка, Windows Media Player

Как починить: откройте «Панель управления» — Установка и удаление программ — Включение и отключение компонентов Windows (можно просто написать слово «компонент» в поисковой строке в пуске).

PowerPoint вылетает, если музыка на несколько слайдов Microsoft PowerPoint, Баг, Презентация, Музыка, Windows Media Player

Активируйте проигрыватель Windows Media и всё. Вам не требуется использовать, обновлять, настраивать его по умолчанию, просто активировать. Возможно, потребуется выход из системы или перезагрузка.

Не [Моё], источник — microsoft.com, но у меня такое было на разных поверпоинтах и виндах.

Кстати, немного оффтоп: если у Вас Windows 10, а в сети есть машины с XP, то активируйте компонент «Клиент SMB 1.0/CIFS», чтобы заходить на них. Кто сказал wannacry?

Показать полностью 2
140

Как выгрузить заметки докладчика в документ Word?

UPD:

Правильная ссылка на эту надстройку: https://gitflic.ru/project/yabalak/powerpoint-speaker-notes-...

Допустим, Вы планируете выступление на областной конференции.

Чтобы слушатели Вас точно запомнили, Вы приготовили раздаточный материал в виде листочка, на котором с одной стороны указаны основные тезисы Вашего доклада, а с другой — схема сборки самолётика.

Теперь Вы готовите слайды в PowerPoint. Текст, произносимый при показе каждого слайда, Вы указываете в специальной области «Заметки к слайду» («Заметки докладчика») в нижней части окна powerpoint.

Как выгрузить заметки докладчика в документ Word? Microsoft PowerPoint, Vba, Надстройка, Макрос, Презентация, Доклад, Microsoft Word, Autohotkey

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

Как выгрузить заметки докладчика в документ Word? Microsoft PowerPoint, Vba, Надстройка, Макрос, Презентация, Доклад, Microsoft Word, Autohotkey

В таком документе указаны номера слайдов и сама речь.

Но как это сделать? Сайт MS рекомендует нам некоторые неудобные способы, например по одному слайду на страницу с текстом внизу.

Но нам надо распечатать аккуратную таблицу с номерами слайдов и речью, как на картинке.

Тут-то и поможет нам надстройка SpeakerNotes.ppam. Она добавляет в PowerPoint кнопочку ↓

Как выгрузить заметки докладчика в документ Word? Microsoft PowerPoint, Vba, Надстройка, Макрос, Презентация, Доклад, Microsoft Word, Autohotkey

↑ по нажатию на которую у Вас сформируется документ с речью в ворде.

Ясное дело, что запускать всякие непонятные вещи, взятые из интернета небезопасно! Поэтому антивирус — Ваш друг.

А для самых проницательных имеется исходный код этой утилиты в VBA, а также скрипт на языке AutoHotKey 2.0 (там же).

Скрипт легче редактировать и адаптировать под свои нужды (поменять шрифт, границы, отступы), но зато надстройка аккуратно интегрируется в интерфейс PowerPoint. Функционал такой же.

Желаю всем блистательных выступлений!

Показать полностью 3
Отличная работа, все прочитано!