Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

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

(*.*)


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


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

Профиль | Сайт | Отправить 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

 

Googler


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

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


трудт

- если для автозапуска использовать ключ реестра "HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx", то после перезагрузки (сразу после логона) система сама запустит прогу и удалит этот параметр из реестра;

- пример определения типа запуска скрипта (с параметром или без):
Код: Выделить весь код
If $CmdLine[0] Then
    ; этот кусок кода выполняется
    ; при запуске с любым параметром
    MsgBox(0,"","Скрипт запущен с параметром")
Else
    ; этот кусок кода выполняется
    ; при запуске без параметров
    MsgBox(0,"","Скрипт запущен без параметров")
EndIf

Отправлено: 07:29, 03-09-2008 | #831



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

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


Новый участник


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

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


я новичок в этом деле и пока недружу с регистром, можешь подробнее написать как к нему обратиться, самы суть я понял

Отправлено: 19:03, 03-09-2008 | #832


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

Ветеран


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

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


трудт
Смотри функцию RegWrite()

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


Отправлено: 07:24, 04-09-2008 | #833


Аватара для ganselo

Старожил


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

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


Народ хелп! я толька начал писать на AutoIT, нужна помощь.
Как сделать так чтобы после таго как я создал GUICtrlCreateButon(...) задать этой кнопки некие параметры. Я пробЫвал так:
GuiCtrlCreate(...) ;Создал окно
$Knopka = GUICtrlCreateButon(...) ;Создал кнопку
GUISetState(@SW_Show)
$NewWindow = GuiCtrlCreate(...) ;Это окно должно появить после таго как я нажал на кнопку
.......
.......
$GUISetState(@SW_Show)
while 1
local $msg
$msg = GuiGetMsg()
if $msg = $Knopka Then
$NewWindow
Endif
Wend

После того как я нажимаю на кнопку ни чего не происходит.
Что я делаю не так?

И ещё вопросик.
После того как я создал элемент GUICtrlCreateInput(...), мне нужно чтоб юзер ввёл в элемент Инпут какое то значение и чтоб программа могла использовать это эначение (т.е как считать, то что ввёл юзер. Это что то подобное функции Scanf() в Cи)

Сори, что не раскрасил и не привёл в норм вид текст... пишу на работе, нет возможности.

-------
К величайшему сожалению "история учит нас тому, что она ничему не учит".


Отправлено: 11:03, 05-09-2008 | #834


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

Ветеран


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

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


ganselo

1.
Код: Выделить весь код
#include <GuiConstantsEx.au3>

$hGUI_Main = GUICreate("Main GUI", 300, 200)

$AboutButton = GUICtrlCreateButton("About", 105, 50, 75, 23)

$hGUI_Child = GUICreate("Child GUI", 200, 100, -1, -1, -1, -1, $hGUI_Main)

GUISetState(@SW_SHOW, $hGUI_Main)

While 1
    $msg = GUIGetMsg(1)
    Select
        Case ($msg[0] = $GUI_EVENT_CLOSE) And ($msg[1] = $hGUI_Main)
            Exit
        Case ($msg[0] = $GUI_EVENT_CLOSE) And ($msg[1] = $hGUI_Child)
            GUISetState(@SW_ENABLE, $hGUI_Main)
            GUISetState(@SW_HIDE, $hGUI_Child)
        Case $msg[0] = $AboutButton
            GUISetState(@SW_DISABLE, $hGUI_Main)
            GUISetState(@SW_SHOW, $hGUI_Child)
    EndSelect
WEnd
2.
Смотри в справке функцию GuiCtrlRead()

Цитата:
Сори, что не раскрасил и не привёл в норм вид текст... пишу на работе
Дык, все на работе

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

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

Отправлено: 11:23, 05-09-2008 | #835


Аватара для ganselo

Старожил


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

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


Цитата Maza Faka:
Дык, все на работе »
Биг спс)

-------
К величайшему сожалению "история учит нас тому, что она ничему не учит".


