|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. |
|
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
|
(*.*) Сообщения: 36561 |
Внимание! В связи с созданием отдельного форума по AutoIt, эта тема переводится в архивное состояние. Если у вас есть вопрос, создайте новую тему или поднимите существующую, если в ней обсуждается аналогичная проблема. Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь по AutoIt". Это и так понятно ![]() ![]() Сайт программы Русская справка Коллекция AutoIt скриптов от Sanja Alone Коллекция AutoIt скриптов от MSFN (могут быть устаревшие). Справочник по командам rundll32 (команды запуска диалоговых окон и не только...) AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо). Архивы старых тем по AutoIt или они же в 7z архиве (версии для печати) - 846 кб (настоятельно рекомендуется к прочтению/поиску) (он же прикреплен в шапке) Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров. Цитата Vadikan:
|
||
------- Отправлено: 00:02, 05-02-2006 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27,
Цитата amel27:
![]() Хотя всё ровно не логично... но также и не удевительно (для меня), я уже сталкивался с багами подобного характера (в более простых приминениях, сейчас точно не вспомню где конкретно). Как я понял всё же есть вариант на чистом AutoIt'е? проблема только в передаче параметра без кавычек? Пусть будут кавычки ![]() |
|
------- Отправлено: 05:43, 01-07-2008 | #691 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
Цитата:
![]() Цитата:
Цитата:
![]() |
||||
Отправлено: 07:16, 01-07-2008 | #692 |
Новый участник Сообщения: 33
|
Профиль | Отправить PM | Цитировать Цитата amel27:
![]() |
|
Отправлено: 19:59, 01-07-2008 | #693 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать amel27,
Нужна твоя помощь ![]() Global Const $RESOURCE_CONTEXT = 0x5 Global Const $RESOURCETYPE_DISK = 0x1 Global Const $NO_ERROR = 0 Global Const $ERROR_NO_MORE_ITEMS = 259 Global Const $ERROR_INVALID_ADDRESS = 487 $lpBuffer = DllStructCreate("dword[16384]") $pBuffer = DllStructCreate("hwnd") $aRet = DllCall("mpr.dll", "dword", "WNetOpenEnum", "dword", $RESOURCE_CONTEXT, "dword", $RESOURCETYPE_DISK, "dword", 0, "ptr", 0, _ "ptr", DllStructGetPtr($pBuffer)) If $aRet[0] <> $NO_ERROR Then MsgBox(16, "Error", "Dll call error") Exit EndIf $hWnd = DllStructGetData($pBuffer, 1) $aRet = DllCall("mpr.dll", "int", "WNetEnumResource", "hwnd", $hWnd, "dword", -1, _ "ptr", DllStructGetPtr($lpBuffer), "dword", DllStructGetSize($lpBuffer)) ConsoleWrite("!> Ret: " & $aRet[0] & @LF) DllCall("mpr.dll", "int", "WNetCloseEnum", "hwnd", $hWnd) WNetOpenEnum WNetEnumResource |
------- Отправлено: 12:20, 03-07-2008 | #694 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Maza Faka
примерно так, но функция сама не ищет во вложенных контейнерах, в твоем случае она возвратит только объект "Вся сеть" ![]() Global Const $NO_ERROR = 0 Global Const $ERROR_NO_MORE_ITEMS = 259 Global Const $ERROR_MORE_DATA = 234 Global Const $MAX_RESOURCES = 256 Global Const $NOT_A_CONTAINER = -1 Global Const $RESOURCETYPE_ANY = 0 Global Const $RESOURCETYPE_DISK = 1 Global Const $RESOURCETYPE_PRINT = 2 Global Const $RESOURCE_CONNECTED = 1 Global Const $RESOURCE_GLOBALNET = 2 Global Const $RESOURCE_REMEMBERED = 3 Global Const $RESOURCE_CONTEXT = 5 Func _WNet_EnumResource($iType = $RESOURCETYPE_ANY, $iScope = $RESOURCE_CONTEXT) Local $tBuf = DllStructCreate("hwnd"), $pBuf = DllStructGetPtr($tBuf) Local $aRet = DllCall("mpr.dll", "int", "WNetOpenEnum", "int", $iScope, "int", $iType, "int", 0, "ptr", 0, "ptr", $pBuf) If $aRet[0] Then Return SetError(2, $aRet[0]) Local $hEnum = DllStructGetData($tBuf,1) Local $tCount = DllStructCreate("int"), $pCount = DllStructGetPtr($tCount) Local $tBSize = DllStructCreate("int"), $pBSize = DllStructGetPtr($tBSize) DllStructSetData($tCount, 1, -1) $aRet = DllCall("mpr.dll", "int", "WNetEnumResource", "hwnd", $hEnum, "ptr", $pCount, "ptr", $pBuf, "ptr", $pBSize) If $aRet[0]=0 Then DllCall("mpr.dll", "int", "WNetCloseEnum", "hwnd", $hEnum) Return SetError(1, 0) ElseIf $aRet[0]<>$ERROR_MORE_DATA Then DllCall("mpr.dll", "int", "WNetCloseEnum", "hwnd", $hEnum) Return SetError(3, $aRet[0]) EndIf DllStructSetData($tCount, 1, -1) $tBuf = DllStructCreate("byte["& DllStructGetData($tBSize,1) &"]") $pBuf = DllStructGetPtr($tBuf) $aRet = DllCall("mpr.dll", "int", "WNetEnumResource", "hwnd", $hEnum, "ptr", $pCount, "ptr", $pBuf, "ptr", $pBSize) If $aRet[0] Then DllCall("mpr.dll", "int", "WNetCloseEnum", "hwnd", $hEnum) Return SetError(4, $aRet[0]) EndIf DllCall("mpr.dll", "int", "WNetCloseEnum", "hwnd", $hEnum) Return SetError(0, DllStructGetData($tCount,1), $tBuf) EndFunc |
Отправлено: 13:29, 04-07-2008 | #695 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать amel27
Спасибо за пример. А поиск во вложенных контейнерах сложная задача? |
------- Отправлено: 15:38, 04-07-2008 | #696 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать Информация к размышлению. Сам только что случайно увидел.
При копировании файла с одного диска на другой время последнего изменения у нового файла увеличивается на 1 секунду. Это происходит и при копировании в эксплорере, и в автоите функцией FileCopy. Можно этого как-нибудь избежать (кроме варианта с FileSetTime, менять время у кучи файлов непонтово)? |
Отправлено: 15:56, 04-07-2008 | #697 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать Mogidin
Вроде бы уже обсуждали такую проблему, поищи в версии для печати. |
------- Отправлено: 17:04, 04-07-2008 | #698 |
Пользователь Сообщения: 92
|
Профиль | Отправить PM | Цитировать Есть ли возможность принудительно завершить скрипт через какое-то время, если не были приняты никакие действия?
Сейчас я делаю это через задницу. У меня есть два скрипта один из которых запускает второй и через 20 секунд прибивает его. Но хочется сделать одним скриптом и покрасивее. С прогрессбаром. Вот код скрипта GuiCreate("Переименование учетной записи администратора", 300, 100) $name=GUICtrlCreateInput("",25,30) GuiCtrlCreateLabel("Введите имя Вашей учетной записи", 5, 1, 300, 10) $rename=GuiCtrlCreateButton("Переименовать", 10, 60, 100, 30) $chanel=GuiCtrlCreateButton("Отменить", 190, 60, 100, 30) $progressbar = GUICtrlCreateProgress (10,10,200,20) ; GUI MESSAGE LOOP GuiSetState() For $i = 1 To 100 GUICtrlSetData ($progressbar,(100 - $i)) Sleep(30) Next ProcessClose("Rename_User.exe") While 1 $msg = GUIGetMsg() Select Case $msg = $rename FileCopy("RENUSER.EXE",@SystemDir) Sleep (1000) Run("RENUSER.EXE Администратор " & GUICtrlRead($name)) Sleep (1000) FileDelete(@SystemDir & "\RENUSER.EXE") ExitLoop Case $msg = $GUI_EVENT_CLOSE ExitLoop Case $msg = $chanel ExitLoop EndSelect WEnd |
Отправлено: 19:09, 04-07-2008 | #699 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Понадобилась снова помощь по регулярным выражениям...
Имеем исходный код страницы (это только часть, оно повторяется по той же структуре далее): Нужно получить значения в массив либо между <div class="vldesc"> и </div>, либо между <div class="vldesc"><span id="BeginvidDesc.*?"> и </span>. Оно может встречаться и так и так, нужно получить текст описании роликов (это с YouTube исходник). Вот что должно быть на выходе: $avArray[0] = "WTTC <b>2008 table tennis</b> best points.... enjoy <b>...</b> WTTC <b>2008 table tennis</b> best points extreme ma lin <b>...</b>" $avArray[1] = "highlights of the <b>2008</b> Asian Olympic <b>Table Tennis</b> Qualification. You will enjoy it! It concludes Wang Nan and Wang Liqin <b>...</b>" #include <Array.au3> $sSource = FileRead("Src.txt") $avArray = StringRegExp($sSource, '(?i)(?s)<div class="vldesc">.*?[(<span id="BeginvidDesc.*?">|)](.*?)</span>', 3) _ArrayDisplay($avArray) Алексей Н., Цитата Алексей Н.:
|
|
------- Отправлено: 20:07, 04-07-2008 | #700 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[архив - Часть 2] AutoIt скрипты | Vadikan | AutoIt | 985 | 21-01-2008 09:58 | |
Вопрос - [Архив] Антивирусные программы - ОБЩИЕ ВОПРОСЫ | FOX RED | Защита компьютерных систем | 67 | 21-11-2007 15:05 | |
[Архив - Часть 1.3] AutoIt скрипты | biork | AutoIt | 503 | 09-06-2007 11:27 | |
[Архив - Часть 1.2] AutoIt скрипты | Dirk Diggler | AutoIt | 505 | 02-12-2006 11:00 | |
[Архив - Часть 1.1] AutoIt скрипты | EgOrus | AutoIt | 335 | 04-02-2006 16:58 |
|