Добрый день.
Предлагаю тут развивать тему скриптов AutoHotkey для базиса
Я ужа давно работаю в мебельщике с помощью PieMeny написанное на AutoHotkey. Ну и пару своих скриптов... Снял пару роликов на эту тему на ютьюбе. Кому интересно оставлю тут ссылочки
и
Интересно может кто-то еще использует AutoHotkey в работе? Хотелось бы посмотреть примеры использования.
Я попробовал выложить на гугл диск актуальную версию из второго видео, но гугл диск почему-то считает этот архив зло пакостным поэтому если кому надо пишите в телеграмме(@BNikitaG) поделюсь
Последний раз редактировалось Uncle; 05.10.2021 в 16:45..
Причина: ссылка на актуальную версию
Всем привет! Помогите пожалуйста закончить скрипт на AHK.
Не понимаю, как сделать последнюю часть.
Хочу добиться следующего.
1. Выделить все размерные надписи, задать нужный размер - это скрипт отрабатывает.
2. Выделить весь текст на чертеже, спросить, какую высоту текста задать - ввод цифры нужной высоты текста.
Работа скрипта закончена.
P.S. если нельзя решить ввод цифры по запросу, то хотя бы прописать высоту текста в код, например 5,5.
PHP код:
#singleInstance Force #IfWinActive, БАЗИС-Мебельщик ;Название окна программы
y:: ;Вызываем параметры размеров y Send ^+!= ; Ctrl-Shift-Alt-= хоткеи Параметры размеров winwait, ahk_class TFormParRazm qS = 2 ;Задаем размер стрелок qT = 4 ;Задаем высоту надписи размера qV = 5,5 ;Задаем высоту надписи текста Sleep 20 ;Подобрать паузу qS = 2 ;Задаем размер стрелок qT = 4 ;Задаем высоту надписи размера qV = 5,5 ;Задаем высоту надписи текста Sleep 200 Control, Uncheck,, TCheckBox2 ;Снимаем чек с курсива Sleep 20 ;Подобрать паузу Control, Check,, TCheckBox3 ;Ставим чек для замены всем размерам Sleep 20 ;Подобрать паузу Control, Check,, Edit1 Sleep 20 ;Подобрать паузу Control, EditPaste, %qS%, Edit1 ;Меняем размер стрелок Send {Enter} Sleep 10 ;Подобрать паузу Control, Check,, Edit2 Sleep 20 ;Подобрать паузу Control, EditPaste, %qT%, Edit2 ;Меняем высоту надписи Sleep 10 ;Подобрать паузу Send {Tab 3}{Enter} Sleep 10 ;Подобрать паузу Send,^+{F10} ;клавиши для выделения всего текста
Всем привет! Помогите пожалуйста закончить скрипт на AHK.
2. Выделить весь текст на чертеже, спросить, какую высоту текста задать - ввод цифры нужной высоты текста.
Задать напрямую думаю вряд ли возможно. Высота текста меняется в свойствах. А выкружить оттуда данные нереально, мне так кажется. Можно через клик мышкой по координатам, активации нужной ячейки, потом через InputBox задавать величину, или если нужен стандартный параметр то через Send. При этом окно ствойств всегда должно быть развернутым и быть в одном и том же месте.
UPD: Картинки положить рядом со скриптом. Меню свойства должно быть развернуто.
Скрытый текст
PHP код:
#singleInstance Force #IfWinActive, БАЗИС-Мебельщик ;Название окна программы
y:: ;Вызываем параметры размеров y Send ^+!= ; Ctrl-Shift-Alt-= хоткеи Параметры размеров winwait, ahk_class TFormParRazm qS = 2 ;Задаем размер стрелок qT = 4 ;Задаем высоту надписи размера qV = 5,5 ;Задаем высоту надписи текста Sleep 200 Control, Uncheck,, TCheckBox2 ;Снимаем чек с курсива Sleep 20 ;Подобрать паузу Control, Check,, TCheckBox3 ;Ставим чек для замены всем размерам Sleep 20 ;Подобрать паузу Control, Check,, Edit1 Sleep 20 ;Подобрать паузу Control, EditPaste, %qS%, Edit1 ;Меняем размер стрелок Send {Enter} Sleep 10 ;Подобрать паузу Control, Check,, Edit2 Sleep 20 ;Подобрать паузу Control, EditPaste, %qT%, Edit2 ;Меняем высоту надписи Sleep 10 ;Подобрать паузу Send {Tab 3}{Enter} Sleep 100 ;Подобрать паузу Send,^+{F10} ;клавиши для выделения всего текста Sleep 100 ImgFound := false ;ищем картинку While(ImgFound = false) { ImageSearch, x, y, 0, 0, 1920, 1080, *0 text_off.png ;картинку ДО выделения вырезать через принтскрин, т.к. настройки темы могут быть другие If(x <> "") { Click, %x%, %y% ;кликаем если нашли невыделенную строку в свойствах ImgFound := true } ImageSearch, x, y, 0, 0, 1920, 1080, *0 text_on.png ;картинку ПОСЛЕ выделения вырезать через принтскрин, т.к. настройки темы могут быть другие If(x <> "") { Click, %x%, %y% ;кликаем если нашли выделенную строку в свойствах ImgFound := true } } Send %qV% ;Меняем высоту надписи текста Send {Enter} Send {Escape}{Escape} ;сброс выделения Return
[свернуть]
Последний раз редактировалось skromvit; 26.05.2022 в 22:49.
спасибо за ответ, а как это сделать? Можете помочь дописать скрипт, ввести высоту для текста, после чего завершить работу скрипта до следующего чертежа? По сути я у Вас и перенял идею и часть скрипта, за что Вам огромное спасибо!
Попробуйте так. При условии что номер строки сверху всегда одинаков, и имя окна свойств имеет класс TVirtualStringTree2 (есть варианты обхода).
Для теста надо выделить одиночный текст.
PHP код:
f1:: i := 6 ; номер строки сверху минус один. WinExist("A") SetKeyDelay, 20, 10 InputBox, size, какую высоту текста задать, ввод цифры нужной высоты текста if ErrorLevel Return WinActivate ControlSend, TVirtualStringTree2, {LCtrl Down}{Home}{LCtrl Up}{Down %i%} Send, %size%{Enter}{Escape 2} Return
Это скачок вперёд! Окно для ввода появляется, но значение не присваивается, видимо не ловит окно свойств так, как надо.
Скрин может помочь? https://ibb.co/qrjzj1P