Отправлено: 11:28, 05-09-2008 | #836


Аватара для ganselo

Старожил


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

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


ещё вопросик. Есть функция:
Код: Выделить весь код
Func ProcessControl()
	$i=ProcessWait("Explorer.exe")=0
	Do
		$i=$i+1
		ProcessWait("Explorer.exe")
		ProcessClose("Explorer.exe")

		$PID = ProcessExists("Explorer.exe")
		If $PID Then
			ProcessClose ($PID)
		EndIf
	until $i=1111111
EndFunc
И есть кнопка "START", после нажатия которой активируется функция ProcessControl().
Как сделать так чтобы после нажатия ещё одной кнопки "STOP", функция ProcessControl() заканчивала своё действие?

-------
К величайшему сожалению "история учит нас тому, что она ничему не учит".


Отправлено: 15:25, 05-09-2008 | #837


Новый участник


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

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


Начал 2 дня назад изучать автоит, все шло нормально, пока не решил сделать для программы оболочку... В общем такая проблема, не могу сделать так, что бы после нажатия кнопки "Старт" продолжалось выполнение скрипта по заданным в оболочке параметрам. Функцию кнопки "Старт" я оставил пустую, просто не знаю что туда записать. можно ли что-то сделать? Или придется весь скрипт переделать? До этого времени на оф сайте автоита искал нужную мне информацию, но сегодня он что-то не грузится,так что надеюсь на вашу помощь! Добавлю, что я не программист вообще, автоит это мой первый опыт, не судите строго


#include <GUIConstants.au3>
#include <Misc.au3>
#include <Fade.au3>

Opt("GUIOnEventMode", 1)
GUICreate("Test", 250, 200, 1024, 0)
GUISetBkColor(0xFFFFFF)
GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")
GUISetState(@SW_SHOW)

$tab=GUICtrlCreateTab (10,10, 230,180)

$tab2=GUICtrlCreateTabitem ("3")
GUICtrlCreateLabel ("3", 30,53,130,20)
$tab2combo=GUICtrlCreateCombo ("", 170,50,60,40)
GUICtrlSetData(-1,"40|30|20", "30") ; default 80%

$tab1=GUICtrlCreateTabitem ( "2")
GUICtrlCreateLabel ("2", 30,53,130,20)
$tab1combo=GUICtrlCreateCombo ("", 170,50,60,40)
GUICtrlSetData(-1,"70|80|90", "90") ; default 80%
$MHP=GUICtrlRead($tab1combo)

$tab0=GUICtrlCreateTabitem ("1")
GUICtrlSetState(-1,$GUI_SHOW) ; will be display first
GUICtrlCreateLabel ("X", 30,53,50,20)
GUICtrlCreateLabel ("Y", 30,103,50,20)
$tab0Start=GUICtrlCreateButton ("Save and Start", 10,150,115,20)
GUICtrlSetOnEvent(-1, "OKPressed")
$tab0Exit=GUICtrlCreateButton ("Exit", 125,150,115,20)
GUICtrlSetOnEvent(-1, "CancelPressed")
$tab01input=GUICtrlCreateInput ("X", 80,50,90,20)
$tab02input=GUICtrlCreateInput ("Y", 80,100,90,20)

GUICtrlCreateTabitem ("") ; end tabitem definition
GUISetState ()
$Acc = IniRead(@MyDocumentsDir & "\test.ini", "Enter", "X", "")
GUICtrlSetData($tab01input, $Acc)
$Pass = IniRead(@MyDocumentsDir & "\test.ini", "Enter", "Y", "")
GUICtrlSetData($tab02input, $Pass)

Func Write()
iniWrite(@MyDocumentsDir & "\test.ini", "Enter", "X", GUICtrlRead($tab01input))
IniWrite(@MyDocumentsDir & "\test.ini", "Enter", "Y", GUICtrlRead($tab02input))
$MHP=GUICtrlRead($tab1combo)
Select
Case $MHP= "70"
iniWrite(@MyDocumentsDir & "\test.ini", "Pup", "HP", "70")
Case $MHP= "80"
iniWrite(@MyDocumentsDir & "\test.ini", "Pup", "HP", "80")
Case $MHP= "90"
iniWrite(@MyDocumentsDir & "\test.ini", "Pup", "HP", "90")
EndSelect
$MHPex=GUICtrlRead($tab2combo)
Select
Case $MHPex= "20"
iniWrite(@MyDocumentsDir & "\test.ini", "Pup", "HPex", "20")
Case $MHPex= "30"
iniWrite(@MyDocumentsDir & "\test.ini", "Pup", "HPex", "30")
Case $MHPex= "40"
iniWrite(@MyDocumentsDir & "\test.ini", "Pup", "HPex", "40")
EndSelect

EndFunc

While 1
Write()
Wend

Func OKPressed()


; ВОТ СЮДА ЧТО ПИСАТЬ, ЧТО БЫ ЦИКЛ ПРЕРВАТЬ И ПРОДЛЖИТЬ ГРУЗИТЬ СКРАИПТ?


EndFunc


Func CancelPressed()
Exit
EndFunc

Func SpecialEvents()


Select
Case @GUI_CTRLID = $GUI_EVENT_CLOSE
Exit

Case @GUI_CTRLID = $GUI_EVENT_MINIMIZE

Case @GUI_CTRLID = $GUI_EVENT_RESTORE

EndSelect

EndFunc

Отправлено: 17:10, 05-09-2008 | #838


Аватара для Creat0R

Must AutoIt


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

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


Цитата:
Как сделать так чтобы после нажатия ещё одной кнопки "STOP", функция ProcessControl() заканчивала своё действие?
Нужно в самой функции проверять (но способ ещё зависит от режима OnEvent):

Код: Выделить весь код
#include <GuiConstants.au3>

Global $iProcCntrl_IsActive = False

$GUI = GUICreate("Test Script", 300, 200)
$Start_Button = GUICtrlCreateButton("Start", 20, 40, 60, 20)

GUISetState(@SW_SHOW, $GUI)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Start_Button
            If Not $iProcCntrl_IsActive Then
                $iProcCntrl_IsActive = True
                ProcessControl()
            EndIf
    EndSwitch
WEnd

Func ProcessControl()
    $i = ProcessWait("Explorer.exe") = 0

    $iOldOpt = Opt("GUIOnEventMode", 0) ;Это чтобы проверять событие нажатой кнопки (в случае испол. режима OnEvent)

    Do
        $i += 1
        ProcessWait("Explorer.exe")
        ProcessClose("Explorer.exe")

        $PID = ProcessExists("Explorer.exe")
        If $PID Then ProcessClose($PID)

        If GUIGetMsg() = $Start_Button Then
            $iProcCntrl_IsActive = False
            ExitLoop
        EndIf
    Until $i = 1111111

    Opt("GUIOnEventMode", $iOldOpt)
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

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

Отправлено: 17:13, 05-09-2008 | #839


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

Ветеран


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

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


ganselo
Объявляем глобальную переменную и при нажатии на кнопку стоп присваиваем ей какое нибудь значение. В цикле функции ProcessControl() проверяем значение этой переменной и, если оно соответствует нужному нам значению, выходим из функции
Код: Выделить весь код
Global $Stop = False

Func ProcessControl()
    $i=ProcessWait("Explorer.exe")=0
    Do
        If $Stop = True Then
            $Stop = False
            ExitLoop
        EndIf

        $i=$i+1
        ProcessWait("Explorer.exe")
        ProcessClose("Explorer.exe")

        $PID = ProcessExists("Explorer.exe")
        If $PID Then
            ProcessClose ($PID)
        EndIf
    until $i=1111111
EndFunc

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


Отправлено: 17:23, 05-09-2008 | #840



Компьютерный форум 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




 
Переход