[Архив - Часть 1.2] AutoIt скрипты
-
VelDmi
Re: [Архив - Часть 1.2] AutoIt скрипты
Creat0R
Цитата:
Имхо, справку, которую переделали на русский, как будто с помощью словаря переделывали. Не то чтобы автор этой справки не знает английского, или программирования в AutoIt, я вовсе этого не утверждаю, просто считаю что можно было бы приложить немного больше усилии, ради такой весчи - как помощь по AutoIt'у!
Не удержался, так как считаю что сдесь ты не прав. Я не задаю сдесь кучу вопросов потому, что русификация справки ВЕЛИКОЛЕПНА! Может быть не идеал, но по сравнению с другими русификациями что я видел сделано очень хорошо. По крайней мере большинство вопросов решалось именно путем перечитывания справки.
PS А тебе действительно поможет учебник для начинающих, так как само понятие циклов, условных переходов и т.д. одинаково для всех языков и начинать нужно с изучения основ.
Цитата:
Имхо, справку, которую переделали на русский, как будто с помощью словаря переделывали. Не то чтобы автор этой справки не знает английского, или программирования в AutoIt, я вовсе этого не утверждаю, просто считаю что можно было бы приложить немного больше усилии, ради такой весчи - как помощь по AutoIt'у!
Не удержался, так как считаю что сдесь ты не прав. Я не задаю сдесь кучу вопросов потому, что русификация справки ВЕЛИКОЛЕПНА! Может быть не идеал, но по сравнению с другими русификациями что я видел сделано очень хорошо. По крайней мере большинство вопросов решалось именно путем перечитывания справки.
PS А тебе действительно поможет учебник для начинающих, так как само понятие циклов, условных переходов и т.д. одинаково для всех языков и начинать нужно с изучения основ.
-
ANGRO
Re: [Архив - Часть 1.2] AutoIt скрипты
Попробовал решить проблему с выводом из CMD как предлогал bogomolv в 120 посте. Во первых если копировать код из инета то он не работает т.к. изменяется строка в $a1 надо брать именно по ECHO, но у меня и она не заработала пока не взял эту строку из GUI самого скрипта. Более того есть большое подозрение что на Win с MUI эта строка будет другой и вообще памятуя о проблемах с кодировками сделал запрос при запуске скрипта. Теперь $a1 будет генерироваться при запуске скрипта под каждой виндой заново.
Код:
P.S. Метод предложенный VelDmi в 121 посте не сработал при выводе в GUI скрипта.
Хотя здесь и писалось хочу напомнить что StdoutRead работает только в последних беттах.
P.P.S. bogomolv, VelDmi смотрел форум на сайте разработчиков, не нашёл таких решений как у Вас, хотя конечно все посты не читал но поиск поюзал основательно. Было бы неплохо закинуть код туда.
Код:
Код: Выделить всё
#include
#NoTrayIcon
$f = "C:\test.txt"
$aa = FileRead($f, FileGetSize($f))
$a2 = "абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
$cmdRun = Run(@ComSpec & " /c ECHO " & $a2, @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
$a1 = StdoutRead($cmdRun, -1)
For $i = 1 To StringLen($aa)
$k = StringInStr($a1, StringMid($aa, $i, 1))
If $k>0 Then $aa = StringReplace($aa, $i, StringMid($a2, $k, 1))
Next
msgbox(0,'',$aa)P.S. Метод предложенный VelDmi в 121 посте не сработал при выводе в GUI скрипта.
Хотя здесь и писалось хочу напомнить что StdoutRead работает только в последних беттах.
P.P.S. bogomolv, VelDmi смотрел форум на сайте разработчиков, не нашёл таких решений как у Вас, хотя конечно все посты не читал но поиск поюзал основательно. Было бы неплохо закинуть код туда.
-
ANGRO
Re: [Архив - Часть 1.2] AutoIt скрипты
Creat0R хелп не ругай коли чайник. Я сам полный самовар в программировании, как здесь советовали пробую сотни вариантов кода и методом научного тыка пытаюсь разобраться. ИМХО читать не люблю особенно учебники. А объяснять основы программирования справка не обязанна. Если мозги текут отпишись в PM гуру, здесь люди отзывчивые помогут. А вообще для того чтобы писать листинги на чистом листе уходят годы обучения. Так что если не готов закажи нужную весч у знающих людей. Кстати справочку человек переводил бесплатно и нужно сказать спасибо за человекачасы и применённые знания.
Извените не удержался.
Извените не удержался.
-
Creat0R
Re: [Архив - Часть 1.2] AutoIt скрипты
bogomolv
Цитата:
"Всему лучшему в себе я обязан книгам". А.М.Горький
А есть книги по AutoIt'у? (Хорошо, т.е понятно написанны).
Цитата:
"Всему лучшему в себе я обязан книгам". А.М.Горький
А есть книги по AutoIt'у? (Хорошо, т.е понятно написанны).
-
Creat0R
Re: [Архив - Часть 1.2] AutoIt скрипты
ANGRO
Цитата:
хелп не ругай коли чайник.
Я и не ругал хелп. Конечно же огромное спасибо автору справки, просто я лично не узнал в ней то что мне нужно (также как и из справки которая сделана на английском) - Кстати, я если и возмущён по поводу этой справки, так это только по поводу того, что она не сильно информативна (та что на английском).
P.S:
А у автора этой справки, прошу искринние извинения, у меня небыло намеринии оскорблять, или ругать работу кого либо! -Просто как сказал ANGRO, я есть Чайник в сфере программирования (или самовар
)
Цитата:
хелп не ругай коли чайник.
Я и не ругал хелп. Конечно же огромное спасибо автору справки, просто я лично не узнал в ней то что мне нужно (также как и из справки которая сделана на английском) - Кстати, я если и возмущён по поводу этой справки, так это только по поводу того, что она не сильно информативна (та что на английском).
P.S:
А у автора этой справки, прошу искринние извинения, у меня небыло намеринии оскорблять, или ругать работу кого либо! -Просто как сказал ANGRO, я есть Чайник в сфере программирования (или самовар
)-
ANGRO
Re: [Архив - Часть 1.2] AutoIt скрипты
Решил собрать на основе кода из 196 поста что нить полезное так сказать для проверки в драйв тесте.
Почему-то получился пинг
.
Код:
Еслиб кто ещё прикрутил сюда кнопку стоп, а то я не додумался как выслать Control-C и главное куда.
Почему-то получился пинг
.Код:
Код: Выделить всё
#include
#include
#NoTrayIcon
Opt("GUICloseOnESC", 0)
GUICreate("Пинг", 372, 304)
;GuiSetIcon("11.ico", 0)
$Edit1 = GUICtrlCreateEdit("", 2, 2, 370, 251, $ES_READONLY + $WS_VSCROLL, $WS_EX_CLIENTEDGE)
GUICtrlSetFont ($Edit1,10, 550, 0, "Lucida Console")
GuiCtrlSetBkColor($Edit1,0xf5f5f5)
GuiCtrlSetCursor($Edit1,2)
GuiCtrlCreateLabel("Домен или IP", 42, 257, 112, 20)
GuiCtrlCreateLabel("Кол-во запросов", 141, 257, 90, 20)
$Quant = GUICtrlCreateInput("5", 140, 279, 90, 20)
$Host = GUICtrlCreateInput("www.ru", 26, 279, 112, 20)
$Button_1 = GUICtrlCreateButton("Пинг", 240, 257, 105, 43)
;------------------------------------------------
$a2 = "абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
$cmdRun = Run(@ComSpec & " /c ECHO " & $a2, @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
$a1 = StdoutRead($cmdRun, -1)
;------------------------------------------------
GUISetState(@SW_SHOW)
; GUI BUTTON PROCESSING
Do
$msgP = GUIGetMsg()
Select
Case $msgP = $Button_1
$ip = GUICtrlRead($Host)
$Quantity = GUICtrlRead($Quant)
$PingI = Run(@ComSpec & " /c ping.exe -n " & $Quantity & " " & $ip, @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
While 1
$aa = StdoutRead($PingI, -1)
If @error = -1 Then ExitLoop
;-------------------------------------
For $i = 1 To StringLen($aa)
$k = StringInStr($a1, StringMid($aa, $i, 1))
If $k>0 Then $aa = StringReplace($aa, $i, StringMid($a2, $k, 1))
Next
;-------------------------------------
GUICtrlSetData($Edit1, StringStripWS($aa, 1) & @crlf, 1)
Wend
EndSelect
Until $msgP = $GUI_EVENT_CLOSEЕслиб кто ещё прикрутил сюда кнопку стоп, а то я не додумался как выслать Control-C и главное куда.
-
Creat0R
Re: [Архив - Часть 1.2] AutoIt скрипты
Кто-то может мне помочь со следующей задачей:
Нужно запустить прогрессБар, и чтобы он автоматом закрылся, в тот момент как завершит свою работу определённый запущенный процесс в системе (а точнее запущеный скрипт *.bat файла) - и если возможно, то чтобы в окне прогресс бара, была видна бегущая надпись, с текстом который я выберу. (если нет, то хотябы поместить этот текст обычно, как в MsgBox).
Возможно таке осуществить?
Есть ещё вопрос:
При запуске диалога для выбора файла, возвращается значение в переменную $var (что-то в этом роде):
Код:
Но когда я пытаюсь записать результат в файл:
Код:
То файл (c.tmp) сохраняется в том каталоге, где и был выбран архив.
Следовательно вопрос: Как мне осуществить сохранение файла (c.tmp), в текущем каталоге? т.е в том каталоге где и находится сам скрипт. Но чтобы ненужно было указывать полный путь, так как запускаться скрипт будет постоянно с разных мест.
Нужно запустить прогрессБар, и чтобы он автоматом закрылся, в тот момент как завершит свою работу определённый запущенный процесс в системе (а точнее запущеный скрипт *.bat файла) - и если возможно, то чтобы в окне прогресс бара, была видна бегущая надпись, с текстом который я выберу. (если нет, то хотябы поместить этот текст обычно, как в MsgBox).
Возможно таке осуществить?
Есть ещё вопрос:
При запуске диалога для выбора файла, возвращается значение в переменную $var (что-то в этом роде):
Код:
Код: Выделить всё
$var = FileOpenDialog("Выбирите архив...", "", "Zip (*.zip)")Но когда я пытаюсь записать результат в файл:
Код:
Код: Выделить всё
FileWrite("c.tmp", $var)То файл (c.tmp) сохраняется в том каталоге, где и был выбран архив.
Следовательно вопрос: Как мне осуществить сохранение файла (c.tmp), в текущем каталоге? т.е в том каталоге где и находится сам скрипт. Но чтобы ненужно было указывать полный путь, так как запускаться скрипт будет постоянно с разных мест.
-
XXXler
Re: [Архив - Часть 1.2] AutoIt скрипты
Цитата:
Как мне осуществить сохранение файла (c.tmp), в текущем каталоге? т.е в том каталоге где и находится сам скрипт. Но чтобы ненужно было указывать полный путь, так как запускаться скрипт будет постоянно с разных мест.
Смотри в списке макро папок (в данном случае @ScriptDir)
Код:
Как мне осуществить сохранение файла (c.tmp), в текущем каталоге? т.е в том каталоге где и находится сам скрипт. Но чтобы ненужно было указывать полный путь, так как запускаться скрипт будет постоянно с разных мест.
Смотри в списке макро папок (в данном случае @ScriptDir)
Код:
Код: Выделить всё
$var = FileOpenDialog("Выбирите архив...", "", "Zip (*.zip)")
FileWrite(@ScriptDir&"\c.tmp", $var)-
DenchikK
Re: [Архив - Часть 1.2] AutoIt скрипты
Подскажите пожалуйста, как можно совместить работу такого (примерного)
скрипта. На основе поставленной в ней задачи, хочу научится некоторым
нужным впоследствии, рабочим скриптам. Так что не удевляйтесь
возможной несуразности его (скрипта) логики.
По частям он работает, но как совместить его работу, моего ума, хелпов
и статей форума явно не достаточно...
Идея вот в чём:
1. Выбираю первую или вторую колонку, и/или ставлю вручную нужные
галочки.
2. Жму на "Кнопка Выбора".
3. Если надо, повторяю п.1 и/или п.2 для выбора другой колонки.
4. Жму "Выполнить" - выполняются соответствующие чекбоксам операции.
5. Нажатия на кнопку "Выход" должно приводить к выходу из скрипта на
любом этапе.
6. Не знаю, как придумать, чтоб при повторном нажатии на "Кнопка
Выбора" происходил бы select / deselect чекбокса.
Вроде бы смог понятно обяснить...
Вот скрипт:
скрипта. На основе поставленной в ней задачи, хочу научится некоторым
нужным впоследствии, рабочим скриптам. Так что не удевляйтесь
возможной несуразности его (скрипта) логики.
По частям он работает, но как совместить его работу, моего ума, хелпов
и статей форума явно не достаточно...
Идея вот в чём:
1. Выбираю первую или вторую колонку, и/или ставлю вручную нужные
галочки.
2. Жму на "Кнопка Выбора".
3. Если надо, повторяю п.1 и/или п.2 для выбора другой колонки.
4. Жму "Выполнить" - выполняются соответствующие чекбоксам операции.
5. Нажатия на кнопку "Выход" должно приводить к выходу из скрипта на
любом этапе.
6. Не знаю, как придумать, чтоб при повторном нажатии на "Кнопка
Выбора" происходил бы select / deselect чекбокса.
Вроде бы смог понятно обяснить...
Вот скрипт:
Код: Выделить всё
#include <GUIConstants.au3>
Opt("GUICoordMode", 1)
GUICreate("Учусь Работать С Чекбоксами", 400, 300)
$checkCN1 = GUICtrlCreateCheckbox ("CHECKBOX 1", 10, 10, 120, 20)
$checkCN2 = GUICtrlCreateCheckbox ("CHECKBOX 2", 10, 30, 120, 20)
$checkCN3 = GUICtrlCreateCheckbox ("CHECKBOX 3", 10, 50, 120, 20)
$checkCN4 = GUICtrlCreateCheckbox ("CHECKBOX 4", 130, 10, 230, 20)
$checkCN5 = GUICtrlCreateCheckbox ("CHECKBOX 5", 130, 30, 230, 20)
$checkCN6 = GUICtrlCreateCheckbox ("CHECKBOX 6", 130, 50, 230, 20)
$Start = GUICtrlCreateButton("Выполнить", 10, 100, 120, 20)
$Close = GUICtrlCreateButton("Выход", 10, 120, 120, 20)
$button_1 = GUICtrlCreateButton ("Кнопка Выбора ", 10, 150, 120, 20)
$group_1 = GUICtrlCreateGroup ("Группа", 5, 175, 120, 95)
GUIStartGroup()
$radio_1 = GUICtrlCreateRadio ("Первая Колонка", 10, 190, 120, 20)
$radio_2 = GUICtrlCreateRadio ("Вторая Колонка", 10, 205, 120, 20)
$radioval1 = 0 ; We will assume 0 = first radio button selected, 2 = last button
$radioval2 = 2
GUISetState ()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $GUI_EVENT_MINIMIZE
MsgBox(0,"", "Dialog minimized",2)
Case $msg = $GUI_EVENT_MAXIMIZE
MsgBox(0,"", "Dialog restored",2)
Case $msg = $button_1
if $radioval1 = 0 then
ControlCommand ( 'Учусь Работать С Чекбоксами', '', 'Button1', 'Check', '' )
ControlCommand ( 'Учусь Работать С Чекбоксами', '', 'Button2', 'Check', '' )
ControlCommand ( 'Учусь Работать С Чекбоксами', '', 'Button3', 'Check', '' )
EndIf
if $radioval1 = 1 then
ControlCommand ( 'Учусь Работать С Чекбоксами', '', 'Button4', 'Check', '' )
ControlCommand ( 'Учусь Работать С Чекбоксами', '', 'Button5', 'Check', '' )
ControlCommand ( 'Учусь Работать С Чекбоксами', '', 'Button6', 'Check', '' )
EndIf
; Назначение этих двух строчек я не понимаю...
Case $msg >= $radio_1 AND $msg <= $radio_2
$radioval1 = $msg - $radio_1
EndSelect
WEnd
;************************************************************************
#cs
----------------------
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Or $msg = $Close Then
Exit
ElseIf $msg = $Start Then
If GUICtrlRead($checkCN1) = 1 Then
MsgBox(0,"Установка","Чекбокс 1",1)
EndIf
If GUICtrlRead($checkCN2) = 1 Then
MsgBox(0,"Установка","Чекбокс 2",1)
EndIf
If GUICtrlRead($checkCN3) = 1 Then
MsgBox(0,"Установка","Чекбокс 3",1)
EndIf
If GUICtrlRead($checkCN4) = 1 Then
MsgBox(0,"Установка","Чекбокс 4",1)
EndIf
If GUICtrlRead($checkCN5) = 1 Then
MsgBox(0,"Установка","Чекбокс 5",1)
EndIf
If GUICtrlRead($checkCN6) = 1 Then
MsgBox(0,"Установка","Чекбокс 6",1)
EndIf
EndIf
WEnd
----------------------
#ce-
bogomolv
Re: [Архив - Часть 1.2] AutoIt скрипты
DenchikK
Цитата:
Вроде бы смог понятно обяснить...
Наоборот
Цитата:
По частям он работает, но как совместить его работу, моего ума, хелпов
и статей форума явно не достаточно.
По каким частям? Что нужно совмещать?
Цитата:
5. Нажатия на кнопку "Выход" должно приводить к выходу из скрипта на
любом этапе.
Этапе чего? У тебя нет никаких этапов. Если тебя интересует прекращение (отмена) выполняемого действия, то такая возможность зависит от самого выполняемого действия.
Цитата:
6. Не знаю, как придумать, чтоб при повторном нажатии на "Кнопка
Выбора" происходил бы select / deselect чекбокса.
Это придумали за тебя и назвали оператором GUICtrlSetState
Код:
Цитата:
; Назначение этих двух строчек я не понимаю...
Ну, так не ставь их!
Цитата:
Вроде бы смог понятно обяснить...
Наоборот
Цитата:
По частям он работает, но как совместить его работу, моего ума, хелпов
и статей форума явно не достаточно.
По каким частям? Что нужно совмещать?
Цитата:
5. Нажатия на кнопку "Выход" должно приводить к выходу из скрипта на
любом этапе.
Этапе чего? У тебя нет никаких этапов. Если тебя интересует прекращение (отмена) выполняемого действия, то такая возможность зависит от самого выполняемого действия.
Цитата:
6. Не знаю, как придумать, чтоб при повторном нажатии на "Кнопка
Выбора" происходил бы select / deselect чекбокса.
Это придумали за тебя и назвали оператором GUICtrlSetState
Код:
Код: Выделить всё
Case $msg = $button_1
If GUICtrlRead($checkCN1)=$GUI_CHECKED Then
GUICtrlSetState($checkCN1,$GUI_UNCHECKED)
Else
GUICtrlSetState($checkCN1,$GUI_CHECKED)
EndIFЦитата:
; Назначение этих двух строчек я не понимаю...
Ну, так не ставь их!