Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.2] AutoIt скрипты

Ответить
Настройки темы
[Архив - Часть 1.2] AutoIt скрипты

Ветеран


Сообщения: 565
Благодарности: 41

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 25-01-2008
Внимание!
Тема переведена в архивное состояние





(настоятельно рекомендуется к прочтению/поиску)


Руководство к действию по работе c AutoIt.
Можно ли с помощью AutoIt выбрать каталог? Хочу нацарапать оболочку, которая мне будет конфиги для nnBackup писать, дык выбрать каталог для бэкапа пока только вручную получается... Нельзя ли как-нть вывалить стандартный диалог по выбору файлов-папок, и получить из него результат действий пользователей?

-------
Tega AutoPatcher. Все обновления для XP в одном пакете. http://tega.ru/dirk/links.html


Отправлено: 10:47, 10-02-2006

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Dirk Diggler
Цитата:
в хелпе все написано.
Не всё, и не понятно! (уж извените) - а книжка по информатике чем мне поможет? как правильно восспринимать информацию с хелпов? думаю тут ни это нужно... мне нужна практика (ведь как известно, одна лишь практика даёт желаемые результаты почти в любом деле - а в програмировании тем более)... читать и понимать написанное, я умею, вот если бы написанно было кем-то не очень ленивым (или занятым?) чувалеком, было бы легче понимать. Ясное дело, что тем кто уже знает толк в этом деле (да и в любом другом), легче рассуждать и утверждать, что в хелпе, и в факе, и ещё где, написанно всё понятно - хотя для такого, можно сказать - чайника в сфере программирования как я сам, то что там пишут, и так как это пишут, далеко не понятно! (по крайней мере не всё!).
Имхо, справку, которую переделали на русский, как будто с помощью словаря переделывали. Не то чтобы автор этой справки не знает английского, или программирования в AutoIt, я вовсе этого не утверждаю, просто считаю что можно было бы приложить немного больше усилии, ради такой весчи - как помощь по AutoIt'у!).

P.S:
Извеняюсь за офтоп! (если он таков есть).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 13:01, 07-07-2006 | #191



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 565
Благодарности: 41

Профиль | Сайт | Отправить PM | Цитировать


книжка поможет освоить базовые понятия программирования.
2ALL Написал тут скрипт VBS-> AU3. Ничего особенного, просто закатывает VBS в AU3, а тот пишет его в темп и запускает. Какую длину потянет - не проверял. Да и всякие ситуации хэндлятся не особо. Но мне достаточно, я более доделывать не буду. Работает из командной строки
script.au3 vbsname.vbs Au3name.au3
при отсутсвии параметров или только второго запросит соот-но оба или один в виде виндового диалога. Запрос на перезапись не дает.
Код: Выделить весь код
Global $filename
Global $vbs
Global $vbshandle
Global $au3handle
Global $au3filename
Global $Line
Global $error

    
$func = 'Func RunVBS( $vbs)   ' & @CRLF  _  
& ' Local $batname= "temp"& @MIN & @SEC & ".bat"   ' & @CRLF  _ 
& ' Local $vbsname= "temp"& @MIN & @SEC & ".vbs"  ' & @CRLF  _ 
& ' FileDelete(@TempDir & "\" & $vbsname)  ' & @CRLF  _ 
& ' FileWrite(@TempDir & "\" & $vbsname  , $vbs)  ' & @CRLF  _ 
& ' FileWrite(@TempDir & "\" & $batname, $vbsname)  ' & @CRLF  _ 
& ' sleep(1000)  ' & @CRLF  _ 
& ' RunWait( @ComSpec &' & " ' /c" & ' "' & "'& @TempDir & '\' & $batname &" & "'" &  '"' &  "'" & ',@TempDir,@SW_HIDE)  '   & @CRLF  _  
& ' FileDelete(@TempDir & "\" & $vbsname )   ' & @CRLF   _ 
& ' FileDelete(@TempDir & "\" & $batname) ' & @CRLF   _ 
& ' EndFunc'


