|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.2] AutoIt скрипты |
|
[Архив - Часть 1.2] AutoIt скрипты
|
Ветеран Сообщения: 565 |
Внимание! Тема переведена в архивное состояние (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе c AutoIt. |
|
------- Отправлено: 10:47, 10-02-2006 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Подскажите пожалуйста, можно ли сделать сравнение даты создания (изминения) файла в сети, с другой датой (указанной в скрипте), и если дата создания (изминения) файла, ровняется указанной в скрипте, то пусть появляется меседжбокс, в противном случае, что-то должно делаться. Т.е, допустим в сети, лежит файл, который в последний раз был изменён 25-ого Января, 2006 г. А в скрипте, указать ту же дату для сравнения - 25-го января 2006 г. И если в момент запуска скрипта, файл не был изменён, и дата его изменения ровна указанной в скрипте, то пусть выскакивает меседжбокс, а если файл был изменён (т.е если уже его дата изминения не ровняется указанной), то что-то должно делаться (неважно что
![]() Если такое возможно, подскажите плиз как это оуществить. Заранее благодарю за внимание! |
------- Отправлено: 06:48, 08-08-2006 | #271 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 565
|
Профиль | Сайт | Отправить PM | Цитировать Цитата:
Func GetSid($_Username) ;возвращает сид юзера. имя должно быть полным, все довески(домен, комп) должны быть уже переданы в функкцию FileDelete(@TempDir & '\getsid.tmp') Run(@ComSpec & ' /c "' & @ScriptDir & '\psgetsid.exe" ' & $_Username & '> ' & @TempDir & '\getsid.tmp', '', @SW_HIDE) Sleep(50) Local $f= FileOpen(@TempDir & '\getsid.tmp',0) Local $a= FileReadLine($f,2) FileClose($f) If StringStripWS ( $a, 8) <> "" Then Return StringStripWS($a, 8) Return $_Username EndFunc Func GetSid($UserName, $Domain) Dim $UserSID, $oWshNetwork, $oUserAccount $objWMIService = objGet( "winmgmts:{impersonationLevel=impersonate}!//" & @ComputerName & "/root/cimv2") $oUserAccounts = $objWMIService.ExecQuery("Select SID from Win32_UserAccount WHERE Name = '" & $UserName & "' AND Domain = '" & $Domain & "'") For $oUserAccount In $oUserAccounts Return $oUserAccount.SID next EndFunc |
|
Отправлено: 13:42, 08-08-2006 | #272 |
AdrenalinE
Сообщения: n/a |
HotKeySet("{PAUSE}", "Pause") Global $Paused While 1 $Click = _FindMonster() MouseClick('left', $click[0], $click[1], 1, 0) Attack() WEnd Func _FindMonster() Dim $iCoord While 1 $iCoord = PixelSearch(250, 225, 374, 274, 0xFF00FF, 25, 1) If @error <> 1 Then ExitLoop $iCoord = PixelSearch(375, 225, 474, 274, 0xFF00FF, 25, 1) If @error <> 1 Then ExitLoop $iCoord = PixelSearch(415, 275, 474, 359, 0xFF00FF, 25, 1) If @error <> 1 Then ExitLoop $iCoord = PixelSearch(375, 360, 474, 399, 0xFF00FF, 25, 1) If @error <> 1 Then ExitLoop $iCoord = PixelSearch(250, 225, 374, 399, 0xFF00FF, 25, 1) If @error <> 1 Then ExitLoop $iCoord = PixelSearch(250, 175, 474, 224, 0xFF00FF, 25, 1) If @error <> 1 Then ExitLoop $iCoord = PixelSearch(475, 175, 574, 399, 0xFF00FF, 25, 1) If @error <> 1 Then ExitLoop $iCoord = PixelSearch(0, 400, 424, 474, 0xFF00FF, 25, 1) If @error <> 1 Then ExitLoop $iCoord = PixelSearch(0, 175, 259, 399, 0xFF00FF, 25, 1) If @error <> 1 Then ExitLoop $iCoord = PixelSearch(0, 100, 664, 174, 0xFF00FF, 25, 1) If @error <> 1 Then ExitLoop ; The sleep is there to prevent the PixelSearches ; from lagging the script a lot if a monster is not found ; in the first loop Sleep(250) WEnd $iCoord[0] = $iCoord[0] + 4 $iCoord[1] = $iCoord[1] + 4 Return $iCoord EndFunc ;==>_FindMonster Func Attack() While 1 If WinActive("SRO_Client") And PixelGetColor(77, 47) = 3947324 Then;IF ACTIVE AND INGAME ; USE SKILL 1 (mine is sword attack, strike and smash) UNLESS MONSTER IS CLOSE TO DYING if (PixelGetColor(605, 23) = 14077580 And PixelGetColor(442, 45) = 16762566) Then Send("2") Sleep(1000) EndIf ; USE SKILL 7 (mine is combo sword attack (5hits)) UNLESS MONSTER IS ALMOST DOWN if (PixelGetColor(605, 23) = 14077580 And PixelGetColor(475, 45) = 16743291) Then Send("1") Sleep(1000) EndIf ; USE IMBUE SKILL (mine is skill 2) UNLESS MONSTER IS ALMOST DOWN if (PixelGetColor(605, 23) = 14077580 And PixelGetColor(475, 45) = 16743291) Then Send("3") Sleep(1000) EndIf ; USE SKILL 5 (mine is sword attack, stab and smash)UNLESS MONSTER IS CLOSE TO DYING if (PixelGetColor(605, 23) = 14077580 And PixelGetColor(442, 45) = 16762566) Then Send("4") Sleep(1000) EndIf ;THIS WILL TRY AND PICK UP ANYTHING EVEN IF YOU WALK PASSED SOME GOLD Send("g"); CHECK WICH KEY TO USE IN SILKROAD OPTIONS !! Sleep(1000); DEFAULT GRABKEY IN SILKROAD IS "G" EndIf WEnd EndFunc ;==>attack Func Pause() $Paused = Not $Paused While $Paused Sleep(100) WEnd EndFunc ;==>Pause подскажите что не так? |
Последний раз редактировалось AdrenalinE, 10-08-2006 в 19:29. Отправлено: 12:40, 10-08-2006 | #273 |
Ищу Человека… Сообщения: 420
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 02:38, 11-08-2006 | #274 |
sunb0rn
Сообщения: n/a |
Цитата:
|
|
Отправлено: 18:47, 11-08-2006 | #275 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Есть такой вопрос - как заставить скрипт удалить самого себя? Я пробовал сделать такое, прописав создание файла (батника), который удляет скрипт, а затем и самого себя, но мне нужно запускать скрипт не из текущего каталога, а из другого, поэтому при запуске батника, он (батник) работает как бы из того каталога, с которого был запущен скрипт, поэтому и не удаляет сам скрипт (хотя на странность, удаляет сам себя).
|
------- Отправлено: 00:19, 14-08-2006 | #276 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Всё, разобрался
![]() Я пробовал через макрос @ScriptName, но таким образом удаляется сам скрипт, а если он закомпилирован в екзешник, то он не удаляется... вот я и решил эту задачю другим способом, и опять таки в помощь пришёл батник: FileWrite(@ScriptDir&"\temp.bat", "Del /q """ & @ScriptDir & "\" & @ScriptName & """" & @CRLF & "Del /q """ & @ScriptDir & "\temp.bat""") Run("temp.bat", @ScriptDir, @SW_HIDE) P.S: А на счёт моего предыдущего вопроса в посте #272 никто не знает? хотябы подскажите, возможно такое реализовать на AutoIt, или нет? |
------- Отправлено: 01:05, 14-08-2006 | #277 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Есть вопрос - можно ли по хэндлу восстановить имя файла?.. В противном случае функции FileFind* почти бесполезны
EDIT: все, разобрался - повелся на имена функций, несмотря на схожее название эти две функции делают совершенно разные вещи - одна возвращает хэндл, а другая имя |
Последний раз редактировалось amel27, 14-08-2006 в 08:37. Отправлено: 07:31, 14-08-2006 | #278 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Кто-то может подсказать - как можно осуществить поиск определённого слова, в файле (например, в test.tmp), и именно в простом файле содержащем текст, а не в ini (т.к решение для ини уже тут пдооставили ранее).
Заранее спасибо! |
------- Отправлено: 06:43, 15-08-2006 | #279 |
Ищу Человека… Сообщения: 420
|
Профиль | Сайт | Отправить PM | Цитировать Creat0R
Цитата:
;в каком файле искать текст $InputFile = 'test.tmp' ;какой текст искать $TxtToFind = 'иСкоМый Текст' ;демонстрация работы ф-ции $var = _FindTextInFile($InputFile,$TxtToFind) MsgBox(0,'','Текст <'&$TxtToFind&'> найден в строке '&$var[0]&@LF&'Содержимое строки:'&@LF&@LF&$var[1]) ;ф-ция возвращает массив из двух эл-тов (0 - номер строки файла, к-рая содержит искомый текст, 1 - сама строка) Func _FindTextInFile($ifile,$text) Local $i Dim $ret[2] $file = FileOpen($ifile,0) $a = StringSplit( FileRead($file, FileGetSize($ifile)), @LF) FileClose($file) #cs поиск кириллического текста без учета регистра символов возможен только в сл. принудительного приведения искомой и текущей анализируемой строк к общему регистру (ф-ции StringLower или StringUpper), т.к. данный режим ф-ции StringInStr работает только с латиницей #ce If StringIsASCII($text) Then For $i = 1 To UBound($a,1)-1 If StringInStr($a[$i],$text) Then $ret[0]=$i $ret[1]=$a[$i] Return $ret EndIf Next Else For $i = 1 To UBound($a,1)-1 If StringInStr(StringLower($a[$i]),StringLower($text)) Then $ret[0]=$i $ret[1]=$a[$i] Return $ret EndIf Next EndIf EndFunc |
|
------- Последний раз редактировалось Sanja Alone, 15-08-2006 в 09:54. Отправлено: 09:40, 15-08-2006 | #280 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? | DreDo | Хочу все знать | 4 | 01-12-2009 18:54 | |
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. | Vadikan | AutoIt | 1543 | 18-01-2009 10:46 | |
[архив - Часть 2] AutoIt скрипты | Vadikan | AutoIt | 985 | 21-01-2008 09:58 | |
[Архив - Часть 1.3] AutoIt скрипты | biork | AutoIt | 503 | 09-06-2007 11:27 | |
[Архив - Часть 1.1] AutoIt скрипты | EgOrus | AutoIt | 335 | 04-02-2006 16:58 |
|