Описание команды


wntxt

Захват информации с элементов окна.

wntxt=Mode, ||infwt<>||owrite<>||code<>||Dialogs||upd<>

Параметры:

ModeРежим.
  1 - информация записывается в буфер обмена.
  2||FileText - информация записывается в файл.
  3 - информация выводится в глобальную переменную.
Дополнительные параметры:
infwt<>Информация. Параметр infwt<Number> , где Number:
  0 - получение всех данных (по умолчанию).
  1 - получение данных секции [Text].
  2 - получение данных секции [Class].
  3 - получение данных секции [ID].
  4 - получение данных секции [Rect].
  5 - получение данных секции [Style].
  6 - получение данных секции [ExStyle].
  7 - получение данных секции [Hint].
  8 - получение данных секции [Content].
  9 - получение данных секции [Event].
  10 - получение данных секции [Element].
  11 - получение данных секции [Number].
  12 - получение данных секции [Tip].
  13 - получение данных секции [Condition].
  14 - получение данных секции [Cursor].
  15 - получение данных секции [ClientRect].
owrite<>Перезапись. Параметр owrite<Number>, где Number:
 Описание
  0 - не перезаписывать существующий файл, добавляется счётчик.
  1 - перезаписывать, если файл существует.
  8 - пропустить при совпадении имени объекта.
  10 - если файл существует - перезаписывать; пропускать, если подобный файл не существует по целевому пути.
  11 - если файл существует - добавлять счётчик; пропускать, если подобный файл не существует по целевому пути.
  12 - если файл существует, то к целевому файлу добавляется счётчик.
  13|Ext - если файл существует, то к целевому файлу добавляется заданное расширение Ext.
  14|Name - если файл существует, то целевой файл перемещается в заданную/создаваемую папку Name по целевому пути.
  15|StringName - если файл существует, то к имени целевого файла добавляется заданная приставка; тег :N: в StringName заменяется именем файла.

Режимы 50 - 59 сравнивают файлы по датам.
Numbers - номер или номера через запятую 0, 1, 2
    0 - время последней модификации.
    1 - время создания.
    2 - время последнего доступа.
    Если проверяются несколько дат, то для определения "нового" файла можно в конце указать "-1", будет означает, что если все даты файла новее другого, то он считается "новым" 0,1,2,-1. По умолчанию, если хотя бы одна дата новее, то он считается "новым"

  50|Numbers - если дата исходного файла новее, то целевой файл заменяется. Иначе пропускается.
  51|Numbers - если дата исходного файла старше, то целевой файл заменяется. Иначе пропускается.
  52|Numbers - если дата исходного файла новее, то к создаваемому файлу прибавляется счётчик. Иначе пропускается.
  53|Numbers - если дата исходного файла старше, то к создаваемому файлу прибавляется счётчик. Иначе пропускается.
  54|Numbers - если дата исходного файла новее, то к целевому файлу прибавляется счётчик. Иначе пропускается.
  55|Numbers - если дата исходного файла старше, то к целевому файлу прибавляется счётчик. Иначе пропускается.
  56|Numbers|Ext - если дата исходного файла новее, то к целевому файлу прибавляется заданное расширение. Иначе пропускается.
  57|Numbers|Ext - если дата исходного файла старше, то к целевому файлу прибавляется заданное расширение. Иначе пропускается.
  58|Numbers|Name - если дата исходного файла новее, то целевой файл перемещается в заданную/создаваемую папку Name по целевому пути. Иначе пропускается.
  59|Numbers|Name - если дата исходного файла старше, то целевой файл перемещается в заданную/создаваемую папку Name по целевому пути. Иначе пропускается.
  60|Numbers|StringName - если дата исходного файла новее, то к имени целевого файла добавляется заданная приставка; тег :N: в StringName заменяется именем файла. Иначе пропускается.
  61|Numbers|StringName - если дата исходного файла старше, то к имени целевого файла добавляется заданная приставка; тег :N: в StringName заменяется именем файла.. Иначе пропускается.

Режимы 20 и 21 работают не для всех команд, где подключён параметр owrite<>
Режимы работают для команд связанных с текстовыми преобразованиями.
  20|Delimeter - если файл существует, то записывать в конец файла через разделитель Delimeter (необязательный)
  21|Delimeter - если файл существует, то записывать в начало файла через разделитель Delimeter (необязательный)
