Войти

Показать полную графическую версию : [архив - Часть 2] AutoIt скрипты


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 [47] 48 49 50

kagorec
02-01-2008, 13:08
Maza Faka Тебя также с новым :)
Спасибо, посмотрю мануал может чтонибудь да получится ...
Насчет посмотреть в топике этт 194 страницы просмотреть с моим диалапом, а можно пример скрипта ?

МИШАНЧИК
03-01-2008, 04:51
Ну может всё таки кто нибудь напишет скрипт для Nero8?

Maza Faka
03-01-2008, 07:07
kagorec
194 страницы просмотреть с моим диалапом
Посмотри в версии для печати (http://forum.oszone.net/showthread.php?t=60616&page=all), дай поиск по слову PixelChecksum.

МИШАНЧИК
Ну может всё таки кто нибудь напишет скрипт для Nero8?
Я бы с удовольствием тебе помог, но у меня нет Nero8 (юзаю 6 версию), а качать этого монстра из инета на диал-апе удовольствие сомнительное.

Angelus
03-01-2008, 13:45
Добрый день, такой вопрос.....есть параметр, нужно что бы он проверял соответствие пути, и если есть лишнии символы то выдал сообщение....


Func nst_serv ()
Dim $wtf_exe = '*\*.???'

Dim $serv1_realm = ControlGetText ( 'Настройка', '', 'Edit1' )
Dim $serv1_exe = ControlGetText ( 'Настройка', '', 'Edit2' )
Dim $serv1_reg = ControlGetText ( 'Настройка', '', 'Edit3' )
Dim $serv1_ip = ControlGetText ( 'Настройка', '', 'Edit4' )
Dim $serv1_ping = ControlGetText ( 'Настройка', '', 'Edit5' )

Dim $dat_serv1[5][2] = [ [ $key1, $serv1_realm ], [ $key2, $serv1_exe ], [ $key3, $serv1_reg ], [ $key4, $serv1_ip ], [ $key5, $serv1_ping ] ]

If $wtf_exe = $serv1_realm Then
MsgBox ( 16, 'Ошибка', 'Возможно допущенны следующие ошибки:' & @CRLF & _
'- В пути realmlist`а написано имя файла' & @CRLF & _
'- В пути к экзешнику написано имя файла' & @CRLF & _
'- В конце путей стоит " \ "' & @CRLF & _
'- В ip адресе realmlist`a написано "set realmlist"' )
Else
IniWriteSection ( $file, $serv[0], $dat_serv1, 0 )
EndIf


Выполняется только если ввести в параметр $wtf_exe поный путь......

Maza Faka
03-01-2008, 14:37
Angelus
FileExists()?

Angelus
03-01-2008, 14:40
Я хочу что бы он путь проверял...и если в графе вписано путь и в конце имя файла тогда он выдал сообщение....если не вписано имя файла...то записал в ини файл то что в графе....

Maza Faka
04-01-2008, 08:32
Angelus
Так? :
$parsing = StringRegExp($serv1_realm, "\..{3}$", 3)

If @error Then
IniWrite("c:\test\test.ini", "Section", $serv1_realm, "value")
Else
MsgBox(64, "Message", "File name")
EndIf

Creat0R
04-01-2008, 09:13
Не удаётся в новой версии AutoIt 3.2.10.0 переделать самопальную функцию _FileSelectFolder() »
Удалось! :up

Func _FileSelectFolder($sText='', $iRoot=0, $iFlags=0, $sInitDir=@ScriptDir, $hWnd=0, $sCallbackProc='_FileSFCallbackProc')
Local $pidl, $iRes='', $pCallbackProc=0, $iMask = $BIF_ALLOLDSTYLEFLAGS, $Error = 0
; Контроль входных параметров
;$sInitDir = StringRegExpReplace($sInitDir, '([^\\])\\*$', '\1\\')
;If StringRight($sInitDir, 1)=':' Then $sInitDir &= '\'
If BitAND($iFlags, $BIF_NEWDIALOGSTYLE) Then $iMask = $BIF_ALLNEWSTYLEFLAGS
; Создание и инициализация основных структур данных
Local $uBI = DllStructCreate ("hwnd;ptr;ptr;ptr;int;ptr;ptr;int") ; BROWSEINFO
Local $uTX = DllStructCreate ("char[260];char") ; Текст приглашения
Local $uMP = DllStructCreate ("char[260]") ; MAX_PATH
Local $uCB = DllStructCreate ("char[260];int") ; CallBack структура
DllStructSetData ($uTX, 1, $sText)
DllStructSetData ($uCB, 1, $sInitDir)
DllStructSetData ($uCB, 2, $iFlags)
; Заполнение структуры BROWSEINFO
DllStructSetData ($uBI, 1, $hwnd)
DllStructSetData ($uBI, 3, DllStructGetPtr($uMP))
DllStructSetData ($uBI, 4, DllStructGetPtr($uTX))
DllStructSetData ($uBI, 5, BitAND($iFlags, $iMask))
DllStructSetData ($uBI, 7, DllStructGetPtr($uCB))
; Получение указателя на CallBack-функцию
If $sCallbackProc <> '' Then $pCallbackProc = DllCallbackRegister($sCallbackProc, 'int', 'hwnd;int;long;ptr')
If @error Then Return SetError(2, @error, '') ; ОШИБКА получения указателя
DllStructSetData($uBI, 6, DllCallbackGetPtr($pCallbackProc))
; Получение указателя на корневую папку (PIDL)
Local $iRet = DllCall ("shell32.dll", "ptr", "SHGetSpecialFolderLocation", _
"int", 0 , "int", $iRoot , "ptr", DllStructGetPtr($uBI, 2))
If $iRet[0]=0 Then
; Запуск системного диалога
$pidl = DllCall ("shell32.dll", "ptr", "SHBrowseForFolder", "ptr", DllStructGetPtr($uBI))
$iRes = DllStructGetData($uMP, 1) ; сохраняем имя объекта
If $pidl[0] Then
; Обработка полученного указателя (PIDL)
$iRet = DllCall ("shell32.dll", "int", "SHGetPathFromIDList", "ptr", $pidl[0], "ptr", DllStructGetPtr($uMP))
If $iRet[0] Then $iRes = DllStructGetData($uMP, 1)
DllCall ("ole32.dll", "int", "CoTaskMemFree", "ptr", $pidl[0]) ; чистим за собой
Else
$Error = 1
EndIf
DllCall ("ole32.dll", "int", "CoTaskMemFree", "ptr", DllStructGetData ($uBI, 2)) ; чистим за собой
Else
SetError(1, 0, '') ; ОШИБКА в параметре корневой папки
EndIf
If $pCallbackProc Then DllCallBackFree($pCallbackProc) ; закрытие указателя
Return SetError($Error, 0, $iRes)
EndFunc

Оказывается DllCallbackRegister() возвращает не указатель, а идентификатор, нужно было всего лишь использовать DllCallbackGetPtr() для получения указателя, и далее использовать его при вызове заполнении структуры :) .

