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

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

Закрытая тема
Настройки темы
[архив - Часть 2] AutoIt скрипты

(*.*)


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


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

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


Изменения
Автор: Vadikan
Дата: 27-01-2008
Внимание!
Тема переведена в архивное состояние







(настоятельно рекомендуется к прочтению/поиску)


Руководство к действию по работе c AutoIt.


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

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



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

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

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

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

 

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


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

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


Creat0R, указал рабочую папку и запустился VBS-скрипт. Спасибо!

Отправлено: 08:59, 26-12-2007 | #911



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

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


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

Ветеран


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

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


Creat0R
Привет! Не поможешь?
Никак не получается убить процесс средствами WinAPI

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

Process_Kill("totalcmd.exe")

Func Process_Kill($sProc)
    Local $ProcHandle
    Local $ProcessPid = ProcessExists($sProc)
    If $ProcessPid = 0 Then
        MsgBox(16, "Error", "Process " & $sProc & " not exist")
        Return SetError(1)
    EndIf

    $ProcHandle = DllCall("kernel32.dll", "hwnd", "OpenProcess", "dword", BitOR(0x0400, 0x0004), "int", 0, "dword", $ProcessPid)

    If $ProcHandle[0] = 0 Then
        MsgBox(16, "Error", "Process " & $sProc & " not exist")
        Return SetError(1)
    EndIf

    $ProcHandle = $ProcHandle[0]

    $ProcTerminate = DllCall("kernel32.dll", "int", "TerminateProcess", "hwnd", $ProcHandle, "uint", "?")

    $CloseHandle = DllCall("kernel32.dll", "int", "CloseHandle", "hwnd", $ProcHandle)
    ConsoleWrite("@@ (6) : " & $CloseHandle[0] & "       ")
EndFunc
В выделенной строке в место параметра "?", надо вставить
Цитата:
uExitCode

