Показать полную графическую версию : [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
DENoszone, в поле сообщения ввести определеный текст. »
Примерно так:
#include <GuiConstants.au3>
#include <IE.au3>
$oIE = _IECreate("http://odnoklassniki.km.ru/my/mail/message.asp?iduser=1200000")
$oForm = _IEFormGetCollection($oIE, 1)
$oQuery = _IEFormElementGetCollection($oForm, 0)
_IEFormElementSetValue($oQuery, "определеный текст")
_IEFormSubmit($oForm)
DENoszone
05-06-2008, 11:20
а как в цикл?
и как +1 к ссылке?
и ксатти не отправляет вроде...
может другой браузер надо:
DENoszone, а как в цикл?
и как +1 к ссылке? »
См. For ... Next...
$iCounter = 0
For $i = 0 To 10
$URL = "http://odnoklassniki.km.ru/my/mail/message.asp?iduser=120000" & $i
Next
не отправляет вроде »
Нет, у меня это не получилось :( , я с _IE* функциями особо не сталкивался, смотри примеры в справке.
DENoszone
05-06-2008, 11:41
та я просто...до этого так же как и ты сделал...оно и не пахало..во тчего написал...
Подскажите пожалуйста, у меня есть exe файлик в редакторе ресурсов написано что он создан с помощью "AutoIt v3 Script : 3, 2, 2, 0" я хотел бы узнать как и чем его можно открыть и посмотреть какие команды он выполняет, это возможно? Извините если не по теме.
Белтон, как и чем его можно открыть »
Старые версии AutoIt'а можно было декомпилировать (если не установлен пароль, или если он известен :) ), для этого есть в пакете с AutoIt инструмент Exe2Aut.
подскажите пожалуйста как в скрипте получить входные параметры, переданные при запуске скрипта.
Пример вызова
C:\script>input.exe параметр
Пример скрипта
MsgBox (0,"Example", "параметр" )
Maza Faka
09-06-2008, 12:24
KKulik
Help (http://www.autoitscript.com/autoit3/docs/intro/running.htm#CommandLine)
DENoszone
09-06-2008, 20:25
ну что не как не получится моё сделать?
HORRIBLE
10-06-2008, 17:01
Подскажите пожалуйсто, как узнать 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
, только одно но, отправляются одни латинские буквы нормально, русские идут кракозяброй и иногда пролетает с нажатием на кнопку.
Maza Faka
10-06-2008, 17:42
пример мониторинга нажатия клавиш на клавиатуре »
Начиная с версии 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
HORRIBLE,
нужно узнать адрес странички на которой сейчас находится пользователь »
Это зависит от того какой браузер используется. С IE всё просто:
$URL = ControlGetText("[CLASS:IEFrame]", "", "Edit1")
:)
HORRIBLE
11-06-2008, 16:32
Можно ли вернуть список запущенных процессов ПОЛЬЗОВАТЕЛЕМ ?
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
HORRIBLE
12-06-2008, 12:55
Creat0R, возвращает массив пустой, хотя у меня запущено некое кол-во программ от пользователя.
Maza Faka
12-06-2008, 13:48
Вышла версия 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
возвращает массив пустой, хотя у меня запущено некое кол-во программ от пользователя
У меня тоже не работает.
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
Хотя тоже не надёжно, но я других методов не знаю :(
Deep2007
12-06-2008, 20:04
Помогите разобраться. Открываю 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.
Что делаю неверно?
Deep2007, Что делаю неверно? »
Это не полный код примера, полный есть тут (http://wiki.oszone.net/index.php/Перезагрузка_компьютера).
Вот немного поправлены пример:
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)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.