Все про скрипти

Після внесених вами змін тепер користуватися функцією @SendChars для внесення відомостей у різні модальні вікна програми Digitals стало взагалі проблематично. Ви зробили, щоб у вікні активною була та позиція, яка останній раз була активною при ручному введенні даних. Але коли користувач останнього разу натиснув у вікні на Cansel, то команда @SendChars просто не працює, бо вона так само виконує команду Cansel.

І плюс постійно звуки, які повідомляють про помилку. Мусиш відключати на ПК звук, коли користуєшся програмою Digitals, бо при використанні скриптів, де використана функція @SendChars вони весь чась “бренькають”.

Краще поверніть назад як було, а натомість додайте функцію, яка б виконувала команду, як клавіша Tab або прямо до функції @SendChars додайте параметр @SendChars 4, де 4 - це кількість знаків табуляції у вікні перед командою Enter

Ми нічого не змінювали у поведінці вікон Digitals, крім одного - Допомога|Про програму, де додали реакцю на Esc. Скиньте нам будь-ласка простий тестовий скрипт, який нормально працює не старій версії, та погано на новій. Спробуємо розібратись.

Щодо табуляції та інших спецсимволів, задавайте їх на ваш розсуд у цифровому вигляді, наприклад, чотири табуляції та Ентер це <9><9><9><9><13> або

за підказку про знаки табуляції дякую, але при поточній ситуації це не вирішує проблему.

Спробуйте цей простий скрипт:
@SendChars 10
[ Операції з об’єктами.Розширити/стиснути ]
@SendChars 2000
Карта | Властивості…

споачатку на версії Digitals за 26.12.2018, потім на версії за 25.01.2019.
Перед тим намалюйте на карті замкнутий об’єкт.

У старій версії все працює нормально - об’єкт розширився, масштаб змінився і ніяких зайвих звуків.
В новій версії об’єкт розширюєтся, але при цьому неприємний звук програми (як коли мишкою клацаєш за межею модального вікна), а масштаб карти взагалі не міняється.

І коли в старій версії відкрити Карта - Властивості, то там активною (обведена синьою рамкою) є ячейка з масштабом і одночасно кнопка ОК. А в новій версії програми ячейка з масштабом уже не активна, а активна тільки кнопка ОК чи Відмінити, залежно, що було вибрано останнього разу при ручному введенні значень. На старій версії завжди була активна кнопка ОК не залежно, яка кнопка була натиснути попереднього разу при закритті даного вікна.

записав відео по даній проблемі - ВІДЕО

будь ласка, виправте дану проблему, бо в скриптах не працює автомасштаб!
я вже навіть записав ВІДЕО з поясненням, в чому проблема, бо надоїло усім пояснювати це знову і знову

Дякуємо. Виправили.

Тобто, @SendChars більше працювати не буде? І вікно Допомога - Про програму закрити в скриптах тепер нема чим?

То додайте тоді функцію, яка б зчитувала номер ключа Digitals.

Функція, яка повертає номер ключа, вже існує - @Hardlock
Реакцію вікна Про програму на Esc також відновили.

Дякую! Все працює.

Доброго дня шановним Розробникам.
Вибачте - повторюся:

Дякую за підтримку.

Зроблено

Підкажіть хто знає. Є така команда “сервіс.знайти однакові”. Коли цю команду прописую в скрипті, то при її виконанні з’являється повідомлення: позначено N однакових об’єктів. Проте командою @sendChar мені не вдається автоматично закрити це вікно з повідомленням. Що в такому випадку робити?

Перевірьте в актуальній версії - все вже працює

Не допомогло.
Версія від 20.03.2019
скрипт:
@SendChars Text
[ Сервіс.Знайти однакові ]

Є складніший варіант:$ProgramPath=@ProgramPath @Run $ProgramPath\Favorites\SendCommandAfterWindow1InWindow2.exe "TFormProgress" "TMessageForm" "" "{ENTER}" @ExecuteMenu MapCheckDuplicates де:
TFormProgress - клас форми вікна прогресу виконання операції (перший параметр скрипта AutoIt);
TMessageForm - клас форми вікна з результатом виконання операції (другий параметр скрипта AutoIt);
“” - заголовок вікна з результатом виконання операції (третій параметр скрипта AutoIt, якщо невідомий - то порожній рядок);
{ENTER} - перелік команд, які посилаються вікну з результатом виконання операції.[attachment=0]SendCommandAfterWindow1InWindow2.exe[/attachment]Файл скрипта - в папку Digitals\Favorites.

Смисл скрипта такий:

  • скрипт стартує і чекає на протязі 5с поки не стане активним вікно з прогресом (наприклад - класу TFormProgress) в треї;
  • якщо вікно TFormProgress стало активним скоріше ніж 5с - скрипт чекає поки вікно TFormProgress перестане бути активним, якщо ні - скрипт припиняє роботу;
  • якщо на протязі 2с після деактивації вікна TFormProgress з’явилось вікно TMessageForm останнє активується скриптом і посилається набір команд, якщо ні - скрипт припиняє роботу.

Так вирішене вирішене питання: треба посилати @sendChar якщо однакові знайдені, чи не треба. Для повної, так-скать, автоматизації :wink:

Клас вікна можна подивитись цією програмою.

Команди, які можна послати активному вікну: [attachment=1]_Send_AutoIt.pdf[/attachment]

Voha,дуже дякую.
Хочеться дізнатися в розробників Digitals про альтернативу

Приберіть “Text” зі строки @SendChars Text

Скриптова функція @SendChars, як на мене - проста посилка натискання клавіш першому ж вікну, що буде активним після її застосування. А якщо такого (з результатом пошуку однакових) вікна не буде - то будь-якому наступному вікну.
Автоматизація роботи з вікнами Digitals мабуть мало ймовірна, із застосуванням самої @SendChars, тому виходів два:

  1. розробити іншу скриптову функцію таку, щоб в ній можна було вказати:
  • значення будь-якого, доступного для вибору в ручному режимі, елемента управління вікна (визначеного при написанні скрипта Digitals як ClassnameNN програмою Au3Info.exe), що може бути активним після виклику операції (наприклад Карта > Властивості);
  • назву кнопки, яку треба натиснути для застосування операції (наприклад ОК, Cancel…);
  • виводити, чи не виводити на екран повідомлення з результатом виконання операції;
  1. додавати окремі скриптові функції для встановлення опцій виконання операцій та виконання самих операцій.

Вибачте, що складно. Але якось так :blush:

Доброго дня шановним Розробникам.

Підкажіть, будь-ласка, чому скриптова функція @Map.CreateSharedBorder не створює лінійний об’єкт по спільній межі лінійного і внутрішнього контуру складного полігонального об’єкта (див. фрагмент 3 малюнку)?[attachment=0]CreateSharedBorder.bmp[/attachment]

Команда @Run ExeFilename повинна застосовуватись у скрипті, де ExeFilename - повна назва файла, включаючи шлях до файла і розширення. Наприклад:[attachment=1]Run.JPG[/attachment] @Run C:\Program Files\AutoCAD 2009\acad.exe Мабуть не зайвим буде, перед тим як “вставити Run і файл програми”, ознайомитись із Работа со скриптами в Digitals. Користуйтесь на форумі посиланням “Активні теми”[attachment=0]ActiveTems.JPG[/attachment]щоб продивитись різні теми, а не лише “Бібліотека корисних скриптів”