If $cmdline[0] =0 Then
        $filename = FileOpenDialog("Choose vbs", @HomeDrive,"VBScript (*.vbs)", 1)
        if @error = 1 Then 
            MsgBox(0,"Error","Wrong filename or file error")
            Exit
        EndIf
        
    Else
        $filename = $cmdline[1]
EndIf

$vbshandle =FileOpen($filename,0)
If $vbshandle = -1 Then 
    MsgBox(0,"Error","vbs file read error")
    Exit
EndIf
    
if $cmdline[0]>1 Then 
    $au3filename = $cmdline[2]        
Else
    $au3filename = FileSaveDialog("Enter au3 filename", @HomeDrive,"AutoIt3 (*.au3)",0, "vbs.au3")
    if @error = 1 Then 
            MsgBox(0,"Error","Wrong filename or file error")
            Exit
    EndIf
EndIf

$au3handle =FileOpen($au3filename,2)
If $au3handle = -1 Then 
    MsgBox(0,"Error","Au3 file write error")
    Exit
EndIf
$Line = " $vbsscript = '" & FileReadLine($vbshandle)
FileWrite($au3handle,  $Line)
SetError(0)
While $error <> -1 
    $Line = FileReadLine($vbshandle)  
    $error = @error
    if ($error <> -1) And StringStripWS($Line,8) <> ""  Then  
        FileWrite($au3handle, "' & @CRLF  _ " & @CRLF)
        
    EndIf
    if StringStripWS($Line,8) <> "" Then 
        $Line = "& '" & $Line     
    Else
        ContinueLoop
    EndIf
    FileWrite($au3handle,  $Line)    
WEnd    
    FileWrite($au3handle,"'")
    FileWrite($au3handle,@CRLF & @CRLF)
    FileWrite($au3handle,"RunVBS($vbsscript)")
    FileWrite($au3handle,@CRLF & @CRLF)
    
    FileWrite($au3handle,$func)
FileClose($vbshandle)
FileClose($au3handle)

-------
Tega AutoPatcher. Все обновления для XP в одном пакете. http://tega.ru/dirk/links.html


Отправлено: 00:27, 08-07-2006 | #192


Пользователь


Сообщения: 125
Благодарности: 9

Профиль | Отправить PM | Цитировать


Creat0R
Цитата:
Думаю вместо этой строки поставить просто wend, а в строке выше, поменять -1 на 0, так?
Ну так ставь! Вместо пустых простыней и споров, лучше бы двадцать раз перепопробовал все свои варианты. Глядишь бы, и понял, что Wend без While не бывает, да и много чего другого полезного узнал.
Цитата:
Как во время выполнения сценария, можно спрятать окно другого-запущенного приложения?
Shows, hides, minimizes, maximizes, or restores a window - WinSetState ( "title", "text", flag )

"Всему лучшему в себе я обязан книгам". А.М.Горький

Отправлено: 07:15, 08-07-2006 | #193


Старожил


Сообщения: 205
Благодарности: 20

Профиль | Отправить PM | Цитировать


Creat0R
Цитата:
Имхо, справку, которую переделали на русский, как будто с помощью словаря переделывали. Не то чтобы автор этой справки не знает английского, или программирования в AutoIt, я вовсе этого не утверждаю, просто считаю что можно было бы приложить немного больше усилии, ради такой весчи - как помощь по AutoIt'у!
Не удержался, так как считаю что сдесь ты не прав. Я не задаю сдесь кучу вопросов потому, что русификация справки ВЕЛИКОЛЕПНА! Может быть не идеал, но по сравнению с другими русификациями что я видел сделано очень хорошо. По крайней мере большинство вопросов решалось именно путем перечитывания справки.

PS А тебе действительно поможет учебник для начинающих, так как само понятие циклов, условных переходов и т.д. одинаково для всех языков и начинать нужно с изучения основ.

Отправлено: 12:39, 08-07-2006 | #194


Новый участник


Сообщения: 20
Благодарности: 1

Профиль | Отправить PM | Цитировать


