|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.2] AutoIt скрипты |
|
|
[Архив - Часть 1.2] AutoIt скрипты
|
|
Ветеран Сообщения: 565 |
Внимание! Тема переведена в архивное состояние (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе c AutoIt. |
|
|
------- Отправлено: 10:47, 10-02-2006 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Dirk Diggler
Цитата:
(уж извените) - а книжка по информатике чем мне поможет? как правильно восспринимать информацию с хелпов? думаю тут ни это нужно... мне нужна практика (ведь как известно, одна лишь практика даёт желаемые результаты почти в любом деле - а в програмировании тем более)... читать и понимать написанное, я умею, вот если бы написанно было кем-то не очень ленивым (или занятым?) чувалеком, было бы легче понимать. Ясное дело, что тем кто уже знает толк в этом деле (да и в любом другом), легче рассуждать и утверждать, что в хелпе, и в факе, и ещё где, написанно всё понятно - хотя для такого, можно сказать - чайника в сфере программирования как я сам, то что там пишут, и так как это пишут, далеко не понятно! (по крайней мере не всё!).Имхо, справку, которую переделали на русский, как будто с помощью словаря переделывали. Не то чтобы автор этой справки не знает английского, или программирования в AutoIt, я вовсе этого не утверждаю, просто считаю что можно было бы приложить немного больше усилии, ради такой весчи - как помощь по AutoIt'у!). P.S: Извеняюсь за офтоп! (если он таков есть). |
|
|
------- Отправлено: 13:01, 07-07-2006 | #191 |
|
Ветеран Сообщения: 565
|
Профиль | Сайт | Отправить 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)
|
|
------- Отправлено: 00:27, 08-07-2006 | #192 |
|
Пользователь Сообщения: 125
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
Цитата:
"Всему лучшему в себе я обязан книгам". А.М.Горький |
||
|
Отправлено: 07:15, 08-07-2006 | #193 |
|
Старожил Сообщения: 205
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
PS А тебе действительно поможет учебник для начинающих, так как само понятие циклов, условных переходов и т.д. одинаково для всех языков и начинать нужно с изучения основ. |
|
|
Отправлено: 12:39, 08-07-2006 | #194 |
|
Новый участник Сообщения: 20
|
Профиль | Отправить 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)
Хотя здесь и писалось хочу напомнить что StdoutRead работает только в последних беттах. P.P.S. bogomolv, VelDmi смотрел форум на сайте разработчиков, не нашёл таких решений как у Вас, хотя конечно все посты не читал но поиск поюзал основательно. Было бы неплохо закинуть код туда. |
|
Последний раз редактировалось ANGRO, 09-07-2006 в 05:05. Отправлено: 14:29, 08-07-2006 | #195 |
|
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Creat0R хелп не ругай коли чайник. Я сам полный самовар в программировании, как здесь советовали пробую сотни вариантов кода и методом научного тыка пытаюсь разобраться. ИМХО читать не люблю особенно учебники. А объяснять основы программирования справка не обязанна. Если мозги текут отпишись в PM гуру, здесь люди отзывчивые помогут. А вообще для того чтобы писать листинги на чистом листе уходят годы обучения. Так что если не готов закажи нужную весч у знающих людей. Кстати справочку человек переводил бесплатно и нужно сказать спасибо за человекачасы и применённые знания.
Извените не удержался. |
|
Отправлено: 15:05, 08-07-2006 | #196 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать bogomolv
Цитата:
|
|
|
------- Отправлено: 17:39, 08-07-2006 | #197 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать ANGRO
Цитата:
P.S: А у автора этой справки, прошу искринние извинения, у меня небыло намеринии оскорблять, или ругать работу кого либо! -Просто как сказал ANGRO, я есть Чайник в сфере программирования (или самовар ) |
|
|
------- Отправлено: 18:32, 08-07-2006 | #198 |
|
Новый участник Сообщения: 20
|
Профиль | Отправить 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
|
|
Последний раз редактировалось ANGRO, 09-07-2006 в 05:12. Отправлено: 20:39, 08-07-2006 | #199 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Кто-то может мне помочь со следующей задачей:
Нужно запустить прогрессБар, и чтобы он автоматом закрылся, в тот момент как завершит свою работу определённый запущенный процесс в системе (а точнее запущеный скрипт *.bat файла) - и если возможно, то чтобы в окне прогресс бара, была видна бегущая надпись, с текстом который я выберу. (если нет, то хотябы поместить этот текст обычно, как в MsgBox). Возможно таке осуществить? Есть ещё вопрос: При запуске диалога для выбора файла, возвращается значение в переменную $var (что-то в этом роде): Но когда я пытаюсь записать результат в файл: То файл (c.tmp) сохраняется в том каталоге, где и был выбран архив. Следовательно вопрос: Как мне осуществить сохранение файла (c.tmp), в текущем каталоге? т.е в том каталоге где и находится сам скрипт. Но чтобы ненужно было указывать полный путь, так как запускаться скрипт будет постоянно с разных мест. |
|
------- Отправлено: 03:34, 10-07-2006 | #200 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Открывая 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 | |
|