Что нового

Добавка текста в два поля - в программе и нажатие на кнопку

perven1

Новичок
Сообщения
57
Репутация
0
Доброе утро, форумчане.
Помогите решить вопрос.

Версия AutoIt: 3.3.14.0

Описание:
Скрипт AutoIt - должен добавлять в программу Boilsoft Video Splitter portable- временные отметки - в окна вставки временного диапазона (называются они "Edit 2" и "Edit 3").
Временные отметки скрипт берет - из текстового файла 1.txt (лежащего по адресу C:\1\1.txt)
Полная последовательность такая - Нажатие на кнопку Button7, затем вставка текста в Edit2 и Edit3, затем нажатие на кнопку Button2.

Примечания:
Предполагается, что программа Boilsoft Video Splitter portable уже запущена.
Также открыт видеофайл в ней.
Текст для поля "Edit 2" - находится в файле 1.txt на первой строке.
Текст для поля "Edit 3" - находится в том же файле на второй строке.
Расположение кнопок и их названия - показано на скриншоте программы.
 

Вложения

  • 1.txt
    26 байт · Просмотры: 3
  • 123.jpg
    123.jpg
    81.5 КБ · Просмотры: 16

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
1. Программа Boilsoft Video Splitter запущена.
2. В переменной $sFilePath указать путь к файлу.
Код:
$sConfFile = '1.txt'
$sTitle = 'Boilsoft Video Splitter'
$sFilePath = @ScriptDir & '\file_name.avi'
$sWinTitleOpen = '[TITLE:Открыть; CLASS:#32770]'

$hWnd = WinActivate(StringFormat('[REGEXPTITLE:(?i)(%s.*); CLASS:#32770]', $sTitle))
If Not $hWnd Then
   MsgBox(16, 'Ошибка', StringFormat('Программа %s не найдена!', $sTitle))
Else
   ControlClick($hWnd, "", "Button1")
   Do
	  Sleep(100)
   Until WinExists($sWinTitleOpen) = 1

   ControlClick($sWinTitleOpen, "", "Edit1")
   ControlSetText($sWinTitleOpen, "", "Edit1", $sFilePath)
   ControlClick($sWinTitleOpen, "", "Button1")
   ControlClick($hWnd, "", "Button7")

   $hFile = FileOpen($sConfFile, 0)
   If $hFile = -1 Then
	  MsgBox(16, "Ошибка", StringFormat('При чтении файла %s произошла ошибка.', $sConfFile))
	  Exit
   EndIf

   $sTime1 = FileReadLine($hFile, 1)
   $sTime2 = FileReadLine($hFile, 2)
   FileClose($hFile)
   Sleep(100)
   ControlSetText($hWnd, "", "Edit2", $sTime1)
   ControlSetText($hWnd, "", "Edit3", $sTime2)
   ControlClick($hWnd, "", "Button2")
EndIf
 
Автор
P

perven1

Новичок
Сообщения
57
Репутация
0
Garrett , вписал путь к файлу.
При запуске скрипта происходит следующее:
1.Вставляются нужные значения в поля Edit2 и Edit3
2.Нажимается кнопка Открыть (Button 1) - и открывается Проводник (предлагая выбрать какой-нибудь файл).

Дальше ничего не происходит.
То есть видеофайл не открывается автоматически. Соответственно - не нажимаются кнопки Button7 и Button2.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
perven1 [?]
2.Нажимается кнопка Открыть (Button 1)
Это 1!

Вставляются нужные значения в поля Edit2 и Edit3
Это 2!
И никак иначе!

Дальше ничего не происходит.
Сперва откройте программу Boilsoft Video Splitter.
В SciTE откройте скрипт и запустите его клавишей F5 (предварительно указав в скрипте путь к файлу в переменной $sFilePath).
Всё должно работать.
 
Автор
P

perven1

Новичок
Сообщения
57
Репутация
0
Garrett [?]
Сперва откройте программу Boilsoft Video Splitter.

Программа Boilsoft Video Splitter - открыта.
Скрипт запускается клавишей F5
В скрипте путь к файлу в переменной $sFilePath - указан.

Значит сперва нажимается кнопка Открыть, затем заполняются поля... а затем опять нажимается кнопка Открыть.
И ничего дальше не происходит. Открыт проводник, где предлагает выбрать файл. Файл сам не выбирается (в скрипте путь к файлу в переменной $sFilePath - указан.)
То есть после того, как нажимается кнопка Открыть и открывается Проводник - скрипт останавливается и дальше не идет.
 
Автор
P

perven1

Новичок
Сообщения
57
Репутация
0
Garrett, а нельзя ли вообще убрать - нажатие на кнопку "Открыть"(Button 1) ?
Ведь предполагается, что файл - УЖЕ - мной выбран самостоятельно (это написано в первом сообщении. На кнопку Button 1 - нажимать вообще не нужно) .

Мне нужно только то, что я написал в первом сообщении - нажатие на кнопку Button7, затем вставка текста в Edit2 и Edit3, затем нажатие на кнопку Button2.
И больше ничего.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
perven1 [?]
Мне нужно только то, что я написал
Код:
$sConfFile = '1.txt'
$sTitle = 'Boilsoft Video Splitter'
$sFilePath = @ScriptDir & '\file_name.avi'

$hWnd = WinActivate(StringFormat('[REGEXPTITLE:(?i)(%s.*); CLASS:#32770]', $sTitle))
If Not $hWnd Then
   MsgBox(16, 'Ошибка', StringFormat('Программа %s не найдена!', $sTitle))
Else

   ControlClick($hWnd, "", "Button7")

   $hFile = FileOpen($sConfFile, 0)
   If $hFile = -1 Then
      MsgBox(16, "Ошибка", StringFormat('При чтении файла %s произошла ошибка.', $sConfFile))
      Exit
   EndIf

   $sTime1 = FileReadLine($hFile, 1)
   $sTime2 = FileReadLine($hFile, 2)
   FileClose($hFile)
   Sleep(100)
   ControlSetText($hWnd, "", "Edit2", $sTime1)
   ControlSetText($hWnd, "", "Edit3", $sTime2)
   ControlClick($hWnd, "", "Button2")
EndIf
 
Автор
P

perven1

Новичок
Сообщения
57
Репутация
0
Garrett, теперь все работает.
Огромное спасибо.
 
Верх