Войти

Показать полную графическую версию : [Архив - Часть 3] 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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78

Maza Faka
19-06-2008, 09:37
HORRIBLE
английские буквы их нужно преобразовать в русские »
Не совсем понятна задача, нужно просто заменить латинскую букву на русскую в порядке отсчёта?
Global $aLetters_Latin[27]
$aLetters_Latin[0] = 26

Global $aLetters_Kiril[33]
$aLetters_Kiril[0] = 32

Dim $ResultString, $var = False

For $i = 1 To $aLetters_Latin[0]
$aLetters_Latin[$i] = Chr(64 + $i)
Next

For $i = 1 To $aLetters_Kiril[0]
$aLetters_Kiril[$i] = Chr(191 + $i)
Next

$Read = FileRead(@ScriptDir & "\test.txt")

$aLetters = StringSplit($Read, "")

For $i = 1 To $aLetters[0]
$var = False
For $j = 1 To $aLetters_Latin[0]
If $aLetters_Latin[$j] = $aLetters[$i] Then
$var = True
$ResultString &= $aLetters_Kiril[$j]
ExitLoop
EndIf
Next
If $var = False Then $ResultString &= $aLetters[$i]
Next

ConsoleWrite("---> Result: " & $ResultString & @LF)

Пример текста test.txt

Hello world!


Буквы заменяются на заглавные.

alex888500
19-06-2008, 11:33
Привет!
Нужно обновлять программу на клиентах в сети, при этом обновляются все файлы+2 папки, количество файлов
изменяется, а папки нет.
Делал обновление при помощи батника:

@echo off
xcopy \\192.168.1.241\update "C:\Program Files\arena" /D /Y /R /E /Q

Но это довольно неудобно приходится копировать обновляемые файлы в отдельную папку update, потом оттуда
уже компьютеры забирают файлы, иначе скопируются ненужные папки. Сама прога находится здесь: C:\Program Files\Аrena
Команда XCOPY сравнивает файлы в папках и копирует только новые или измененные.
Какие будут идеи как это реализавать?

Maza Faka
19-06-2008, 12:12
alex888500
Создать массив с полными именами файлов и копировать каждый файл с помощью xcopy. А вообще для таких задач идеальна утилита robocopy.exe

HORRIBLE
19-06-2008, 16:04
Maza Faka,
За примерчик спасибо., но это немного не то.

Попробую по понятней объяснить , что требуется :
Имеется файл, в котором: Ctujlyz xtndthu
Bla bla vyjuj ntrcnf здесь написаны русские слова, только с английской раскладкой.
Как заменить буквы, чтобы прочитать, чего там написано?

