|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [архив - Часть 2] AutoIt скрипты |
|
[архив - Часть 2] AutoIt скрипты
|
(*.*) Сообщения: 36568 |
Внимание! Тема переведена в архивное состояние Текущая тема http://forum.oszone.net/thread-98914.html (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе c AutoIt. ![]() Сайт программы Русская справка Коллекция AutoIt скриптов от Sanja Alone Коллекция AutoIt скриптов от MSFN (могут быть устаревшие). Справочник по командам rundll32 (команды запуска диалоговых окон и не только...) AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо). Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров. Цитата Vadikan:
|
||
------- Отправлено: 00:02, 05-02-2006 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать всем привет.
у меня тут такая проблемка возникла. Не могу понять как заставить программу считывать нажатую клавишу... подскажите плз как начать обработку события. пишу небольшой скриптик для сидюка. кому интересно(вот исходник): CDTray("K:", "open") Sleep(500) MsgBox(0,"insert disk","вставте диcк") WinActivate("insert disk") WinWaitClose("insert disk") CDTray("K:","close") MsgBox(4,"inf","Хотите посмотреть информацию о диске?") WinActivate("inf") $var=DriveGetFileSystem("K:") MsgBox(0,"info","файловая система диска:"& $var) WinActivate("info") WinWaitClose("info") $1= DriveGetLabel("K:") msgbox(0,"info1","Заголовок диска:"& $1) WinActivate("info1") WinWaitClose("info1") $2=DriveGetSerial("K:") MsgBox(0,"info2","серийный номер диска:"& $2) WinActivate("info2") WinWaitClose("info2") $3=DriveSpaceFree("K:") msgbox(0,"info3","свободного места: "& $3 & " MB") WinActivate("info3") WinWaitClose("info3") $4=DriveSpaceTotal("K:") MsgBox(0,"info4","всего места на диске: " & $4 & " MB") WinActivate("info4") |
Последний раз редактировалось Sanja Alone, 15-07-2007 в 14:43. Причина: добавление тэга code Отправлено: 16:35, 02-07-2007 | #121 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 565
|
Профиль | Сайт | Отправить PM | Цитировать как заставить контрол "метка"(Label) расширяться по мере смены в ней текста?
|
------- Отправлено: 19:35, 02-07-2007 | #122 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать Не знаю, может и был вопрос...
Возможно ли с помощью AutoIT послать клик мыши в неактивное окно (возможно и вовсе не видное на экране (не свёрнутое, но закрытое другим))??? Если можно, то как??? |
Отправлено: 19:51, 02-07-2007 | #123 |
Старожил Сообщения: 254
|
Профиль | Отправить PM | Цитировать Sandro Half-Dead
Всё, куда можно послать, Вам покажет программа AutoIt Window Info. Другого не дано. |
Отправлено: 20:52, 02-07-2007 | #124 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать GTeam
Цитата:
Я перепутал направление слешев, забыл что это урл в сети ![]() trigun Цитата:
У тебя в примере скрипт ожидает закрытия окна MsgBox... но пока на экране виден MsgBox, скрипт останавливается, поэтому все функции после него будут запущены только после его закрытия. См. справку по MsgBox(), эта команда возвращает значения, вот пример: $Ret = MsgBox(36, "Title", "Вы подтверждаете?") If $Ret = 6 Then MsgBox(0, "", "Да, вы подтвердили :)") If $Ret = 7 Then MsgBox(0, "", "Нет, вы не хотите подтверждать :)") Dirk Diggler Цитата:
![]() |
|||
------- Отправлено: 22:10, 02-07-2007 | #125 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Diamond
Цитата:
#include <array.au3> _ArrayDisplay(GetObjDescriptions("root\cimv2","Win32_Service"),'Win32_Service') Func GetObjDescriptions($strNameSpace, $strClass, $strComputer = ".") Local $objWMIService, $objClass, $strMOF, $array, $num, $out Local Const $wbemFlagUseAmendedQualifiers = 0x20000 Local Const $regExp = '\s\[(?:\\\]|[^]])*?Description\("((?:\\"|[^"])*)"(?:\\\]|[^]])*\] \w+ (\w+)' $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & _ $strComputer & "\" & $strNameSpace) $objClass = $objWMIService.Get($strClass, $wbemFlagUseAmendedQualifiers) $strMOF = $objClass.GetObjectText_ $array = StringRegExp($strMOF, $regExp, 3) $num = UBound($array)/2 Dim $out[$num+1][2] = [[$num]] For $i=1 To $num $out[$i][0] = $array[$i*2-1] $out[$i][1] = $array[$i*2-2] Next Return $out EndFunc |
|
Отправлено: 07:10, 03-07-2007 | #126 |
Ветеран Сообщения: 565
|
Профиль | Сайт | Отправить PM | Цитировать Вот такую библиотеку накалякал. Кому пригодится - пользуйтесь. Брать здесь .
Func _FileGetFileName($path) ; выделяет из полного пути и возвращает имя файла Func _FileGetDirPath($path) ; выделяет из полного пути и возвращает имя директории Func _GetDocumentsAndSettingsDir() ; возвращает полный путь к папке "Documents And Settings" Func _GetProfilesPath() ; возвращает массив строк с полными ключами к профилям пользователей этого компьютера Func _LocalGroupExist($us) ; Проверяет, существует ли ЛОКАЛЬНАЯ ГРУППА С ТАКИМ ИМЕНЕМ. возвращает ИСТИНУ/ЛОЖЬ Func _LocalUserExist($us) ; Проверяет, существует ли ЛОКАЛЬНЫЙ ПОЛЬЗОВАТЕЛЬ С ТАКИМ ИМЕНЕМ. возвращает ИСТИНУ/ЛОЖЬ Func _GetDomainOrWorkGroup() ; ВЕРНЕТСЯ ИМЯ ДОМЕНА, если не в домене - то рабочей группы. Func _GetWorkgroup() ; ТОЛЬКО РАБОЧАЯ ГРУППА, ДЛЯ ДОМЕННОГО КОМПА ВЕРНЕТСЯ ПУСТАЯ СТРОКА Func _JOINWORKGROUP($WG) ; вводит компьютер в Рабочую группу (имя передается параметром) Func _ShareFolder($dir,$name, $comment = '') ; создает общий ресурс. Func _GetShareInfoByNumber($i) ; Возвращает массив с инфой о шаре № $i или 0, если шар больше нет. В массиве по порядку ИМЯ, ПУТЬ, ТИП Func _GetShareInfoByName($name) ; Возвращает массив с инфой о шаре с данным именем или 0, если шар больше нет. В массиве по порядку ИМЯ, ПУТЬ, ТИП Func _GetShareInfoByPath($path) ; Возвращает массив с инфой о шаре данного каталога или 0, если шар больше нет. В массиве по порядку ИМЯ, ПУТЬ, ТИП Func _NoActiveStaticIP() ; возвращает истину/ложь. Если нет IP на рабочей, подключенной и т.п. карте Func _AllNetworkDevicesDisabled() ; возращает истину-ложь Func _RunVBS($vbs) ; запускает VBS-скрипт , переданный ему в кач-ве параметра. Func _RenameComputer($name) ; переименовывает компьютер Func _GetShortUserName($_user) ; возвращает короткое имя пользователя - т.е. для tega@office.local или OFFICE\tega результатом будет tega Func _CreateLocalGroup($gn) ; создает локальную группу с указанным именем Func _CreateLocalUser($us,$passw='') ; создает локального пользователя с указанным именем и паролем Func _ListLocalGroups($username) ; Возвращает массив со списком локальных групп, членом которых является указанный пользователь Func _JoinLocalgroup($us,$gr) ; добавляет пользователя в указанную локальную группу. Func _DomainUserInLocalGroup($UserName, $InGroup, $Domain='') ; проверяет, является ли пользователь членом локальной группы Func _GetStartedServicesAndDrivers() ; возвращает массив из имен запущенных сервисов и драйверов. Func _GetStartedServices() ; возвращает массив из имен запущенных сервисов. Func _GetStartedDrivers() ; возвращает массив из имен запущенных системных драйверов. Func _HostIsOk($host_) ; проверяет, пингуется ли хост. Возвр. истину-ложь Func _TCPServiceIsOk($_addr,$_port=0); Проверяет порт путем установления к нему соединения.возращает истину-ложь . Func _UDPServiceIsOk($_addr,$_port=0) ; Проверяет порт путем установления к нему соединения.возращает истину-ложь . Func _GetDns(ByRef $_dns1,ByRef $_dns2) ; заполняет переменные значениями и возвращает 0. В случае ошибки возвращает -1 Func _GetGateWay() ; возвращает адрес шлюза по умолчанию Func _GetIEProxy() ; возвращает настройки прокси-сервера из Internet Explorer в виде строка "ip-адрес:порт" Func _StringIsIp($str) ; проверяет, является ли строка ip-адресом. Возвр. истину-ложь Func _StringIsEmpty($str) ; проверяет, является ли строка пустой. Возвр. истину-ложь Func _HTTPget($url, $ProxyServer='', $ProxyUser = '' , $ProxyPass = '', $UseIntegratedSecurity = False) ; возвращает текст, полученный методом get протокола HTTP. Устанавливает флаг ошибки @error=0 в случае успеха, -1 в случае неудачи. Func _HTTPSetTimeOuts($tResolve = 30000,$tConnection = 30000,$tSendTimeout = 30000,$tReceive = 30000) ; устнавливает таймауты для HTTP-запроса |
------- Отправлено: 19:16, 03-07-2007 | #127 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Dirk Diggler
Цитата Dirk Diggler:
Цитата Creat0R:
Вот пример использования: #include <GUIConstants.au3> $text = "Text Label" $hGui = GUICreate("Test Label Size") $Label_1 = GUICtrlCreateLabel($text, 20, 20) GUICtrlSetFont(-1, 9, 400, 0, "Tahoma") $Button = GUICtrlCreateButton("Change Label", 20, 300) GUISetState() While 1 Switch GUIGetMsg() Case -3 Exit Case $Button $Text &= " and some more text, " GUICtrlSetData($Label_1, $Text) $TextLenght = _GetTextLabelWidth($Text, "Tahoma", 9) GUICtrlSetPos($Label_1, 20, 20, $TextLenght) EndSwitch WEnd Func _GetTextLabelWidth($s_WinText, $s_TextFont, $i_FontSize, $i_FontWeight = -1) Local Const $DEFAULT_CHARSET = 0 ; ANSI character set Local Const $OUT_CHARACTER_PRECIS = 2 Local Const $CLIP_DEFAULT_PRECIS = 0 Local Const $PROOF_QUALITY = 2 Local Const $FIXED_PITCH = 1 Local Const $RGN_XOR = 3 Local Const $LOGPIXELSY = 90 $h_WinTitle = "Get Label Width" If $i_FontWeight = "" Or $i_FontWeight = -1 Then $i_FontWeight = 600 ; default Font weight Local $h_GUI = GUICreate($h_WinTitle, 10, 10, -100, -100, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW) Local $hDC = DllCall("user32.dll", "int", "GetDC", "hwnd", $h_GUI) Local $intDeviceCap = DllCall("gdi32.dll", "long", "GetDeviceCaps", "int", $hDC[0], "long", $LOGPIXELSY) $intDeviceCap = $intDeviceCap[0] Local $intFontHeight = DllCall("kernel32.dll", "long", "MulDiv", "long", $i_FontSize, "long", $intDeviceCap, "long", 72) $intFontHeight = -$intFontHeight[0] Local $hMyFont = DllCall("gdi32.dll", "hwnd", "CreateFont", "int", $intFontHeight, _ "int", 0, "int", 0, "int", 0, "int", $i_FontWeight, "int", 0, _ "int", 0, "int", 0, "int", $DEFAULT_CHARSET, _ "int", $OUT_CHARACTER_PRECIS, "int", $CLIP_DEFAULT_PRECIS, _ "int", $PROOF_QUALITY, "int", $FIXED_PITCH, "str", $s_TextFont) DllCall("gdi32.dll", "hwnd", "SelectObject", "int", $hDC[0], "hwnd", $hMyFont[0]) Local $res = DllStructCreate("int;int") Local $ret = DllCall("gdi32.dll", "int", "GetTextExtentPoint32", "int", $hDC[0], "str", $s_WinText, "long", StringLen($s_WinText), "ptr", DllStructGetPtr($res)) Local $intLabelWidth = DllStructGetData($res,1) GUIDelete($h_GUI) Return $intLabelWidth EndFunc |
||
------- Отправлено: 04:43, 04-07-2007 | #128 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать amel27
Цитата:
Теперь я смогу написать gui для просмотра WMI - пространств имён и классов, которое (на мой взгляд) будет удобней всяких scriptomatic2 и подобных ему программ. Огромное спасибо! |
|
Отправлено: 05:05, 04-07-2007 | #129 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Dirk Diggler
Цитата:
Цитата:
Цитата:
![]() |
|||
------- Отправлено: 09:50, 04-07-2007 | #130 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? | DreDo | Хочу все знать | 4 | 01-12-2009 18:54 | |
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. | Vadikan | AutoIt | 1543 | 18-01-2009 10:46 | |
[Архив - Часть 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 |
|