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

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

 

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


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

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


Подскажите пожалуйсто, как узнать URL странички которая уже открыта ? Т.е. мне нужно узнать адрес странички на которой сейчас находится пользователь.


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

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

Global Const $WH_KEYBOARD_LL = 13
Global $hHook, $pStub_KeyProc
Global $pStub_KeyProc = _DllCallBack ("_KeyProc","int;ptr;ptr")
Global $hmod = DllCall("kernel32.dll","hwnd","GetModuleHandle","ptr",0)
Global $hHook = DllCall("user32.dll","hwnd","SetWindowsHookEx","int", _
            $WH_KEYBOARD_LL,"ptr",$pStub_KeyProc,"hwnd",$hmod[0],"dword",0)
Global $buffer = ""

MsgBox(4096,"","Type anything anywhere and it will appear in the top left corner of the screen.")


While 1
    Sleep(10)
WEnd

Func EvaluateKey($keycode)
    If (($keycode > 22) And ($keycode < 91)) _
        Or (($keycode > 47) And ($keycode < 58)) Then
        $buffer &= Chr($keycode)
        ToolTip($buffer,0,0)
    ElseIf ($keycode > 159) And ($keycode < 164) Then
        Return
    EndIf
EndFunc

Func _KeyProc($nCode, $wParam, $lParam)
    Local $ret,$KEYHOOKSTRUCT
    If $nCode < 0 Then
        $ret = DllCall("user32.dll","long","CallNextHookEx","hwnd",$hHook[0], _
                        "int",$nCode,"ptr",$wParam,"ptr",$lParam)
        Return $ret[0]
    EndIf
    If $wparam = 256 Then
        $KEYHOOKSTRUCT = DllStructCreate("dword;dword;dword;dword;ptr",$lParam)
        EvaluateKey(DllStructGetData($KEYHOOKSTRUCT,1))
    EndIf
    $ret = DllCall("user32.dll","long","CallNextHookEx","hwnd",$hHook[0], _
                    "int",$nCode,"ptr",$wParam,"ptr",$lParam)
    Return $ret[0]
EndFunc

Func OnAutoItExit()
    DllCall("user32.dll","int","UnhookWindowsHookEx","hwnd",$hHook[0])
EndFunc
, но у меня почему то выпадает ошибка.... #include <DllCallBack.au3> (ошибка открытия файла) из -за чего это может быть, стоит последняя версия AUTO IT.

DENoszone, можно изголиться вот так ))(т.к. по нормальному не получилось написать, вечно спрашивал заблочить ли ему пользователя или нет),
читать дальше »

Код: Выделить весь код
#include <IE.au3>
for $i =0 to 10
 $oIE = _IECreate("http://odnoklassniki.km.ru/my/mail/message.asp?iduser=120000"&$i)
 WinSetState($oIE, "",@SW_SHOWMAXIMIZED)
 _IELoadWait ($oIE,1000,60000)
 MouseClick("LEFT",440,485)
 Send("SPAM SPAM") 
 MouseClick("LEFT",870,571)
 _IELoadWait ($oIE,1000,60000)
 _IEQuit ($oIE)
Next
, только одно но, отправляются одни латинские буквы нормально, русские идут кракозяброй и иногда пролетает с нажатием на кнопку.

Отправлено: 17:01, 10-06-2008 | #631



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

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


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

Ветеран


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

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


Цитата HORRIBLE:
пример мониторинга нажатия клавиш на клавиатуре »
Начиная с версии 3.2.10.0 DllCallBack функции включены в AutoIt по умолчанию (так сказать стали нативными), соответсвенно нужно немного исправить скрипт:
Код: Выделить весь код
Global Const $WH_KEYBOARD_LL = 13
Global $hHook, $pStub_KeyProc
Global $pStub_KeyProc = DllCallbackRegister("_KeyProc", "int", "int;ptr;ptr")
Global $hmod = DllCall("kernel32.dll","hwnd","GetModuleHandle","ptr",0)
Global $hHook = DllCall("user32.dll","hwnd","SetWindowsHookEx","int", _
            $WH_KEYBOARD_LL,"ptr",DllCallbackGetPtr($pStub_KeyProc),"hwnd",$hmod[0],"dword",0)
Global $buffer = ""

MsgBox(4096,"","Type anything anywhere and it will appear in the top left corner of the screen.")

