Имя пользователя:
Пароль:
 | Правила  

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

Закрытая тема
Настройки темы
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

(*.*)


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


Конфигурация

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


Изменения
Автор: Vadikan
Дата: 21-01-2009
Описание: архив
Внимание!


В связи с созданием отдельного форума по AutoIt, эта тема переводится в архивное состояние. Если у вас есть вопрос, создайте новую тему или поднимите существующую, если в ней обсуждается аналогичная проблема.

Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь по AutoIt". Это и так понятно Заголовок темы должен быть осмысленным.



Сайт программы
Русская справка
Коллекция AutoIt скриптов от Sanja Alone
Коллекция AutoIt скриптов от MSFN (могут быть устаревшие).


Справочник по командам rundll32 (команды запуска диалоговых окон и не только...)

AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо).

Архивы старых тем по AutoIt или они же в 7z архиве (версии для печати) - 846 кб (настоятельно рекомендуется к прочтению/поиску)
(он же прикреплен в шапке)


Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров.
Цитата Vadikan:
В теме уже свыше 500 сообщений и поиск нужной информации в ней усложняется. Есть предложение собрать все решения (скрипты) и разместить их на Wiki по принципу "один скрипт - одна статья wiki", добавляя статьи в категорию Autoit. Речь, в принципе, идет об общих решениях, а не о скриптах для установки конкретной программы. Название статьи, очевидно, должно отражать назначение скрипта. Затем можно в шапке просто разместить ссылки на статьи Wiki.

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:02, 05-02-2006

 

Аватара для Maza Faka

Ветеран


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

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


NikLok
Сохраняй в *.ini файле, либо, если данных очень много - в реестре.

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 11:37, 12-03-2008 | #211



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

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


Ветеран


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

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


Maza Faka, Можно примерчик кода небольшой ! Я просто как подумаю о синтаксическом анализе и т.п.

Отправлено: 13:29, 12-03-2008 | #212


Аватара для Maza Faka

Ветеран


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

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


Цитата NikLok:
Можно примерчик кода небольшой »
Что-то вроде этого:
Код: Выделить весь код
#include <GuiConstants.au3>

Global $CfgFile = @ScriptDir & "\Config.ini"

Global $Input_State = IniRead($CfgFile, "Settings", "Input", "")
Global $Radio1_State = IniRead($CfgFile, "Settings", "Radio1", 4)
Global $Radio2_State = IniRead($CfgFile, "Settings", "Radio2", 4)
Global $CheckBox1_State = IniRead($CfgFile, "Settings", "CheckBox1", 4)
Global $CheckBox2_State = IniRead($CfgFile, "Settings", "CheckBox2", 4)

$hGUI = GUICreate("Test GUI", 320, 240)

$hInput = GUICtrlCreateInput("", 10, 10, 160, 20)
GUICtrlSetData(-1, $Input_State)

GUICtrlCreateGroup("Group", 10, 50, 160, 100)
$Radio1 = GUICtrlCreateRadio("Radio1", 20, 75, 60, 16)
GUICtrlSetState(-1, $Radio1_State)
$Radio2 = GUICtrlCreateRadio("Radio2", 20, 120, 60, 16)
GUICtrlSetState(-1, $Radio2_State)
GUICtrlCreateGroup("", -99, -99, 1, 1)

$CheckBox1 = GUICtrlCreateCheckbox("Param 1", 200, 75, 60, 20)
GUICtrlSetState(-1, $CheckBox1_State)

$CheckBox2 = GUICtrlCreateCheckbox("Param 2", 200, 120, 60, 20)
GUICtrlSetState(-1, $CheckBox2_State)

$AcceptButton = GUICtrlCreateButton("Ok", 10, 200, 60, 25)

$CancelButton = GUICtrlCreateButton("Cancel", 250, 200, 60, 25)

GUISetState()

While 1
    $msg = GUIGetMsg()

    Switch $msg
    Case $GUI_EVENT_CLOSE, $CancelButton
        ExitLoop
    Case $AcceptButton
        _SaveCfg()
        ExitLoop
    EndSwitch
WEnd

Func _SaveCfg()
    IniWrite($CfgFile, "Settings", "Input", GUICtrlRead($hInput))
    IniWrite($CfgFile, "Settings", "Radio1", GUICtrlRead($Radio1))
    IniWrite($CfgFile, "Settings", "Radio2", GUICtrlRead($Radio2))
    IniWrite($CfgFile, "Settings", "CheckBox1", GUICtrlRead($CheckBox1))
    IniWrite($CfgFile, "Settings", "CheckBox2", GUICtrlRead($CheckBox2))
EndFunc

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:51, 12-03-2008 | #213


Аватара для Creat0R

Must AutoIt


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

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


Maza Faka,
Цитата:
Что-то вроде этого:
Неплохой пример, я тоже так почти всегда делаю, но хотел подметить несколько моментов...

* Если чекбоксов и т.п. много, то пока главное окно программы закроется пройдёт время, поэтому перед записью всегда лучше скрывать окно (GUISetState(@SW_HIDE, $hGUI) но не в коем случае не удалять, т.к чтение контролов приведёт к нулевому значению).
* В Ini-шку можно и не записывать “реальные” значения (для чекбокса к примеру, это 1 и 4), можно было бы сделать что-то в этом духе:

Код: Выделить весь код
Func _SaveCfg()
    GUISetState(@SW_HIDE, $hGUI)

    $Input_Data = GUICtrlRead($hInput)
    $Radio1_State = Number(GUICtrlRead($Radio1) = $GUI_CHECKED)
    $Radio2_State = Number(GUICtrlRead($Radio2) = $GUI_CHECKED)
    $CheckBox1_State = Number(GUICtrlRead($CheckBox1) = $GUI_CHECKED)
    $CheckBox2_State = Number(GUICtrlRead($CheckBox2) = $GUI_CHECKED)

    IniWrite($CfgFile, "Settings", "Input", $Input_Data)
    IniWrite($CfgFile, "Settings", "Radio1", $Radio1_State)
    IniWrite($CfgFile, "Settings", "Radio2", $Radio2_State)
    IniWrite($CfgFile, "Settings", "CheckBox1", $CheckBox1_State)
    IniWrite($CfgFile, "Settings", "CheckBox2", $CheckBox2_State)
EndFunc

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

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

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

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:42, 12-03-2008 | #214


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


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

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


как с симулировать нажатие колесика?

как нажимать на конопку на сайте *в опере) адрес ссылки http://www.*.com/index.php?ext=searc...d=1498&start=* (меняется) и текст имеет ">"

Отправлено: 22:14, 12-03-2008 | #215


Ветеран


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

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


Creat0R,
Цитата Creat0R:
Если чекбоксов и т.п. много »
Хаачу гуй для winnt.sif. !!! Сам понимаю что поздновато, но к сожалению нужон!
Соотв. чекбоксов стоко же скоко параметров!

Цитата Creat0R:
В Ini-шку можно и не записывать “реальные” значения (для чекбокса к примеру, это 1 и 4), »
Даже более того там же значения 1 или 0, Yes или No. Значит млин еще дополнит. обработка будет?! Или имеются какие нить механизмы?!

Creat0R,
Цитата Creat0R:
GUISetState(@SW_HIDE, $hGUI) »
То есть что получается что $hGUI глобальная переменная? Аесли параметром передавать?!

Чуствую этот материал на вики страничку по автоиту просится?

Последний раз редактировалось NikLok, 12-03-2008 в 23:36.


Отправлено: 22:18, 12-03-2008 | #216


Аватара для Creat0R

Must AutoIt


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

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


NikLok,
Цитата:
там же значения 1 или 0
Это после моей обработки

Цитата:
имеются какие нить механизмы?!
Не уверен что понимаю что тут спрашивается? - все записи нужно делать вручную, это самый надёжный метод.

Цитата:
получается что $hGUI глобальная переменная?
Поскольку она обьявлена в начале скрипта (не в циклах или в функциях/условиях), то она считается глобальной, хотя надёжнее всё же обьявлять её (Global $hGUI = ...)

Цитата:
Аесли параметром передавать?!
Можно конечно.

Цитата:
Чуствую этот материал на вики страничку по автоиту просится?
Кто бы этим занялся, у меня если честно времени не хватает (желание есть немернное ).

DENoszone,
Цитата:
как с симулировать нажатие колесика?
MouseClick("Middle") ?

Цитата:
как нажимать на конопку на сайте *в опере
Внешними средствами в Opera проблематично. Кстати по этой теме (по Opera) написал библиотеку автоматизации.

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

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

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


Отправлено: 00:15, 13-03-2008 | #217


Ветеран


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

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


Цитата Creat0R:
все записи нужно делать вручную, это самый надёжный метод. »
Вот и получился у меня тупой, но надежный код аж на 1 500 строк только для секции Components !!!

Отправлено: 01:32, 13-03-2008 | #218


Аватара для Maza Faka

Ветеран


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

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


Цитата NikLok:
Вот и получился у меня тупой, но надежный код аж на 1 500 строк только для секции Components »
Неужели нужно вырезать столько компонентов? Для чего?

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 08:33, 13-03-2008 | #219


Ветеран


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

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


Maza Faka,
Цитата Maza Faka:
столько компонентов? Для чего? »
А ля winnt.sif users manager.

Вот вырезка для 2-х компонент:
Код: Выделить весь код
#include <GuiConstants.au3>
Global $CfgFile = "winnt.sif"
Global $AccessOpt_state = "On"
Global $Appsrv_console_state = "Off"

$hGUI = GuiCreate("WIndows XP winnt.Sif managers - feesh 0.0.1", 1020, 620)

GuiCtrlCreateTabItem("Components")
;CreateGUI
$AccessOpt = GUICtrlCreateCheckbox("AccessOpt",35,50,210,15)
GUICtrlSetState($AccessOpt,$GUI_UNCHECKED)

$Appsrv_console = GUICtrlCreateCheckbox("Appsrv_console",35,70,210,15)
GUICtrlSetState($Appsrv_console,$GUI_UNCHECKED)

; GUI MESSAGE LOOP
GuiSetState()
While GuiGetMsg() <> $GUI_EVENT_CLOSE
WEnd

Func _LoadCfg()
	$State = IniRead($CfgFile,"Settings","AccessOpt","Off")
	If $State == "On" Then
		$AccessOpt_State=$GUI_CHECKED
		;GUICtrlSetState($AccessOpt,$GUI_CHECKED)
	Else
		$AccessOpt_State=$GUI_UNCHECKED
		;GUICtrlSetState($AccessOpt,$GUI_UNCHECKED)
	EndIf
	$State = IniRead($CfgFile,"Settings","Appsrv_console","Off")
	If $State == "On" Then
		$Appsrv_console_State=$GUI_CHECKED
		;GUICtrlSetState($Appsrv_console,$GUI_CHECKED)
	Else
		$Appsrv_console_State=$GUI_UNCHECKED
		;GUICtrlSetState($Appsrv_console,$GUI_UNCHECKED)
	EndIf
EndFunc

Func _SaveCfg()
    GUISetState(@SW_HIDE, $hGUI)
	If GUICtrlRead($AccessOpt) = $GUI_CHECKED Then
		$AccessOpt_State="On"
	Else
		$AccessOpt_State="Off"
	EndIf
    IniWrite($CfgFile,"Settings","AccessOpt",$AccessOpt_State)
	If GUICtrlRead($Appsrv_console) = $GUI_CHECKED Then
		$Appsrv_console_State="On"
	Else
		$Appsrv_console_State="Off"
	EndIf
    IniWrite($CfgFile,"Settings","Appsrv_console",$Appsrv_console_State)
EndFunc
Exit
При грубой прикидке получаем 20-25 строк на параметр.
Очень мне не нравится забор из конструкций - GUICtrlCreateCheckbox("AccessOpt",35,50,210,15)
Особенно задание абсолютных координат. Ну ладно, допустим заменю на переменные с инкрементом по вертикали и горизонтали, но возникают проблемы если захочется делать окно масштабируемым?! Сейчас что бы вывести все компоненты без скролинга требуется окно шириной в 1000!
А если монитор не поддерживает такого разрешения! Кто как решает проблему масштабируемости?

Еще почему-то при проведении мышкой над чекбоксом его подпись меняет фон на темно серый! Как отключить?

Как задать высоту табов создаваемых при помощи GuiCtrlCreateTabItem ?!?!

Кто нить достал книгу по autoit - AutoIt v3: Your Quick Guide (Andy Flesner, O'Reilly)
Очень хочется электронный вариант!!!

Последний раз редактировалось NikLok, 13-03-2008 в 13:01.


Отправлено: 11:52, 13-03-2008 | #220



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[архив - Часть 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




 
Переход