Попробовал решить проблему с выводом из CMD как предлогал bogomolv в 120 посте. Во первых если копировать код из инета то он не работает т.к. изменяется строка в $a1 надо брать именно по ECHO, но у меня и она не заработала пока не взял эту строку из GUI самого скрипта. Более того есть большое подозрение что на Win с MUI эта строка будет другой и вообще памятуя о проблемах с кодировками сделал запрос при запуске скрипта. Теперь $a1 будет генерироваться при запуске скрипта под каждой виндой заново.
Код: Выделить весь код
#include <Constants.au3>
#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, 09-07-2006 в 05:05.


Отправлено: 14:29, 08-07-2006 | #195


Новый участник


Сообщения: 20
Благодарности: 1

Профиль | Отправить PM | Цитировать


Creat0R хелп не ругай коли чайник. Я сам полный самовар в программировании, как здесь советовали пробую сотни вариантов кода и методом научного тыка пытаюсь разобраться. ИМХО читать не люблю особенно учебники. А объяснять основы программирования справка не обязанна. Если мозги текут отпишись в PM гуру, здесь люди отзывчивые помогут. А вообще для того чтобы писать листинги на чистом листе уходят годы обучения. Так что если не готов закажи нужную весч у знающих людей. Кстати справочку человек переводил бесплатно и нужно сказать спасибо за человекачасы и применённые знания.

Извените не удержался.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:05, 08-07-2006 | #196


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


bogomolv
Цитата:
"Всему лучшему в себе я обязан книгам". А.М.Горький
А есть книги по AutoIt'у? (Хорошо, т.е понятно написанны).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 17:39, 08-07-2006 | #197


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


ANGRO
Цитата:
хелп не ругай коли чайник.
Я и не ругал хелп. Конечно же огромное спасибо автору справки, просто я лично не узнал в ней то что мне нужно (также как и из справки которая сделана на английском) - Кстати, я если и возмущён по поводу этой справки, так это только по поводу того, что она не сильно информативна (та что на английском).


P.S:
А у автора этой справки, прошу искринние извинения, у меня небыло намеринии оскорблять, или ругать работу кого либо! -Просто как сказал ANGRO, я есть Чайник в сфере программирования (или самовар )

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 18:32, 08-07-2006 | #198


Новый участник


Сообщения: 20
Благодарности: 1

Профиль | Отправить PM | Цитировать


Решил собрать на основе кода из 196 поста что нить полезное так сказать для проверки в драйв тесте.
Почему-то получился пинг .
Код: Выделить весь код
#include <GUIConstants.au3>
#include <Constants.au3>
#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 и главное куда.

Последний раз редактировалось ANGRO, 09-07-2006 в 05:12.


Отправлено: 20:39, 08-07-2006 | #199


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Кто-то может мне помочь со следующей задачей:

Нужно запустить прогрессБар, и чтобы он автоматом закрылся, в тот момент как завершит свою работу определённый запущенный процесс в системе (а точнее запущеный скрипт *.bat файла) - и если возможно, то чтобы в окне прогресс бара, была видна бегущая надпись, с текстом который я выберу. (если нет, то хотябы поместить этот текст обычно, как в MsgBox).
Возможно таке осуществить?

Есть ещё вопрос:

При запуске диалога для выбора файла, возвращается значение в переменную $var (что-то в этом роде):
Код: Выделить весь код
$var = FileOpenDialog("Выбирите архив...", "", "Zip (*.zip)")
Но когда я пытаюсь записать результат в файл:
Код: Выделить весь код
FileWrite("c.tmp", $var)
То файл (c.tmp) сохраняется в том каталоге, где и был выбран архив.
Следовательно вопрос: Как мне осуществить сохранение файла (c.tmp), в текущем каталоге? т.е в том каталоге где и находится сам скрипт. Но чтобы ненужно было указывать полный путь, так как запускаться скрипт будет постоянно с разных мест.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 03:34, 10-07-2006 | #200



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.2] AutoIt скрипты

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? DreDo Хочу все знать 4 01-12-2009 18:54
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. Vadikan AutoIt 1543 18-01-2009 10:46
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
[Архив - Часть 1.3] AutoIt скрипты biork AutoIt 503 09-06-2007 11:27
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход