|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. |
|
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
|
(*.*) Сообщения: 36560 |
Внимание! В связи с созданием отдельного форума по 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 |
Новый участник Сообщения: 48
|
Профиль | Отправить PM | Цитировать А можно при помощи AutoIt запускать/останавливать службы Windows?
|
Отправлено: 23:52, 14-09-2008 | #891 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 07:36, 15-09-2008 | #892 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать FunkyByte
...или через WMI: Func _ServiceStart($sService, $sComputer = "localhost") Local $objWMI = ObjGet("winmgmts:\\" & $sComputer & "\root\cimv2") Local $sQuery = "Select * From Win32_Service Where Name Like '"& $sService &"'" Local $iRet, $colItems = $objWMI.ExecQuery($sQuery) For $objService In $colItems If $objService.State = "Stopped" Then $iRet = $objService.StartService($objService.Name) If $iRet=0 Then Return True ElseIf $objService.State = "Running" Then Return True EndIf Next Return False EndFunc Func _ServiceStop($sService, $sComputer = "localhost") Local $objWMI = ObjGet("winmgmts:\\" & $sComputer & "\root\cimv2") Local $sQuery = "Select * From Win32_Service Where Name Like '"& $sService &"'" Local $iRet, $colItems = $objWMI.ExecQuery($sQuery) For $objService In $colItems If $objService.State = "Running" Then $iRet = $objService.StopService($objService.Name) If $iRet=0 Then Return True ElseIf $objService.State = "Stopped" Then Return True EndIf Next Return False EndFunc |
Отправлено: 07:39, 15-09-2008 | #893 |
Новый участник Сообщения: 48
|
Профиль | Отправить PM | Цитировать Спасибо. Помогло.
|
Отправлено: 10:22, 15-09-2008 | #894 |
Пользователь Сообщения: 143
|
Профиль | Отправить PM | Цитировать Встала такая проблемка:
Есть 3 файла, называются они lico, func_1, func_2, код простой, так для примера: lico.au3 func_1.au3 func_2.au3 Смысл работы, как только я нажимаю кнопочку $button_for_func, два файлика func_1, func_2 должны запуститься и висеть в памяти и смотреть, что вписано в $input_for_func_1, $input_for_func_2 и в зависимости от того, что в них вписано выполнять те или иные предписания. Вроде просто, как мне казалось, а может оно так и есть, я может чего то недопонимаю. Что я делал, написал событие для кнопки $button_for_func сперва такое: #include <func_1.au3>, #include <func_2.au3>, даже заработало, правда только первый файл, ну тут ясно почему из-за бесконечного цикла... далее переправил на shellExecute("func_1.exe","","","open"), ShellExecute("func_2.exe","","","open"), нажал на кнопочку все туже и сразу же словил ошибку, переменные без объявления, хотя файлы просто были скомпилированы и в них я ничего не менял! я попробовал вообще через одно м..то сделать, создал ini и туда записывал, что считывал с $input_for_func_1, $input_for_func_2, а потом файлики func_2 и func_1 считывали из это ini делали, что нужно, записывали в эту же ini далее файл lico считывал из ini что ему пришло и вписывал эти данные куда надо. Это муторно и медленно работало. Такая проблема возникла из за того, что func_1 и func_2 реализуют алгоритм работы 2-х устройств, каждое устройство имеет свой алгоритм, свои задерки и так далее, вот и понадобилось создавать отдельные файлы. Подскажите, как все таки реализовать смысл работы? Спасибо. |
Последний раз редактировалось HORRIBLE, 16-09-2008 в 18:10. Отправлено: 17:59, 16-09-2008 | #895 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать HORRIBLE, всё просто, на мой взгляд у Вас геморный метод, но какой есть)
Вам нужно лишь добавить в каждую функцию (func_1.au3 и func_2.au3) объявления переменных func_1.au3 : Dim $input_for_func_1, $label_from_func_1 В func_2.au3 : Dim $input_for_func_2, $label_from_func_2 Также советую добавить в func_1.au3 и func_2.au3 такие строчки, только с разными символами, при повторном нажатии на кнопку запуска 2-х ехе программа будет выдавать сообщение о том, что такие процессы уже запущены if _Singleton("Символы характеризующие первую функцию",1) = 0 Then MsgBox(16, "Ошибка!", "Программа уже запущена.") Exit EndIf и немного переделать основной скрипт, так будет удобнее, если в основном цикле Вы будете что-то делать: #include <GUIConstantsEx.au3> HotKeySet("{ESC}","term") GUICreate("fgfgfgfgfgfgfgfg", 350, 150) $label_for_func_1 = GUICtrlCreateLabel("Sost func_1 ",10,10,60,20) $label_for_func_2 = GUICtrlCreateLabel("Sost func_2 ",10,50,60,20) $input_for_func_1 = GUICtrlCreateInput("0",100,10,60,20) $input_for_func_2 = GUICtrlCreateInput("0",100,50,60,20) $button_for_func = GUICtrlCreateButton("Turn on func_1 and 2",170,50,150,20) $label_from_func_1 = GUICtrlCreateLabel("",350,10,100,20) $label_from_func_2 = GUICtrlCreateLabel("",350,50,100,20) GUISetState() Opt("GUIOnEventMode", 1) ; Change to OnEvent mode GUISetOnEvent($GUI_EVENT_CLOSE, "term") GUICtrlSetOnEvent($button_for_func, "F1") ; таким образом, действия будут происходить лишь при нажатии на кнопки, получается что основной цикл свободен While 1 WEnd Func F1() Run("func_1.exe", "") Run("func_2.exe", "") EndFunc Func term() Exit EndFunc |
Отправлено: 19:22, 16-09-2008 | #896 |
Пользователь Сообщения: 143
|
Профиль | Отправить PM | Цитировать Рысь, увы, но непомогло ( добавление объявки переменных спасло лишь от ошибки, но не более.
Но за изменение кода спасибо. |
Отправлено: 21:49, 16-09-2008 | #897 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата HORRIBLE:
Цитата Рысь:
![]() |
||
------- Отправлено: 01:34, 17-09-2008 | #898 |
Пользователь Сообщения: 143
|
Профиль | Отправить PM | Цитировать Creat0R, еще 2-ва файлика появились из-за незнания,т.к. я не знал как сделать, чтобы команды вополняли с задержкой без использования sleep, конечно догадывался, что наверно можно, даже срашивал тут про таймер в милисекундах, но дальше неполучилось продвинуться, опять таки из-за незнания ).
|
Отправлено: 14:55, 17-09-2008 | #899 |
Новый участник Сообщения: 36
|
Профиль | Отправить PM | Цитировать Мужики , кто знает как послать Chr(0x00) через функцию CommSendString и что бы AUTOIT оптеделяла что это "0"?
|
Отправлено: 11:28, 18-09-2008 | #900 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[архив - Часть 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 |
|