The exit code to be used by the process and threads terminated as a result of this call. Use the GetExitCodeProcess [ http://msdn2.microsoft.com/en-us/lib...,printer).aspx ] function to retrieve a process's exit value. Use the GetExitCodeThread [ http://msdn2.microsoft.com/en-us/lib...,printer).aspx ] function to retrieve a thread's exit value.
Цитата:
GetExitCodeProcess Function


Retrieves the termination status of the specified process.
BOOL WINAPI GetExitCodeProcess(
__in HANDLE hProcess,
__out LPDWORD lpExitCode
);
Parameters
hProcess

A handle to the process.

The handle must have the PROCESS_QUERY_INFORMATION access right. For more information, see Process Security and Access Rights [ http://msdn2.microsoft.com/en-us/lib...,printer).aspx ] .
lpExitCode

A pointer to a variable to receive the process termination status. If the specified process has not terminated and the function succeeds, the status is STILL_ACTIVE.
Как я понял нужно создать структуру Dll, а вот как её создать?

Отправлено: 09:31, 27-12-2007 | #912


Аватара для Creat0R

Must AutoIt


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

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


Maza Faka,
Цитата:
В выделенной строке в место параметра "?", надо вставить
Там должен быть код (по сути ptr - указатель) выхода от GetExitCodeProcess ... если я не ошибаюсь... у меня тоже не получается заставить это работать, либо скрипт крушится, либо процесс не убивается. DLL-о-писание видимо будет доходить (до меня по крайней мере) долго, т.к мануалов по этой теме вроде нету, я имею в виду именно для использования в AutoIt, а так приходится включать интуицию/способности "тыкания" .

На оф. форуме решения тоже нет, там ссылаются на C/C++, а на AutoIt перевести видимо ленятся

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

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

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


Отправлено: 10:39, 27-12-2007 | #913


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

Ветеран


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

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


Creat0R
Цитата:
Там должен быть код (по сути ptr - указатель) выхода от GetExitCodeProcess
Это понятно, что нужно указать pointer, а вот как его создать? (amel27 где ты гуру?)

Цитата:
а так приходится включать интуицию/способности "тыкания"
Вот-вот, всё утро на это убил...

P.S.
Если вдруг наткнёшься на решение, сообщи пожалуйста.

Отправлено: 10:55, 27-12-2007 | #914


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

Ветеран


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

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


Ура! Нашёл, вернее указали на ошибку. А ошибочное значение из недобросовестного ресурса, уже не помню какого.

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


Отправлено: 13:11, 27-12-2007 | #915


Аватара для Creat0R

Must AutoIt


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

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


Функция возвращает пронумерованный список всех классов определённого окна:

Код: Выделить весь код
Func _WinGetNumeratedClassList($sTitle)
    Local $sClassList = WinGetClassList($sTitle)
    Local $aClassList = StringSplit($sClassList, @LF)
    Local $sRetClassList = "", $sHold_List = "|"
    Local $aiInHold, $iInHold

    For $i = 1 To UBound($aClassList) - 1
        If $aClassList[$i] = "" Then ContinueLoop

        If StringRegExp($sHold_List, "\|" & $aClassList[$i] & "~(\d+)\|") Then
            $aiInHold = StringRegExp($sHold_List, ".*\|" & $aClassList[$i] & "~(\d+)\|.*", 1)
            $iInHold = Number($aiInHold[UBound($aiInHold)-1])

            If $iInHold = 0 Then $iInHold += 1

            $aClassList[$i] &= "~" & $iInHold + 1
            $sHold_List &= $aClassList[$i] & "|"

            $sRetClassList &= $aClassList[$i] & @LF
        Else
            $aClassList[$i] &= "~1"
            $sHold_List &= $aClassList[$i] & "|"
            $sRetClassList &= $aClassList[$i] & @LF
        EndIf
    Next

    Return StringReplace(StringStripWS($sRetClassList, 3), "~", "")
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


Отправлено: 07:53, 28-12-2007 | #916


Аватара для Creat0R

Must AutoIt


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

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


amel27,

Не удаётся в новой версии AutoIt 3.2.10.0 переделать самопальную функцию _FileSelectFolder() - хотел избавиться от CallBack UDF'ов, соответственно использовать встроенные функции, но при запуске скрипт намертво виснит, диалога невидно вовсе

Я заменил...

_DllCallBack($sCallbackProc,'hwnd;uint;long;ptr')

на

DllCallBackRegister($sCallbackProc, 'int', 'hwnd;uint;long;ptr')

А также _DllCallBack_Free на DllCallBackFree

И убрал все UDF'ы/переменные/константы от библиотеки CallBack, но видимо нужно что-то ещё править, подскажи плиз что именно, у меня многие скрипты используют эту функцию, я затрудняюсь теперь пересесть на новую версию .

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

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

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


Отправлено: 03:14, 30-12-2007 | #917


Ветеран


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

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


Никто не пробовал написать скрипт для Nero 8? А то втихую не получается, требует перезагрузку даже при включенном автоматическом обновлении. Может кто попробует, у кого время есть?
Заранее спасибо!

Отправлено: 15:25, 01-01-2008 | #918


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


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

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


Хорошо пополняются посты в этом топике

Помогите реализовать корректно работающий скрипт с тикими требованиями:
Лечилка для одной RPG игры. Все происходит в разрешении 1024х786

1. В определенных координатах если изменился цвет, то нажимание клавиши Q происходит с интервалом 0.5 секунды пока невернется снова красный цвет (q клавиша это пить баночки жизьни). И в это же самое время нажимать клавишу E (e элексир силы)
2. Очень важно чтоб при этом была всегда зажата правая кнопка мышки (почемуто у меня никак неполучается реализовать в действии с другими командами)
3. Как реализовать чтоб работало внезависимости если 32 бит или 16 цвет?

Поискал по форуму здесь и на офф. сайте вот нашел скрипт но в нем часть задумки реализована. Кстати он неработает тоесть не нажимает на кнопки.
PHP код: Выделить весь код

Opt("WinTitleMatchMode"1)


HotKeySet("{F5}""Start")

While 
1
    Sleep
(10)
WEnd

Func Start
()
        
MsgBox(0,"","Start() triggered")
        
$left PixelChecksum(380420400400)
        
ConsoleWrite($left & @CRLF)
        
$down PixelChecksum(450420470400)
        
ConsoleWrite($down & @CRLF)
        
$up PixelChecksum(520420535410)
        
ConsoleWrite($up & @CRLF)
        
$right PixelChecksum(590415585400)
        
ConsoleWrite($right & @CRLF)
    While 
1  
        
If $left <> PixelChecksum(380420400400Then Send("q")
        If 
$down <> PixelChecksum(450420470400Then Send("e")
        If 
$up <> PixelChecksum(520420535410Then Send("w")
        If 
$right <> PixelChecksum(590415585400Then Send("t")
    
WEnd
EndFunc 


Отправлено: 23:51, 01-01-2008 | #919


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

Ветеран


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

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


kagorec
С Новым Годом!

Цитата:
1. В определенных координатах если изменился цвет, то нажимание клавиши Q происходит с интервалом 0.5 секунды пока невернется снова красный цвет (q клавиша это пить баночки жизьни). И в это же самое время нажимать клавишу E (e элексир силы)
В принципе написать такой скрипт несложно, в топике есть примеры.

Цитата:
2. Очень важно чтоб при этом была всегда зажата правая кнопка мышки (почемуто у меня никак неполучается реализовать в действии с другими командами)
Смотри в справке MouseDown()

Цитата:
3. Как реализовать чтоб работало внезависимости если 32 бит или 16 цвет?
Можно после запуска игры определять глубину цвета рабочего стола @DesktopDepth и в зависимости от результата передавать значение в функцию.

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


Отправлено: 08:44, 02-01-2008 | #920



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

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

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




 
Переход