Creat0R
19-06-2008, 16:50
HORRIBLE, Как заменить буквы, чтобы прочитать, чего там написано?
Я приводил пример подобного скрипта, вот тут (http://forum.oszone.net/post-652379.html#post652379).

xsample
19-06-2008, 17:21
А не поможет ли кто с процедурой определения цвета пиксела в заданном окне?

p.s. нечто подобное все таки нашел вот тут - http://forum.oszone.net/post-497838.html
но может у кого есть еще какой "более интересный" или "универсальный" алгоритм... например сравнение заданной области с эталоном.... а еще лучше, если есть алгоритм который может определять текст заданного цвета на изменяющемся фоне.

alex888500
20-06-2008, 10:34
Maza Faka
Создать массив с полными именами файлов и копировать каждый файл с помощью xcopy
В том и проблема что имена файлов постоянно меняются (добавляются новые)

DENoszone
21-06-2008, 12:11
хай..а тут могут сделать скрипт подбора паролей на сайт?
два файла 1 ники 2 пароли

Maza Faka
21-06-2008, 13:31
DENoszone
Извини, но по моему ты ошибся адресом. Здесь не Hack-зона.

Serge_Grey
24-06-2008, 10:09
Как прикрепить файл к сообщению, создаваемому функцией _INetSMTPMail?

amel27
25-06-2008, 11:25
Как прикрепить файл к сообщению, создаваемому функцией _INetSMTPMail? »никак, на оффсайте есть альтернативное решение через COM:

Smtp Mailer That Supports Html And Attachments., Also Secure SMTP mail (GMail) (http://www.autoitscript.com/forum/index.php?showtopic=23860)

leprecon
25-06-2008, 13:26
Здрасте всем! У меня возник такой вопрос: Можно ли как нибудь определить с помощью Autoit подключен ли кто к твоему радмин серверу? И если подключен то скрипт должен заблокировать на время работы мышь и клавиатуру. Так как в самом радмине такой фишки нет, то хотелось бы эту фишку добавить при помощи скриптов, который бы наблюдал за сервером и блокировал мышь с клавом во время управления компьютером (не при просмотре, а именно при управлении)

Maza Faka
25-06-2008, 14:13
leprecon
заблокировать на время работы мышь и клавиатуру. Так как в самом радмине такой фишки нет
Дык вроде бы в 3-ей версии такую фишку включили.

leprecon
25-06-2008, 14:36
Дык вроде бы в 3-ей версии такую фишку включили. »

У меня стоит сейчас последняя версия радмина (3.2) И там такой фишки нет. На оф. форуме радмина ихние эксперты говорили, что такую фишку можеть быть введут в течение года... :o И я думаю, что скрипт будет написать гораздо быстрей...

Maza Faka
25-06-2008, 15:19
У меня стоит сейчас последняя версия радмина (3.2) И там такой фишки нет. На оф. форуме радмина ихние эксперты говорили, что такую фишку можеть быть введут в течение года »
Всё ещё обещают? Уже 3 года обещают :tongue:
И я думаю, что скрипт будет написать гораздо быстрей... »
Ага, только вот как его написать? :) Может в радмине есть опция типа: "Выполнить при подключении к клиенту?"

leprecon
25-06-2008, 16:36
Ага, только вот как его написать? Может в радмине есть опция типа: "Выполнить при подключении к клиенту? »
Нет нету такой опции.. Была б не спрашивал... А между 2 и появлением 3 версии прошло 5 лет при отсутствии каких либо существенных изменений...

А может можно при помощи autoit как нибудь фильтровать трафик на определеном порту? Хотя это вряд ли, что-то даст.

amel27
26-06-2008, 11:16
Может в радмине есть опция типа: "Выполнить при подключении к клиенту?" »еще варианты:

- включить запись в системный журнал и ждать нужных событий;
- попробовать считать цвет иконки в трее;
- вообще не пытаться ничего определять, а блокировать асинхронно когда нужно.

но это только половина проблемы - не факт, что блокировка локальной консоли не заблокирует и удаленную

Maza Faka
26-06-2008, 11:55
- попробовать считать цвет иконки в трее »
Да, если иконка меняет свой цвет, то можно выполнить действие на основе этого поведения.

leprecon
26-06-2008, 11:56
- включить запись в системный журнал и ждать нужных событий »
Вот этот вариант можно попробывать. Но не факт что сервер записывает в журнал события мгновенно. Но это утверждение я сейчас проверю :)
- попробовать считать цвет иконки в трее »
Этот вариант не подойдет, так как иконка из трея убрана, во избежания умышленого отключения сервера. :cool: Да и по иконке не определишь тип подключения. Там можно увидеть только подключен ли кто к твоему компьютеру или нет.
- вообще не пытаться ничего определять, а блокировать асинхронно когда нужно »
А вот об этом способе поподробней можно?
P.S. Насчет первого способа я думаю что этот способ самый рабочий, так как сервер записывает в лог сразу при подключении, и там же записывает тип подключения. Кароче сейчас буду кумекать над этим вопросом :biggrin:

И еще так как скрипт будет постоянно висеть и проверять журнал на наличие нужных записей (предположительно каждую секунду), не будет ли это сильно загружать процесор?

И скажите пожалуйста как можно встроить Au3ToPost в SciTE? Я все делал как выше было описано (инстукции собирал по кускам, так как единой инструкции не нашел) и после запуска выскакивает ошибка:
Line -1:
Error:Unkown option or bad parametr specifed

amel27
27-06-2008, 12:29
можно при помощи autoit как нибудь фильтровать трафик на определеном порту? »думаю, можно узнать список установленных TCP-соединений (а-ля NETSTAT), но "тип подключения" таким образом не определить - это внутренние дела RAdmin'а.

об этом способе поподробней можно? »ничего особенного - нужно только определиться с "флагом", который будет служить скрипту командой на выполнение определенных действий - это может быть файл на какой-нибудь шаре, параметр реестра, etc. К примеру - создал файл с именем "BlockInput.txt" - консоль заблокировалась, удалил - разблокировалась... тут вариантов куча, вплоть до управления скриптом по сети... тут и до своего RAdmin'а на AutoIT недалеко :)

так как скрипт будет постоянно висеть и проверять журнал на наличие нужных записей (предположительно каждую секунду), не будет ли это сильно загружать процесор? »один раз в секунду не будет, но можно вообще не проверять а поставить скрипт на ожидание определенного события (запись в журнале) и пусть система запускает его когда надо, примерно так:$objWMI = ObjGet("winmgmts:{(Security)}\\.\root\cimv2")
; Создаем фильтр событий, фиксируемых скриптом
$colEvents = $objWMI.ExecNotificationQuery("SELECT * FROM __InstanceCreationEvent WITHIN 5 WHERE " & _
"TargetInstance ISA 'Win32_NTLogEvent' " & _ ; источник событий - журнал событий
"AND TargetInstance.Logfile='Application' " & _ ; только журнал приложений
"AND TargetInstance.SourceName='r_server'") ; только Remote Administrator
While 1
$objEvent = $colEvents.NextEvent ; Ожидание события
$sText = ""
For $s in $objEvent.TargetInstance.InsertionStrings
$sText &= $s ; Текст события
Next
Switch $objEvent.TargetInstance.EventIdentifier
Case 15 ; Код обработки события отключения
Consolewrite( "Text: " & $sText & @CR )
Case 17 ; Код обработки события подключения
Consolewrite( "Text: " & $sText & @CR )
EndSwitch
Wend




© OSzone.net 2001-2012