Angelus
04-01-2008, 09:20
Да спасибо...сработало....интересная команда....

Maza Faka
04-01-2008, 10:13
Creat0R
Ругается на: WARNING: $BIF_ALLOLDSTYLEFLAGS: possibly used before declaration., какое значение должно содержаться в константе(?) $BIF_ALLOLDSTYLEFLAGS?

kagorec
04-01-2008, 23:42
Попытался собрать из нескольких кодов нужный скрипт.
Для экрана 1024х768, движение курсора по кругу (в центре радиусом 300пикселей) скорость неполучается выставить 25 через команду Opt (mousemove), при этом удерживается правая кнопка мышки.
Старался вписать управление скриптом:
Pause - пауза
F9 - включить
F10 - остановить
Но при включении ахтунг получается - курсор движется по кругу удерживая кнопку все хорошо, НО процессор нагружает на 100% и не управляется ни стоп ни пауза только рестарт компа спасает.
Поправте пожалста скрипт или подскажите (мои эксперементы заканчиваются рестартом ПК)
Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotkeySet ("{F10}", "Stop" )
HotKeySet( "{F9}", "Start" )


;******** Script Pause **********
Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip('script is "Paused"',0,0)
WEnd
ToolTip("")
EndFunc

;********** Stop **********
Func Stop ()

While 1 = 1
Sleep (600)
Wend

EndFunc

While (1)
BlockInput(1)
_MouseMoveCircle(540, 390, 300, 625, 1) ;(need opt speed 25) Circle 4ever for resolution 1024x768
Sleep(200)

BlockInput(0)
WEnd
Func _MouseMoveCircle($xPos, $yPos, $Radius, $TimeExp, $MouseClick=0); x coord, y coord, radius, time to loop (milliseconds)
Local $TimeInit = TimerInit()
Local $xPosMov, $yPosMov
Local $MouseClick_Mark = 1

Do
$TimeDiff = TimerDiff($TimeInit)
$xPosMov = $xPos + ($Radius * Sin($TimeDiff/100))
$yPosMov = $yPos + ($Radius * Cos($TimeDiff/100))
MouseMove($xPosMov, $yPosMov, 1)
If $MouseClick_Mark = 1 And $MouseClick <> 0 Then MouseDown("Right")
$MouseClick_Mark = 0
Until $TimeDiff > $TimeExp
If $MouseClick <> 0 Then MouseUp("Right")
EndFunc

Creat0R
05-01-2008, 02:17
Maza Faka,
Ругается на
Тогда должен ругаться и на многое дргое ;) - я всего лишь привёл подправленную функцию из _FileSelectFolder.au3...

Прикрепляю полный набор самопальных функции системных диалогов + Примеры применения (файл Examples.au3).
За большенство из которых (как функции так и примеров) большое спасибо amel27 :)

Только для AutoIt 3.2.10.0.

Зеркало (http://creator-lab.ucoz.ru/AutoIt/SystemDialogUDFs.zip) для тех кто неможет скачать с форума.

Creat0R
05-01-2008, 02:36
kagorec, НО процессор нагружает на 100% и не управляется ни стоп ни пауза только рестарт компа спасает.
Конечно не будет управляться, ведь BlockInput не даёт ничего нажать.
Я выкрутился быстрым нажатием «Alt + Ctrl + Del» и «Pause» ;)

