Что нового

Привязать команду к кнопке

ivsatel

Продвинутый
Сообщения
319
Репутация
84
Версия AutoIt: 3.3.6.1
Описание: Как привязать команду к кнопке. Например кнопка "Доброе" вставляет массив в открытый файл ipfilter.dat.

Код:
#NoTrayIcon
#Include <GUIConstants.au3>

;*********************************************************

$a_a_dob = "000.000.000.000 - 091.192.031.255 , 000 , l1"
$a_b_dob = "091.192.032.064 - 095.066.127.255 , 000 , l1"
$a_c_dob = "095.066.192.000 - 109.201.095.255 , 000 , l1"
$a_d_dob = "109.201.128.000 - 172.015.255.255 , 000 , l1"
$a_e_dob = "172.032.000.000 - 255.255.255.255 , 000 , l1"

;*********************************************************

$a_a_dom = "000.000.000.000 - 084.053.191.255 , 000 , l1"
$a_b_dom = "084.054.000.000 - 095.066.127.255 , 000 , l1"
$a_c_dom = "095.066.192.000 - 109.126.191.255 , 000 , l1"
$a_d_dom = "095.066.192.000 - 109.126.191.255 , 000 , l1"
$a_e_dom = "109.127.000.000 - 109.201.095.255 , 000 , l1"
$a_f_dom = "109.201.128.000 - 212.034.095.255 , 000 , l1"
$a_g_dom = "212.034.128.000 - 213.167.191.255 , 000 , l1"
$a_h_dom = "213.167.224.000 - 255.255.255.255 , 000 , l1"

;*********************************************************

$a_a_itn = "000.000.000.000 - 010.009.255.255 , 000 , l1"
$a_b_itn = "010.011.000.000 - 084.053.191.255 , 000 , l1"
$a_c_itn = "084.054.000.000 - 091.192.031.255 , 000 , l1"
$a_d_itn = "091.192.032.064 - 095.066.127.255 , 000 , l1"
$a_e_itn = "095.066.192.000 - 109.126.191.255 , 000 , l1"
$a_f_itn = "109.127.000.000 - 109.201.095.255 , 000 , l1"
$a_g_itn = "109.201.128.000 - 172.015.255.255 , 000 , l1"
$a_h_itn = "172.032.000.000 - 192.167.255.255 , 000 , l1"
$a_i_itn = "192.169.000.000 - 212.034.095.255 , 000 , l1"
$a_j_itn = "212.034.128.000 - 213.167.191.255 , 000 , l1"
$a_k_itn = "213.167.224.000 - 255.255.255.255 , 000 , l1"

;*********************************************************

$a_a_tri = "000.000.000.000 - 091.192.031.255 , 000 , l1"
$a_a_tri = "091.192.032.064 - 109.201.095.255 , 000 , l1"
$a_a_tri = "109.201.128.000 - 172.015.255.255 , 000 , l1"
$a_a_tri = "172.032.000.000 - 192.167.255.255 , 000 , l1"
$a_a_tri = "192.169.000.000 - 195.218.255.069 , 000 , l1"
$a_a_tri = "195.218.255.071 - 255.255.255.255 , 000 , l1"

Opt("GUICoordMode",1)

$msg = GUICreate("IPFilter",220,180, -1, -1)
$button_1 = GUICtrlCreateButton("Доброе", 20,15,180,20)
$button_2 = GUICtrlCreateButton("Домолинк", 20,45,180,20)
$button_3 = GUICtrlCreateButton("ИтНет", 20,75,180,20)
$button_4 = GUICtrlCreateButton("Тритиум", 20,105,180,20)

GUISetState ()
While 1
    $msg = GUIGetMsg()
           If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
ivsatel
Преобразовал переменные в массив, чтобы воспользоваться функцией _FileWriteFromArray()...

Код:
#NoTrayIcon
#Include <GUIConstants.au3>
#Include <File.au3>

;*********************************************************

Dim $a_dob[5]

$a_dob[0] = "000.000.000.000 - 091.192.031.255 , 000 , l1"
$a_dob[1] = "091.192.032.064 - 095.066.127.255 , 000 , l1"
$a_dob[2] = "095.066.192.000 - 109.201.095.255 , 000 , l1"
$a_dob[3] = "109.201.128.000 - 172.015.255.255 , 000 , l1"
$a_dob[4] = "172.032.000.000 - 255.255.255.255 , 000 , l1"