While 1
    Sleep(10)
WEnd

Func EvaluateKey($keycode)
    If (($keycode > 22) And ($keycode < 91)) _
        Or (($keycode > 47) And ($keycode < 58)) Then
        $buffer &= Chr($keycode)
        ToolTip($buffer,0,0)
    ElseIf ($keycode > 159) And ($keycode < 164) Then
        Return
    EndIf
EndFunc

Func _KeyProc($nCode, $wParam, $lParam)
    Local $ret,$KEYHOOKSTRUCT
    If $nCode < 0 Then
        $ret = DllCall("user32.dll","long","CallNextHookEx","hwnd",$hHook[0], _
                        "int",$nCode,"ptr",$wParam,"ptr",$lParam)
        Return $ret[0]
    EndIf
    If $wparam = 256 Then
        $KEYHOOKSTRUCT = DllStructCreate("dword;dword;dword;dword;ptr",$lParam)
        EvaluateKey(DllStructGetData($KEYHOOKSTRUCT,1))
    EndIf
    $ret = DllCall("user32.dll","long","CallNextHookEx","hwnd",$hHook[0], _
                    "int",$nCode,"ptr",$wParam,"ptr",$lParam)
    Return $ret[0]
EndFunc

Func OnAutoItExit()
    DllCall("user32.dll","int","UnhookWindowsHookEx","hwnd",$hHook[0])
EndFunc
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:42, 10-06-2008 | #632


Аватара для Creat0R

Must AutoIt


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

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


HORRIBLE,
Цитата HORRIBLE:
нужно узнать адрес странички на которой сейчас находится пользователь »
Это зависит от того какой браузер используется. С IE всё просто:

Код: Выделить весь код
$URL = ControlGetText("[CLASS:IEFrame]", "", "Edit1")

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

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

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:57, 10-06-2008 | #633


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


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

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


Можно ли вернуть список запущенных процессов ПОЛЬЗОВАТЕЛЕМ ?

Отправлено: 16:32, 11-06-2008 | #634


Аватара для Creat0R

Must AutoIt


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

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


HORRIBLE,
Цитата HORRIBLE:
Можно ли вернуть список запущенных процессов ПОЛЬЗОВАТЕЛЕМ ? »
Можно:

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

$aProcessInfo = _ProcListByUserName(@UserName)
_ArrayDisplay($aProcessInfo)

Func _ProcListByUserName($sUserName = @UserName)
    Local $oColItems, $objWMIService, $objItem, $cI_Compname = @ComputerName
    Local $aProcessList[1]

    $objWMIService = ObjGet("winmgmts:\\" & $cI_Compname & "\root\CIMV2")
    $oColItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Process", "WQL")

    If Not IsObj($oColItems) Then Return SetError(1, 2, 0)

    For $objItem In $oColItems
        If $objItem.CSName <> $sUserName Then ContinueLoop

        $aProcessList[0] += 1
        ReDim $aProcessList[$aProcessList[0] + 1]
        $aProcessList[$aProcessList[0]] = $objItem.Name
    Next

    Return $aProcessList
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

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

Отправлено: 20:30, 11-06-2008 | #635


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


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

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


Creat0R, возвращает массив пустой, хотя у меня запущено некое кол-во программ от пользователя.

Отправлено: 12:55, 12-06-2008 | #636


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

Ветеран


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

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


Вышла версия 3.2.12.1
Изменений мало, только фиксы:
Цитата:
http://www.autoitscript.com/autoit3/downloads.shtml

3.2.12.1 (12th June, 2008) (Release)

AutoIt:
- Fixed #309: RunAs() and RunAsWait() now use @SystemDir as the working directory instead of @WorkingDir when a user-supplied working directory is not specified.
- Fixed #325: contextmenuitem not firing events.
- Fixed #282: Icon transparency refresh when on tab regression.
- Fixed #360: RunAs() under Windows 2000.


As the 3.2.12.x branch will be the last version compatible with NT4 and 9x we have backported a few of the most important recent fixes into this release.
Creat0R
HORRIBLE
Цитата:
возвращает массив пустой, хотя у меня запущено некое кол-во программ от пользователя
У меня тоже не работает.

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


Отправлено: 13:48, 12-06-2008 | #637


Аватара для Creat0R

