Что нового

окно ввода данных

man_without_face

Новичок
Сообщения
17
Репутация
0
Версия AutoIt: 3.
3.5.4
Описание:
Необходим код:
Создание GUI окна с полем ввода, кнопками "внести запись" и "отменить"
После ввода текста в поле по нажатию Enter или первой кнопки, значение поля поместить в переменную и закрыть окно. Вторая кнопка просто закрывает окно, значение переменной - пустое.
Метод inputbox без использования GUI не подходит, т.к. режет строку после 254 символов.
Чувствую, что решение не сложное, но интернет только в телефоне, искать трудно. Спасибо
Примечания:
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
Код:
$s = _Input("test")
MsgBox(0, StringLen($s), $s)

; ----------------------

Func _Input($Title = "")
  Local $GUI = GUICreate($Title, 260, 75)
  Local $Input = GUICtrlCreateInput("", 10, 10, 240)
  Local $BtnOK = GUICtrlCreateButton("Внести запись", 10, 40, 100, -1, 0x01) ; $BS_DEFPUSHBUTTON
  Local $BtnCancel = GUICtrlCreateButton("Отменить", 150, 40, 100)
  GUISetState()
  Do
    Switch GUIGetMsg()
      Case -3, $BtnCancel
        Return SetError(1, GUIDelete($GUI), "")
      Case $BtnOK
        Local $Text = GUICtrlRead($Input)
        Return SetError(0, GUIDelete($GUI), $Text)
    EndSwitch
  Until 0
EndFunc
 

alex_tm

Новичок
Сообщения
16
Репутация
0
Код:
$s = _Input("test")
MsgBox(0, StringLen($s), $s)

; ----------------------

Func _Input($Title = "")
  Local $GUI = GUICreate($Title, 260, 75)
  Local $Input = GUICtrlCreateInput("", 10, 10, 240)
  Local $BtnOK = GUICtrlCreateButton("Внести запись", 10, 40, 100, -1, 0x01) ; $BS_DEFPUSHBUTTON
  Local $BtnCancel = GUICtrlCreateButton("Отменить", 150, 40, 100)
  GUISetState()
  Do
    Switch GUIGetMsg()
      Case -3, $BtnCancel
        Return SetError(1, GUIDelete($GUI), "")
      Case $BtnOK
        Local $Text = GUICtrlRead($Input)
        Return SetError(0, GUIDelete($GUI), $Text)
    EndSwitch
  Until 0
EndFunc
Нашел ваш пример реализации данной идеи. Очень понравилось - сделано изящно.
Можно попросить Вас подсказать - как сделать такой вариант, в котором бы Ваш скрипт сохранял в текстовый файл внесённые в текстовое поле данные?
Без запроса имени и места сохранения - заранее в скрипте указать каким должно быть итоговое имя файла, и что сохраняться он должен рядом с файлом исполняемого скрипта.
Спасибо.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Код:
$s = _Input("test")

$sFile = @ScriptDir & '\file.txt'
$hFile = FileOpen($sFile, 2)
FileWrite($hFile, $s)
FileClose($hFile)

...
 

alex_tm

Новичок
Сообщения
16
Репутация
0
Код:
$s = _Input("test")

$sFile = @ScriptDir & '\file.txt'
$hFile = FileOpen($sFile, 2)
FileWrite($hFile, $s)
FileClose($hFile)

...
Спасибо
Сообщение автоматически объединено:

И ещё есть один вопрос.
Что в этом скрипте (в скомпилированном) заставляет антивирусы считать его вирусом?
И можно ли избавиться от этого?
Сообщение автоматически объединено:

Спасибо
Сообщение автоматически объединено:


И ещё есть один вопрос.
Что в этом скрипте (в скомпилированном) заставляет антивирусы считать его вирусом?
И можно ли избавиться от этого?
И ещё вопрос.
На последнем шаге скрипт показывает окно с результатом, где в качестве заголовка окна отображается количество знаков введённого текста и сам текст. И ждёт нажатия кнопки ОК, чтобы завершить работу.
Можно ли не выводить последнее окно с ожиданием нажатия ОК?
Т.е. показать поле для ввода текста, и как только его введу и нажму "Внести запись" - завершить работу скрипта.
 

Вложения

  • Screenshot_1.jpg
    Screenshot_1.jpg
    207.7 КБ · Просмотры: 7
  • Screenshot_5.jpg
    Screenshot_5.jpg
    21 КБ · Просмотры: 4
  • Screenshot_7.jpg
    Screenshot_7.jpg
    14.9 КБ · Просмотры: 3
Последнее редактирование:
Верх