;*********************************************************

Dim $a_dom[8]

$a_dom[0] = "000.000.000.000 - 084.053.191.255 , 000 , l1"
$a_dom[1] = "084.054.000.000 - 095.066.127.255 , 000 , l1"
$a_dom[2] = "095.066.192.000 - 109.126.191.255 , 000 , l1"
$a_dom[3] = "095.066.192.000 - 109.126.191.255 , 000 , l1"
$a_dom[4] = "109.127.000.000 - 109.201.095.255 , 000 , l1"
$a_dom[5] = "109.201.128.000 - 212.034.095.255 , 000 , l1"
$a_dom[6] = "212.034.128.000 - 213.167.191.255 , 000 , l1"
$a_dom[7] = "213.167.224.000 - 255.255.255.255 , 000 , l1"

;*********************************************************

Dim $a_itn[11]

$a_itn[0] = "000.000.000.000 - 010.009.255.255 , 000 , l1"
$a_itn[1] = "010.011.000.000 - 084.053.191.255 , 000 , l1"
$a_itn[2] = "084.054.000.000 - 091.192.031.255 , 000 , l1"
$a_itn[3] = "091.192.032.064 - 095.066.127.255 , 000 , l1"
$a_itn[4] = "095.066.192.000 - 109.126.191.255 , 000 , l1"
$a_itn[5] = "109.127.000.000 - 109.201.095.255 , 000 , l1"
$a_itn[6] = "109.201.128.000 - 172.015.255.255 , 000 , l1"
$a_itn[7] = "172.032.000.000 - 192.167.255.255 , 000 , l1"
$a_itn[8] = "192.169.000.000 - 212.034.095.255 , 000 , l1"
$a_itn[9] = "212.034.128.000 - 213.167.191.255 , 000 , l1"
$a_itn[10] = "213.167.224.000 - 255.255.255.255 , 000 , l1"

;*********************************************************

Dim $a_tri[6]

$a_tri[0] = "000.000.000.000 - 091.192.031.255 , 000 , l1"
$a_tri[1] = "091.192.032.064 - 109.201.095.255 , 000 , l1"
$a_tri[2] = "109.201.128.000 - 172.015.255.255 , 000 , l1"
$a_tri[3] = "172.032.000.000 - 192.167.255.255 , 000 , l1"
$a_tri[4] = "192.169.000.000 - 195.218.255.069 , 000 , l1"
$a_tri[5] = "195.218.255.071 - 255.255.255.255 , 000 , l1"

;*********************************************************

Opt("GUICoordMode",1)

$msg = GUICreate("IPFilter",220,180, -1, -1)
$button_1 = GUICtrlCreateButton("Доброе", 20,15,180,20)
$button_2 = GUICtrlCreateButton("Домолинк", 20,45,180,20)
$button_3 = GUICtrlCreateButton("ИтНет", 20,75,180,20)
$button_4 = GUICtrlCreateButton("Тритиум", 20,105,180,20)

GUISetState ()

$ADDR=@ScriptDir&"\ipfilter.dat"

While 1
 Switch GUIGetMsg()
  Case $GUI_EVENT_CLOSE
   ExitLoop
  Case $button_1
   A2F($a_dob)
  Case $button_2
   A2F($a_dom)
  Case $button_3
   A2F($a_itn)
  Case $button_4
   A2F($a_tri)
 EndSwitch
WEnd

Func A2F($A)
 $FILE=FileOpen($ADDR,2)
 _FileWriteFromArray($FILE,$A)
 FileClose($FILE)
EndFunc
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
snoitaleR
Код:
Func A2F($A) 
$FILE=FileOpen($ADDR,2) 
_FileWriteFromArray($FILE,$A) 
FileClose($FILE)
EndFunc

$FILE=FileOpen($ADDR,2) и FileClose($FILE) не нужны. Функция _FileWriteFromArray сама открывает и закрывает файл.
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
madmasles
Я на тот случай, если нужно, чтобы файл очищался перед записью...
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
snoitaleR
_FileWriteFromArray открывает файл с mode=2. Посмотрите в File.au3.
 
Автор
I

ivsatel

Продвинутый
Сообщения
319
Репутация
84
Немного модифицировал (видимо коряво), исключил #include <File.au3>:

Код:
#NoTrayIcon
#Include <GUIConstants.au3>

;*********************************************************

Dim $a_dob[5]