Далее при существовании файла проверяются контрольные суммы 2-х файлов:

  2|x - если они не совпадают, то к создаваемому файлу прибавляется счётчик.
          если они совпадают, то файл пропускается.

  3|x - если они не совпадают, то к создаваемому файлу прибавляется счётчик.
          если они совпадают, то файл перезаписывается.

  4|x - если они не совпадают, то существующий файл перезаписывается.
          если они совпадают, то файл пропускается.

  5|x - если они не совпадают, то существующий файл перезаписывается.
          если они совпадают, то к создаваемому файлу прибавляется счётчик.

  6|x - если они не совпадают, то файл пропускается.
          если они совпадают, то существующий файл перезаписывается.

  7|x - если они не совпадают, то файл пропускается.
          если они совпадают, то к создаваемому файлу прибавляется счётчик.

  30|x - если они не совпадают, то к целевому файлу прибавляется счётчик.

  31|x|Ext - если они не совпадают, то к целевому файлу прибавляется заданное расширение Ext.
          если они совпадают, то файл пропускается.

  32|x|Name - если они не совпадают, то целевой файл перемещается в заданную/создаваемую папку Name по целевому пути.
          если они совпадают, то файл пропускается.

  33|x|StringName - если они не совпадают, то к имени целевого файла добавляется заданная приставка; тег :N: в StringName заменяется именем файла.
          если они совпадают, то файл пропускается.

  х - метод сравнения:
    1 - подсчёт контрольной суммы MD5
    2 - подсчёт контрольной суммы SHA1
    3 - подсчёт контрольной суммы CRC32
    4 - подсчёт контрольной суммы MD2
    5 - подсчёт контрольной суммы MD4
    6 - подсчёт контрольной суммы SHA256
    7 - подсчёт контрольной суммы SHA384
    8 - подсчёт контрольной суммы SHA512
    9 - подсчёт контрольной суммы MAC
code<>Кодировка. Параметр code<Number>, где Number:
  0 - ANSI 1251.
  1 - UTF-16 LE 1200.
  2 - UTF-16 BE 1201.
  3 - UTF-8 с BOM.
  4 - UTF-8 без BOM.
  По умолчанию файл FileTXT сохраняется в кодировке 4 - UTF-8 без BOM.
DialogsДиалоги. см. Дополнение №18
  Описание
Различные параметры диалогов.
  [input] - диалог ввода информации в InputBox.
  [richinput] - диалог ввода информации в RichInputBox.
  [combo] - диалог выбора информации в ComboBox.
  [group] - диалог выбора информации в GroupBox.
  [check] - диалог выбора информации в CheckBox.
  [edits] - диалог выбора информации в EditBox.
  [sfold] - выбор каталога.
  [zfold] - выбор каталогов.
  [sopen] - выбор файла для открытия.
  [ssave] - выбор файла для сохранения.
  [sicon] - диалог просмотра и выбора значка.
  [msgbx] - окно сообщения MsgBox.
  [updwn] - диалог выбора числовой информации UpDown.
  [image] - диалог выбора изображения.
  [elect] - диалог выбора файлов и папок.
...и другие диалоги.
upd<>Обновление панели.
  Описание
Параметр upd<Number>, где Number - значение обновления панели(ей) Total Commander:
  1 - обновить активную панель.
  2 - обновить обе панели, вернуться в активную.
  3 - обновить другую панель, вернуться в активную.
  4 - обновить активную панель, перейти в другую.
  5 - обновить другую панель, остаться в другой.
  6 - обновить обе панели, остаться в другой.
  7 - не обновлять (по умолчанию, т.е. если параметр не прописан, то панели не обновляются).

Примечания:

  • Команда одноразового запуска - команда не "висит" в системе.
  • При запуске команды видна область выбора.
  • Не блокируется работа клавиатуры, левой и правой кнопки мыши, что позволяет выбрать: окно, элемент, меню окна, программу, элементы рабочего стола и панели запуска ... и.т.д.
  • По нажатию средней кнопки мыши или клавиши SHIFT информация записывается в буфер, в файл или глобальную переменную.
  • При удержании CTRL получение текста со всех возможных элементов (относительно элемента под курсором)
  • Не со всех элементов можно получить информацию (возможно в будущем найдутся дополнительные методы)...