Must AutoIt


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

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


HORRIBLE,
Цитата HORRIBLE:
возвращает массив пустой »
Можно ещё так:

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

$aProcessInfo = _ProcListByUserName(@UserName)
_ArrayDisplay($aProcessInfo)

Func _ProcListByUserName($sUserName = @UserName)
    Local $oColItems, $objWMIService, $objItem, $cI_Compname = @ComputerName
    Local $aProcessList[1]

    $objWMIService = ObjGet("winmgmts:\\" & $cI_Compname & "\root\CIMV2")
    $oColItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Process", "WQL")

    If Not IsObj($oColItems) Then Return SetError(1, 2, 0)

    For $objItem In $oColItems
        If _GetExtProperty($objItem.ExecutablePath, 8) <> $sUserName Then ContinueLoop

        $aProcessList[0] += 1
        ReDim $aProcessList[$aProcessList[0] + 1]
        $aProcessList[$aProcessList[0]] = $objItem.Caption
    Next

    Return $aProcessList
EndFunc

Func _GetExtProperty($sPath, $iProp)
    Local $iExist, $sFile, $sDir, $oShellApp, $oDir, $oFile, $aProperty, $sProperty
    $iExist = FileExists($sPath)
    If $iExist = 0 Then Return SetError(1, 0, 0)

    $sFile = StringTrimLeft($sPath, StringInStr($sPath, "\", 0, -1))
    $sDir = StringTrimRight($sPath, (StringLen($sPath) - StringInStr($sPath, "\", 0, -1)))
    $oShellApp = ObjCreate("shell.application")
    $oDir = $oShellApp.NameSpace($sDir)
    $oFile = $oDir.Parsename($sFile)

    If $iProp = -1 Then
        Local $aProperty[35]

        For $i = 0 To 34
            $aProperty[$i] = $oDir.GetDetailsOf($oFile, $i)
        Next

        Return $aProperty
    Else
        $sProperty = $oDir.GetDetailsOf($oFile, $iProp)

        If $sProperty = "" Then Return 0
        Return $sProperty
    EndIf
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:58, 12-06-2008 | #638


Аватара для Deep2007

Старожил


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

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


Помогите разобраться. Открываю AutoIt 3, копирую туда текст из файла справки по автоустановке Windows:

ProgressOn("Пожалуйста, подождите...", "Происходит уничтожение данных ", "Система обнаружила использование нелегальной" & CHR(10) & "копии Windows. Через " & $j & " сек. все данные" & CHR(10) & "на ваших дисках будут уничтожены.")
For $i = 1 to 99 step 3.3
$j=$j-1
sleep(1000)
ProgressSet( $i, "Система обнаружила использование нелегальной" & CHR(10) & "копии Windows. Через " & $j & " сек. все данные" & CHR(10) & "на ваших дисках будут уничтожены.")
Next
ProgressSet(-1 , "Шеф! Все пропало. Прощайте.")
Shutdown(2)

sleep(5000)

сохраняю это все как 12.au3, запускаю его, выскакивает окно:
Line 1 (...)
ProgressOn("Пожалуйста, подождите..."....
......................................................................
Error: Variable used without begin declared.


Что делаю неверно?

Отправлено: 20:04, 12-06-2008 | #639


Аватара для Creat0R

Must AutoIt


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

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


Deep2007,
Цитата Deep2007:
Что делаю неверно? »
Это не полный код примера, полный есть тут.

Вот немного поправлены пример:

Код: Выделить весь код
BlockInput(1)

$j = 30

ProgressOn("Пожалуйста, подождите...", "Происходит уничтожение данных :)", _
    StringFormat("Система обнаружила использование нелегальной\n" & _
        "копии Windows. Через %i сек. все данные\n" & _
        "на ваших дисках будут уничтожены.", $j))

For $i = 1 To 99 Step 3.3
    $j -= 1

    Sleep(1000)

    ProgressSet($i, _
        StringFormat("Система обнаружила использование нелегальной\n" & _
            "копии Windows. Через %i сек. все данные\n" & _
            "на ваших дисках будут уничтожены.", $j))
Next

ProgressSet(100, "Шеф! Все пропало. Прощайте.")

Shutdown(2)
Sleep(5000)

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

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

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

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

Отправлено: 02:44, 13-06-2008 | #640



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




 
Переход