$a_dob[0] = "000.000.000.000 - 091.192.031.255 , 000 , l1"
$a_dob[1] = "091.192.032.064 - 095.066.127.255 , 000 , l1"
$a_dob[2] = "095.066.192.000 - 109.201.095.255 , 000 , l1"
$a_dob[3] = "109.201.128.000 - 172.015.255.255 , 000 , l1"
$a_dob[4] = "172.032.000.000 - 255.255.255.255 , 000 , l1"

;*********************************************************

Dim $a_dom[8]

$a_dom[0] = "000.000.000.000 - 084.053.191.255 , 000 , l1"
$a_dom[1] = "084.054.000.000 - 095.066.127.255 , 000 , l1"
$a_dom[2] = "095.066.192.000 - 109.126.191.255 , 000 , l1"
$a_dom[3] = "095.066.192.000 - 109.126.191.255 , 000 , l1"
$a_dom[4] = "109.127.000.000 - 109.201.095.255 , 000 , l1"
$a_dom[5] = "109.201.128.000 - 212.034.095.255 , 000 , l1"
$a_dom[6] = "212.034.128.000 - 213.167.191.255 , 000 , l1"
$a_dom[7] = "213.167.224.000 - 255.255.255.255 , 000 , l1"

;*********************************************************

Dim $a_itn[11]

$a_itn[0] = "000.000.000.000 - 010.009.255.255 , 000 , l1"
$a_itn[1] = "010.011.000.000 - 084.053.191.255 , 000 , l1"
$a_itn[2] = "084.054.000.000 - 091.192.031.255 , 000 , l1"
$a_itn[3] = "091.192.032.064 - 095.066.127.255 , 000 , l1"
$a_itn[4] = "095.066.192.000 - 109.126.191.255 , 000 , l1"
$a_itn[5] = "109.127.000.000 - 109.201.095.255 , 000 , l1"
$a_itn[6] = "109.201.128.000 - 172.015.255.255 , 000 , l1"
$a_itn[7] = "172.032.000.000 - 192.167.255.255 , 000 , l1"
$a_itn[8] = "192.169.000.000 - 212.034.095.255 , 000 , l1"
$a_itn[9] = "212.034.128.000 - 213.167.191.255 , 000 , l1"
$a_itn[10] = "213.167.224.000 - 255.255.255.255 , 000 , l1"

;*********************************************************

Dim $a_tri[6]

$a_tri[0] = "000.000.000.000 - 091.192.031.255 , 000 , l1"
$a_tri[1] = "091.192.032.064 - 109.201.095.255 , 000 , l1"
$a_tri[2] = "109.201.128.000 - 172.015.255.255 , 000 , l1"
$a_tri[3] = "172.032.000.000 - 192.167.255.255 , 000 , l1"
$a_tri[4] = "192.169.000.000 - 195.218.255.069 , 000 , l1"
$a_tri[5] = "195.218.255.071 - 255.255.255.255 , 000 , l1"

;*********************************************************