Тут видимо это происходт из за постоянного цикла внутри _MouseMoveCircle - можно поставить в нём проверку на ввод пользователя, и небольшую паузу...

Вот простой пример, для наглядности, я BlockInput закомментировал :)

Global $Paused = False

HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "QuitApp")

While 1
While $Paused
Sleep(100)
ToolTip('script is "Paused"',0 , 0)
WEnd

ToolTip("")

;BlockInput(1)
_MouseMoveCircle(540, 390, 300, 625, 1) ;(need opt speed 25) Circle 4ever for resolution 1024x768
Sleep(200)
;BlockInput(0)
WEnd

Func TogglePause()
$Paused = NOT $Paused
EndFunc

Func _MouseMoveCircle($xPos, $yPos, $Radius, $TimeExp, $MouseClick=0); x coord, y coord, radius, time to loop (milliseconds)
Local $TimeInit = TimerInit()
Local $xPosMov, $yPosMov
Local $MouseClick_Mark = 1

Do
$TimeDiff = TimerDiff($TimeInit)
$xPosMov = $xPos + ($Radius * Sin($TimeDiff/100))
$yPosMov = $yPos + ($Radius * Cos($TimeDiff/100))
MouseMove($xPosMov, $yPosMov, 1)
If $MouseClick_Mark = 1 And $MouseClick <> 0 Then MouseDown("Right")
$MouseClick_Mark = 0

If $Paused Then ExitLoop
Sleep(10)
Until $TimeDiff > $TimeExp
If $MouseClick <> 0 Then MouseUp("Right")
EndFunc

Func QuitApp()
Exit
EndFunc

rimm
05-01-2008, 02:57
Подскажите как с помощью Autoit удалить раздел реестра и все ключи в нем?

HKEY_LOCAL_MACHINE\SOFTWARE\TEST\

или все ключи в разделе

HKEY_LOCAL_MACHINE\SOFTWARE\TEST\*.REG_BINARY

Буду рад помощи

Creat0R
05-01-2008, 03:20
rimm,
как с помощью Autoit удалить раздел реестра и все ключи в нем?
RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\TEST")

Для удаления определённых типов записей, можно использовать RegEnumVal()...

For $i = 1 To 100
$Var = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\Autoit", $i)
If @error Then ExitLoop

MsgBox(4096, "Value Name #" & $i & " under in AutoIt3 key", $Var & @LF & "Extended: " & GetExtendedType(@extended))
Next

Func GetExtendedType($Extended)
Local $RegTypeArr[6] = [5, "REG_SZ", "REG_MULTI_SZ", "REG_EXPAND_SZ", "REG_DWORD", "REG_BINARY"]
For $i = 1 To 5
If $Extended = $i Then Return $RegTypeArr[$i]
Next
EndFunc

Creat0R
05-01-2008, 09:22
Библиотека автоматизации для браузера Opera (http://opera.com)!

24 (планируется ещё больше) полезных функции для решения задач связанных с браузером Opera.

Примечание: Библиотека тестировалась под Opera начиная с версии 8.54 и до версии 9.5.

[Страница закачки (http://creator-lab.ucoz.ru/load/3-1-0-36)], [Зеркало (http://www.autoitscript.com/forum/index.php?automodule=downloads&showfile=110)]

SAOPP
06-01-2008, 19:46
Ребят, а с помощью AutoIt'а можно реализовать блокировку клавиатуры и мыши при запуске скрипта - и последующей разблокировкой например нажатием каких либо сочетаний клавиш?

Creat0R
06-01-2008, 22:41
SAOPP,
с помощью AutoIt'а можно реализовать блокировку клавиатуры и мыши при запуске скрипта
Да, есть команда BlockInput(1), соответственно BlockInput(0) отменит блокирование... Alt+Ctrl+Del в любом случае разблокирует ввод ;).

SAOPP
06-01-2008, 23:03
Ну вот мне бы так и нужно, как "некая" утилитка ;) для чистки клавиатуры блокирует это дело, только без всяких оповещений и окон, просто блокировала, а по нажатию ctrl+alt+del разблокировала и закрывалась соответственно.

Creat0R
07-01-2008, 00:02
SAOPP,
мне бы так и нужно, как "некая" утилитка для чистки клавиатуры
Эта (http://creator-lab.ucoz.ru/load/5-1-0-15) утилитка? :)

только без всяких оповещений и окон, просто блокировала, а по нажатию ctrl+alt+del разблокировала и закрывалась

Всё очень просто:

#NoTrayIcon

$aOld_MousePos = MouseGetPos()

BlockInput(1)

While 1
Sleep(100)
$aNewMousePos = MouseGetPos()
If $aOld_MousePos[0] <> $aNewMousePos[0] Or $aOld_MousePos[1] <> $aNewMousePos[1] Then ExitLoop
WEnd

BlockInput(0)

Скрипт завершит работу после любого движения мышки ;)




© OSzone.net 2001-2012