Что нового

Запрос на ввод данных. Ввод строк длиной свыше 255 символов

man_without_face

Новичок
Сообщения
17
Репутация
0
Прошу прощения, если было уже, поиск по сайту с телефона не работает.

Задача следующая:
Необходимо в окно ввода вводить строку определённого вида. Точнее ввод будет автоматический из штрих-кода pdf417 при помощи сканера, эмулирующего ввод с клавиатуры. Но для программы будет равнозначно ручному вводу.
Так вот, столкнулся с ограничением стандартного inputbox в 255 символов. Штрих-коды объемные, данных больше. Есть альтернативные методы ввода строк? Спасибо!
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
man_without_face
столкнулся с ограничением стандартного inputbox в 255 символов
На Win7x86 не подтверждается
Код:
$gui = GUICreate("")
$inp = GUICtrlCreateInput("", 10, 10, 380)
GUISetState()

For $i = 1 To 256
  ControlSend($gui, "", "Edit1", ".")
Next
ControlSend($gui, "", "Edit1", "{!}")

MsgBox(0, "", StringLen(GUICtrlRead($inp))) ; 257
 
Автор
M

man_without_face

Новичок
Сообщения
17
Репутация
0

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
man_without_face
использовал метод inputbox без GUI
Компилируем скрипт и запускаем exe
Код:
InputBox("input", "")


При наличии окна "input" запускаем скрипт
Код:
For $i = 1 To 256
  ControlSend("input", "", "Edit1", ".")
Next
ControlSend("input", "", "Edit1", "{!}")

MsgBox(0, "", StringLen(ControlGetText("input", "", "Edit1"))) ; 257


Ограничение в 255 символов отсутствует.
 
Автор
M

man_without_face

Новичок
Сообщения
17
Репутация
0
InnI сказал(а):
man_without_face
использовал метод inputbox без GUI
Компилируем скрипт и запускаем exe
Код:
InputBox("input", "")


При наличии окна "input" запускаем скрипт
Код:
For $i = 1 To 256
  ControlSend("input", "", "Edit1", ".")
Next
ControlSend("input", "", "Edit1", "{!}")

MsgBox(0, "", StringLen(ControlGetText("input", "", "Edit1"))) ; 257


Ограничение в 255 символов отсутствует.

Вводиться-то вводится, а в переменной обрезается.

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