Добрый день.
Предлагаю тут развивать тему скриптов AutoHotkey для базиса
Я ужа давно работаю в мебельщике с помощью PieMeny написанное на AutoHotkey. Ну и пару своих скриптов... Снял пару роликов на эту тему на ютьюбе. Кому интересно оставлю тут ссылочки
и
Интересно может кто-то еще использует AutoHotkey в работе? Хотелось бы посмотреть примеры использования.
Я попробовал выложить на гугл диск актуальную версию из второго видео, но гугл диск почему-то считает этот архив зло пакостным поэтому если кому надо пишите в телеграмме(@BNikitaG) поделюсь
Последний раз редактировалось Uncle; 05.10.2021 в 16:45..
Причина: ссылка на актуальную версию
Так как без оплаченной ТП скрипты перестали работать, то пришлось искать альтернативу некоторым часто используемым скриптам. Поиск по номеру детали, Скрыть фасады, Скрыть размеры.
К сожалению не удалось реализовать восстановление видимости, например только фасадов, которые были бы выделены и скрыты при поиске по маске, т.к. непонятно (по крайней мере пока) как этого добиться. А так, пока восстановить видимость у всего сразу.
1. Поиск по номеру детали - вводим в поле окна вместо № любое число. Если нужно выделить несколько деталей - то повторяем Ctrl+F несколько раз.
2. Скрыть фасады - вводим в поле окна вместо № букву "ф".
3. Скрыть размеры - вводим в поле окна вместо № букву "р".
4. Любой введенный текст вместо № - будет вставлен без изменений.
Ну и кому нужно, могут добавить свои "Маски". И да, хоткей на скрыть выделенное - в скрипте F7, если у вас другие клавиши, то заменить {sc41} на свои.
Скрытый текст
PHP код:
;Поиск по номеру детали, найти и скрыть фасады или размеры чрез стандартный Поиск по маске Ctrl+F ^sc21:: ;Ctrl+F Sleep 10 SetCapsLockState, Off ;отключаем CapsLock для корректной работы Моих масок Send ^{sc21} ;запуск хоткея Ctrl+F winwait, ahk_class TForm Sleep 100 InputBox NumDet, Поиск по маске, Мои маски:`n№ -номер детали`nф -найти и скрыть фасады`nр -найти и скрыть размеры`n,, 250, 200,,,,,№ Sleep 20 If (NumDet = "ф") ;ищем фасады и скрываем { Fasad = *фасад* Control, EditPaste, %Fasad%, Edit1 Sleep 20 Control, Check,, Edit1 Sleep 100 ;Подобрать паузу Send {Enter} ;winwait, ahk_class TFormMain Sleep 200 Send {sc41}{sc41} ;F7 Скрыть выделенное 2 раза, с 1-го почему-то не всегда срабатывает Return } else if (NumDet = "р") ;ищем размеры и скрываем { Razmer = *размер* Control, EditPaste, %Razmer%, Edit1 Sleep 20 Control, Check,, Edit1 Sleep 100 ;Подобрать паузу Send {Enter} ;winwait, ahk_class TFormMain Sleep 200 Send {sc41}{sc41} ;F7 Скрыть выделенное 2 раза, с 1-го почему-то не всегда срабатывает Return } else if NumDet is integer ;выделить по номеру, если это число, то вставится в [] скобках { Control, EditPaste, [%NumDet%], Edit1 Sleep 20 Control, Check,, Edit1 Sleep 100 Send {Enter} Return } else ;ставится просто введенный текст { Txt = %NumDet% Control, EditPaste, %Txt%, Edit1 Sleep 20 Control, Check,, Edit1 Sleep 100 Send {Enter} Return } Return
а цвет не меняется по тому, что это не 12, а 13 строка
Спасибо. Заработало.
но у меня и заменив на 13 строку, цвет не меняется.
Не совсем понимаю, что значит выбрать цвет? Куда-то вписать код цвета надо или активируется строка в свойствах для выбора цвета?
Спасибо. Заработало.
но у меня и заменив на 13 строку, цвет не меняется.
Не совсем понимаю, что значит выбрать цвет? Куда-то вписать код цвета надо или активируется строка в свойствах для выбора цвета?
SetBox(13, win, ctrl, 2, "TVTColorBox1") - 2 номер строки в ячейке выбора цвета. Цвет изначально будет предустановлен. То есть стандартный цвет текста черный, после изменения высоты текста сменится и его цвет. Если выделить ещё и размеры, то цвет изменится и у размеров - НО высота текста не изменится, только цвет.
В общем рабочий вариант у меня вот такой на 21:
Скрытый текст
PHP код:
#singleInstance force #IfWinActive БАЗИС-Мебельщик #NoEnv
RowSize := 22
#If WinActive("ahk_class TFormMain")
f1:: win := WinExist("A")
ctrl := FindTree(win) InputBox, size, какую высоту текста задать, ввод цифры нужной высоты текста if ErrorLevel Return
Странно, после Вашей подсказки попробовал запустить снова скрипт, не запускался, стал разбираться, что не так, оказалось, что поменялся TVirtualStringTree4 на TVirtualStringTree5 https://i.ibb.co/9V7v1qb/image.jpg
Странно, после Вашей подсказки попробовал запустить снова скрипт, не запускался, стал разбираться, что не так, оказалось, что поменялся TVirtualStringTree4 на TVirtualStringTree5 https://i.ibb.co/9V7v1qb/image.jpg
Да похоже включая или отключая другие меню - TVirtualStringTree меняется. Попробовал открыть библиотеку и сменилось на 3, открепил окно свойств и получил 1.
Выше код в #114, который срабатывает при любом значении TVirtualStringTree. Во всяком случае при разных комбинациях включенных окон у меня срабатывает
у меня не срабатывает)) одно радует, способ по поиску картинки работает без сбоев, но чуть медленнее.
У меня в примере поиск картинки был по всему экрану, если сузить область поиска, например только левая чать экрана, то будет чуть побыстрее. Но, как мне кажется, это будет мало заметно. Скорость передвижения курсора по экрану не мгновенная
В 21, и наверное в 22 - окно свойств это TVirtualStringTree4,
Цитата:
Сообщение от skromvit
Да похоже включая или отключая другие меню - TVirtualStringTree меняется.
Для того и написана FindTree.
Цитата:
Сообщение от skromvit
У меня в примере поиск картинки был по всему экрану, если сузить область поиска, например только левая чать экрана
Нет, надо найти координаты TVirtualStringTree, и искать только в них, и у вас изначальная ошибка в повторном поиске картинки когда это не требуется. Если найдена первая, зачем то ищется вторая и третья.
Цитата:
Сообщение от skromvit
Например только левая чать экрана, то будет чуть побыстрее.
А если правая, то поиск увеличится по длительности в три раза, относительно левого расположения. Это при условии если также остаётся задан весь экран.
Цитата:
Сообщение от skromvit
Скорость передвижения курсора по экрану не мгновенная
Нет, надо найти координаты TVirtualStringTree, и искать только в них, и у вас изначальная ошибка в повторном поиске картинки когда это не требуется. Если найдена первая, зачем то ищется вторая и третья.
Да, картинки не самый удачный пример. Но мне так проще. У себя конечно я задаю область не всего экрана монитора. И потом, разве третья картинка у меня ищется? Там по ситуации, либо активная строка, либо нет. В любом случае пока работает.