FileOpen("c:\Documents and Settings\" & @UserName & "\Application Data\uTorrent\ipfilter.dat", 2)
FileClose("c:\Documents and Settings\" & @UserName & "\Application Data\uTorrent\ipfilter.dat")

Opt("GUICoordMode",1)

$msg = GUICreate("IPFilter",220,180, -1, -1)
$button_1 = GUICtrlCreateButton("Доброе", 20,15,180,20)
$button_2 = GUICtrlCreateButton("Домолинк", 20,45,180,20)
$button_3 = GUICtrlCreateButton("ИтНет", 20,75,180,20)
$button_4 = GUICtrlCreateButton("Тритиум", 20,105,180,20)

GUISetState ()

While 1
 Switch GUIGetMsg()
  Case $GUI_EVENT_CLOSE
   ExitLoop
  Case $button_1
   A2F($a_dob)
  Case $button_2
   A2F($a_dom)
  Case $button_3
   A2F($a_itn)
  Case $button_4
   A2F($a_tri)
 EndSwitch
WEnd

Func A2F($A)
	_FileWriteFromArray("c:\Documents and Settings\" & @UserName & "\Application Data\uTorrent\ipfilter.dat") 
EndFunc

Поправьте пожалуйста)
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
ivsatel
Чтобы обойтись без File.au3 пришлось сэмулировать функцию _FileWriteFromArray()...
И убрал еще FileOpen() и FileClose() перед созданием окна...

Код:
; НАЧАЛО

; ПРОДОЛЖЕНИЕ


#NoTrayIcon
#Include <GUIConstants.au3>

;*********************************************************

Dim $a_dob[5]

$a_dob[0] = "000.000.000.000 - 091.192.031.255 , 000 , l1"
$a_dob[1] = "091.192.032.064 - 095.066.127.255 , 000 , l1"
$a_dob[2] = "095.066.192.000 - 109.201.095.255 , 000 , l1"
$a_dob[3] = "109.201.128.000 - 172.015.255.255 , 000 , l1"
$a_dob[4] = "172.032.000.000 - 255.255.255.255 , 000 , l1"

;*********************************************************

Dim $a_dom[8]

$a_dom[0] = "000.000.000.000 - 084.053.191.255 , 000 , l1"
$a_dom[1] = "084.054.000.000 - 095.066.127.255 , 000 , l1"
$a_dom[2] = "095.066.192.000 - 109.126.191.255 , 000 , l1"
$a_dom[3] = "095.066.192.000 - 109.126.191.255 , 000 , l1"
$a_dom[4] = "109.127.000.000 - 109.201.095.255 , 000 , l1"
$a_dom[5] = "109.201.128.000 - 212.034.095.255 , 000 , l1"
$a_dom[6] = "212.034.128.000 - 213.167.191.255 , 000 , l1"
$a_dom[7] = "213.167.224.000 - 255.255.255.255 , 000 , l1"

;*********************************************************

Dim $a_itn[11]

$a_itn[0] = "000.000.000.000 - 010.009.255.255 , 000 , l1"
$a_itn[1] = "010.011.000.000 - 084.053.191.255 , 000 , l1"
$a_itn[2] = "084.054.000.000 - 091.192.031.255 , 000 , l1"
$a_itn[3] = "091.192.032.064 - 095.066.127.255 , 000 , l1"
$a_itn[4] = "095.066.192.000 - 109.126.191.255 , 000 , l1"
$a_itn[5] = "109.127.000.000 - 109.201.095.255 , 000 , l1"
$a_itn[6] = "109.201.128.000 - 172.015.255.255 , 000 , l1"
$a_itn[7] = "172.032.000.000 - 192.167.255.255 , 000 , l1"
$a_itn[8] = "192.169.000.000 - 212.034.095.255 , 000 , l1"
$a_itn[9] = "212.034.128.000 - 213.167.191.255 , 000 , l1"
$a_itn[10] = "213.167.224.000 - 255.255.255.255 , 000 , l1"

;*********************************************************

Dim $a_tri[6]

$a_tri[0] = "000.000.000.000 - 091.192.031.255 , 000 , l1"
$a_tri[1] = "091.192.032.064 - 109.201.095.255 , 000 , l1"
$a_tri[2] = "109.201.128.000 - 172.015.255.255 , 000 , l1"
$a_tri[3] = "172.032.000.000 - 192.167.255.255 , 000 , l1"
$a_tri[4] = "192.169.000.000 - 195.218.255.069 , 000 , l1"
$a_tri[5] = "195.218.255.071 - 255.255.255.255 , 000 , l1"

;*********************************************************

Opt("GUICoordMode",1)

$msg = GUICreate("IPFilter",220,180, -1, -1)
$button_1 = GUICtrlCreateButton("Доброе", 20,15,180,20)
$button_2 = GUICtrlCreateButton("Домолинк", 20,45,180,20)
$button_3 = GUICtrlCreateButton("ИтНет", 20,75,180,20)
$button_4 = GUICtrlCreateButton("Тритиум", 20,105,180,20)

GUISetState ()

While 1
 Switch GUIGetMsg()
  Case $GUI_EVENT_CLOSE
   ExitLoop
  Case $button_1
   A2F($a_dob)
  Case $button_2
   A2F($a_dom)
  Case $button_3
   A2F($a_itn)
  Case $button_4
   A2F($a_tri)
 EndSwitch
WEnd

Func A2F($A)

 $FILE=FileOpen("c:\Documents and Settings\" & @UserName & "\Application Data\uTorrent\ipfilter.dat", 2)

 For $I=0 To UBound($A)-1
  FileWrite($FILE,$A[$I]&@CRLF)
 Next

 FileClose("c:\Documents and Settings\" & @UserName & "\Application Data\uTorrent\ipfilter.dat")

EndFunc
 
Верх