Что нового

Сохранение документа при нажатии на кнопку

pixtachek

Новичок
Сообщения
29
Репутация
0
Версия : 3.2.6.1
Описание :
Можно ли сделать чтобы при нажатии кнопки в GUI скрип (A) , делал изменения в скрипте (B) и сохранял скрипт (B) в определённой директории (любой)?
 

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
pixtachek
Хотелось бы знать точнее, какие именно изменения нужно делать в скрипте (B)...
От этого зависит то, какие функции лучше использовать...
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
А что в данный момент делает скрипт (B) ?
Он запущен?
Он скомпилирован и запущен?
Подробнее можно рассказать суть?
 
Автор
P

pixtachek

Новичок
Сообщения
29
Репутация
0
snoitaleR
Есть шаблон скрипта (B)
В общем чтобы при вводе в инпуты A , B, C, в скрипте (B) изменялись соответствующие команды. А затем при нажатии кнопки Save AS выходило окошко где сохранить новый скрипт (или в готовую директорию сохранять).
Код:
$Input1 = GUICtrlCreateInput("InputA", 96, 40, 97, 21)
$Input2 = GUICtrlCreateInput("InputB", 96, 72, 97, 21)
$Input3 = GUICtrlCreateInput("InputC", 96, 104, 97, 21)
$Button1 = GUICtrlCreateButton("Save As", 336, 56, 75, 25)

Код:
sleep(A)	
send("B")
send("{TAB}")
send("C")
send("{ENTER}")



Yuriy Выше вроде пояснил , если не получилось понять , то постараюсь ещё раз изложить мысль , мне довольно таки сложно это делать.
 

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
pixtachek
Мой вариант:

Код:
; НАЧАЛО

 $GUI=GUICreate("",300,300)
 $INPUT1=GUICtrlCreateInput("InputA",96,40,97,21)
 $INPUT2=GUICtrlCreateInput("InputB",96,72,97,21)
 $INPUT3=GUICtrlCreateInput("InputC",96,104,97,21)
 $BUTTON=GUICtrlCreateButton("Save As",100,130,75,25)

 GUISetState()

 While True

  Switch GUIGetMsg()
   Case -3
    ExitLoop
   Case $BUTTON
    MsgBox(0,"","Событие...")
    $ADDR=FileSaveDialog("Сохранение скрипта",@DesktopDir,"Скрипты (*.au3)")&".au3"
    If @error Then
     MsgBox(4096,"","Сохранение отменено.")
     Exit
    Else
     MsgBox(4096,"","Выбран файл: "&$ADDR)
    EndIf
    $FILE=FileOpen($ADDR,2)
    $TEXT='sleep("'&GUICtrlRead($INPUT1)&'")'&@CRLF&'send("'&GUICtrlRead($INPUT2)&'")'&@CRLF&'send("{TAB}")'&@CRLF&'send("'&GUICtrlRead($INPUT3)&'")'&@CRLF&'send("{ENTER}")'
    FileWrite($FILE,$TEXT)
    FileClose($FILE)
  EndSwitch

 WEnd

; КОНЕЦ
 
Автор
P

pixtachek

Новичок
Сообщения
29
Репутация
0
Супер!! :laugh: :IL_AutoIt_1:

Спасибо!

П.с. пошел штудировать невероятные просторы AutoIT.
 

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
pixtachek
Вариант для двух расширений...

Код:
; НАЧАЛО

 ; Адрес компилятора

 $AUT2EXE="disk:\folder\aut2exe.exe"

 $GUI=GUICreate("",170,170)
 $INPUT1=GUICtrlCreateInput("InputA",10,10,150,25)
 $INPUT2=GUICtrlCreateInput("InputB",10,40,150,25)
 $INPUT3=GUICtrlCreateInput("InputC",10,70,150,25)
 $BUTTON1=GUICtrlCreateButton("Сохранить как AU3",10,100,150,25)
 $BUTTON2=GUICtrlCreateButton("Сохранить как EXE",10,130,150,25)

 GUISetState()

 While True

  Switch GUIGetMsg()
   Case -3
    ExitLoop
   Case $BUTTON1
    $ADDR=FileSaveDialog("Сохранение скрипта",@DesktopDir,"Скрипты (*.au3)")&".au3"
    If @error Then
     MsgBox(4096,"","Сохранение отменено.")
     Exit
    EndIf
    $FILE=FileOpen($ADDR,2)
    $TEXT='sleep("'&GUICtrlRead($INPUT1)&'")'&@CRLF&'send("'&GUICtrlRead($INPUT2)&'")'&@CRLF&'send("{TAB}")'&@CRLF&'send("'&GUICtrlRead($INPUT3)&'")'&@CRLF&'send("{ENTER}")'
    FileWrite($FILE,$TEXT)
    FileClose($FILE)
    MsgBox(0,"","Сохранение завершено...")
   Case $BUTTON2
    $ADDR=FileSaveDialog("Сохранение скрипта",@DesktopDir,"Программы (*.exe)")&".exe"
    If @error Then
     MsgBox(4096,"","Сохранение отменено.")
     Exit
    EndIf
    $FILE=FileOpen(@ScriptDir&"\temp.au3",2)
    $TEXT='sleep("'&GUICtrlRead($INPUT1)&'")'&@CRLF&'send("'&GUICtrlRead($INPUT2)&'")'&@CRLF&'send("{TAB}")'&@CRLF&'send("'&GUICtrlRead($INPUT3)&'")'&@CRLF&'send("{ENTER}")'
    FileWrite($FILE,$TEXT)
    FileClose($FILE)
    ShellExecuteWait($AUT2EXE,"/in "&@ScriptDir&"\temp.au3 /out "&$ADDR&" /pack")
    FileDelete(@ScriptDir&"\temp.au3")
    MsgBox(0,"","Сохранение завершено...")
  EndSwitch

 WEnd

; КОНЕЦ
 
Автор
P

pixtachek

Новичок
Сообщения
29
Репутация
0
Когда нажимаю кнопку
Код:
$BUTTON2 = GUICtrlCreateButton("Сохранить как EXE", 202, 50, 150, 25)

не компилирует сразу , а открывает компилятор.
Код:
$AUT2EXE="disk:\folder\aut2exe.exe"

Можно ли сделать дабы он компилировал сразу?
 

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
pixtachek
Параметры компилятора подобраны так, чтобы компилировал сразу...
У меня компилирует сразу...
Проблема, возможно, возникает из-за путей в кавычках...
Попробуй заменить вот эту строку:

Код:
ShellExecuteWait($AUT2EXE,'/in "'&@ScriptDir&'\temp.au3" /out "'&$ADDR&'" /pack')
 
Автор
P

pixtachek

Новичок
Сообщения
29
Репутация
0
Спасибо ещё раз! :IL_AutoIt_1:

Всё работает!
 
Верх