Команда имеет возможность передавать другим командам информацию через именные глобальные переменные. см. Дополнение №23

Имя переменнойОписание
GLOBALWNTXTмассив выходных данных:
При Mode=2 возвращается в первый элемент путь созданного файла.
При Mode=3 данные возвращаются построчно.

См. также:

captxt, cldar, color, diffd, fonts, genwd, infow, keylg, pasgen, playn, plays, radio, regex, spech, swfvw, symcn, symss, symvw, textv, timesx, vclip, video, vidos, xbarx

Примеры:
 Как создать кнопку?

global wntxt=2||"%P"Text.txt GLOBALWNTXT<a> ;; запустить, выбрать окно, меню, элемент окна... и по нажатию средней кнопки мыши записать все данные в файл Text.txt в активной панели и вывести путь файла в глобальную переменную

global wntxt=2||"%P"Text.txt||infwt<1> GLOBALWNTXT<a> ;; запустить, выбрать окно, меню, элемент окна... и по нажатию средней кнопки мыши записать данные секции [Text] в файл Text.txt в активной панели и вывести путь файла в глобальную переменную

global wntxt=3 GLOBALWNTXT<a> ;; запустить, выбрать окно, меню, элемент окна... и по нажатию средней кнопки мыши вывести построчно все данные в глобальную переменную

global wntxt=3||infwt<1> GLOBALWNTXT<a> ;; запустить, выбрать окно, меню, элемент окна... и по нажатию средней кнопки мыши вывести построчно данные секции [Text] в глобальную переменную

global wntxt=3||infwt<2> sends=GLOBALWNTXT<1>??-6= GLOBALSENDS<a> ;; запустить, выбрать окно и по нажатию SHIFT получить в глобальной переменной дескриптор окна

global wntxt=3||infwt<2> sends=GLOBALWNTXT<1>??-6= imgpr=1 infos=2||25||GLOBALSENDS<2>||0||1 imgpr=-1 sends=GLOBALINFOS1<x1>??-1||&?\|Text=([^|]*) GLOBALSENDS<a> ;; запустить, выбрать окно и по нажатию SHIFT получить текстовую информацию элементов окна

global wntxt=3||infwt<2> sends=GLOBALWNTXT<1>??-6= infos=2||20||GLOBALSENDS<2> ;; запустить, выбрать окно и по нажатию SHIFT получить информацию окна

global wntxt=3||infwt<2> sends=GLOBALWNTXT<1>??-6= infos=2||21||GLOBALSENDS<2> ;; запустить, выбрать окно и по нажатию SHIFT получить информацию элементов окна

global wntxt=3||infwt<2> sends=GLOBALWNTXT<1>??-6= infos=2||25||GLOBALSENDS<2> ;; запустить, выбрать окно и по нажатию SHIFT получить подробную информацию элементов окна

global wntxt=3||infwt<2> sends=GLOBALWNTXT<1>??-6= ontop=4||@GLOBALSENDS<2> ;; выбрать окно по нажатию Shift и установить/снять атрибут "Поверх всех окон"

wntxt=1 ;; запустить, выбрать окно, меню, элемент окна... и по нажатию средней кнопки мыши или кнопки SHIFT записать все данные в буфер обмена

wntxt=1||infwt<1> ;; запустить, выбрать окно, меню, элемент окна... и по нажатию средней кнопки мыши записать данные секции [Text] в буфер обмена

wntxt=2||"%P"Text.txt||code<0>||upd<1> ;; запустить, выбрать окно, меню, элемент окна... и по нажатию средней кнопки мыши записать все данные в файл Text.txt в активной панели в кодировке ANSI 1251

wntxt=2||"%P"Text.txt||owrite<1>||upd<1> ;; запустить, выбрать окно, меню, элемент окна... и по нажатию средней кнопки мыши записать все данные в файл Text.txt в активной панели (перезаписывать, если файл существует)

wntxt=2||"%P"Text.txt||upd<1> ;; запустить, выбрать окно, меню, элемент окна... и по нажатию средней кнопки мыши записать все данные в файл Text.txt в активной панели


© Аверин Андрей для Total Commander Image  Averin-And@yandex.ru