Войти

Показать полную графическую версию : [Архив - Часть 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

Lodoss
08-12-2008, 05:58
Появилась идея автоматизировать на работе рутину с почтой. Хотелось бы узнать слаткивался ли кто нибудь с такой проблемой и решал ли её при помощи AutoIt:

Задача - проверить почту Microsoft Office Outlook и извлечь вложеные файлы (txt) в папку, причем текстовые файлы иногда имеют одинаковое название но отличаются по содержимому, соответсвенно из файла извечь определенную строку и создать папку с названием этой строки.

Подскажите в какую сторону копать?

morres
08-12-2008, 09:35
...отличаются не только текстом, но и заголовком (там два пробела, а не один); »
Точно! Спасибо огромное! Опять моя не внимательность...Скрипт останавливается на этой строчке, или проходит дальше не замечая окна (не нажимая кнопки)? »
Да, скрипт останавливался на этой сторчке...попробуй WinWaitActive("SARC Intelligent Updater","OK"
эта функция подождет пока окно будет активным)) »
Да, это я всё пробовал, уж что-что, а Help я честно читал :closed-to :)
PS: думаю, твой код сильно перегружен лишним
например, не вижу смысла в WinActivate »
Ну, перегружен он в последней редакции, я ж говорю пробовал по разному...
Друзья, огромное спасибо!

amel27
08-12-2008, 12:32
Lodoss
Подскажите в какую сторону копать? »
Работа с электронной почтой из скрипта (http://www.askit.ru/custom/progr_admin/m12/12_cdo.htm), а также поиск по оффсайту (http://www.autoitscript.com/forum/index.php?act=Search&CODE=show&searchid=12c4dfee84ca10ae7cc3f5afc4828aa9&search_in=posts&result_type=topics&highlite=%2B%2BOutlook.Application+%2BMAPI),
примеры: Outlook, Read the Inbox (http://www.autoitscript.com/forum/index.php?showtopic=77754), Outlook ... accessing the body of emails sent as attachments (http://www.autoitscript.com/forum/index.php?showtopic=72972)

minutka15
09-12-2008, 13:15
Привет всем.
Нужно чтобы скрипт AutoIt открыл "Язык и региональные стандарты".
Kакой командой нужно воспользоваться? может кто сталкивался с подобным явлением?

Creat0R
09-12-2008, 13:26
minutka15, Нужно чтобы скрипт AutoIt открыл "Язык и региональные стандарты". »
Так можно:

Run(@ComSpec & " /c Start Intl.cpl", @SystemDir, @SW_HIDE)

minutka15
09-12-2008, 17:46
Creat0R,
Спасибо! Отличный ответ. А я голову ломал, прописывал все что угодно кроме этого!

Lodoss
10-12-2008, 07:30
Подскажите как можно из текстового файла взять его содержимое с пробелами и переносами и вставить в Word или другой текстовый файл ?

Maza Faka
10-12-2008, 08:23
из текстового файла взять его содержимое с пробелами и переносами и вставить в Word »
Можно так:
#include <Word.au3>

$sFileTxt = @ScriptDir & "\Test.txt"
$sFileDoc = @ScriptDir & "\Test.doc"

$sRead = FileRead($sFileTxt)

$oWordApp = _WordCreate(@ScriptDir & "\Test.doc", 0, 0)

$oDoc = _WordDocGetCollection($oWordApp, 0)
$oDoc.Range.InsertAfter($sRead)

_WordDocSave($oDoc)
_WordQuit($oWordApp)

Lodoss
10-12-2008, 11:04
Чем дальше в лес тем больше дров, совсем запутался с такой задачей, есть строка в текстовом файле из которой нужно вырезать одно слово. Подскажите как это сделать ? Пытаюсь мудрить с функцией StringLeft и StringMid но нему понять. Help !!! :(

Maza Faka
10-12-2008, 13:22
есть строка в текстовом файле из которой нужно вырезать одно слово »
StringReplace()

Frost_Imp
10-12-2008, 17:57
Цитата Frost_Imp:
Да в том то и дело, что не хочется его разворачивать. При развернутом окне и SEND замечательно работает »
Дело в том, что если окно неактивно - далеко не факт, что оно среагирует. Например, в моём случае высылка работает, но игра реагирует только после разворачивания (получения фокуса). »
Доброго всем времени суток!
Опять возвращаюсь к своей проблеме - отправке в НЕактивное окно с игрой команды о нажатии клавиши. Единственный разумный вариант:
ControlSend("GameName", "", "", "{F1}")
не работает... Неужели совсем пропащее дело?

Dump
11-12-2008, 10:18
Помогите плиз в написании скрипта. Приветствуется скрипт именно на AutoIT, так как там можно всё в exe файл засунуть, и не светить пароли.

Алгоритм примерно такой!
1 скрипт:
Проверить наличие новых файлов на FTP(с использованием определённой учётки) сравнивая с c:\update
Если обновлений нет - закончить работу!
Если обновления есть скопировать их в c:\update и удалить старые файлы.
Файлы имеют вид lpt$vpn.* расширение меняется с каждым новым файлом :(

2 скрипт:
Проверить доступность сетевого ресурса \\ip\update (с использованием определённой учётки)
Если ресурс не доступен перейти к проверке следующего ресурса
если ресурс доступен скопировать файлы из c:\update в \\ip\update
перейти к проверке следующего сетевого ресурса
Проверить доступность сетевого ресурса \\ip1\update (с использованием определённой учётки)
Если ресурс не доступен перейти к проверке следующего ресурса
если ресурс доступен скопировать файлы из c:\update в \\ip1\update
и т.д.
Закончить работу!

Всё это дело логировать!

Maza Faka
11-12-2008, 11:29
Dump
Обсуждалось неоднократно. Ищи в теме по слову FTP

Evgeniy_Spartak
13-12-2008, 18:33
Подскажите пожалуйста как при автоматической установки программ в файле RunOnceEx сделать паузы между командами. Приведу пример. Допустим у меня в файле RunOnceEx что то типа этого:
REG ADD %KEY%\%i% /VE /D "Winrar" /f
REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\install\winrar\win.exe /(ключ)"
SET /A i+=1

REG ADD %KEY%\%i% /VE /D "MFramework 2.0" /f
REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\install\frame\install.exe /(ключ)"
SET /A i+=1
EXIT
В этом случае будет все нормально. Сначала поставится Винрар, потом Framework.
А если у меня первая команда будет ссылаться не на файл *.exe, а на*.cmd, который уже немного погодя запустит *.exe файл. Но при этом уже запустится установка второй программы, в данном пример Framework.
И если Винрар и Framework использовали один инсталятор, то видимо возник бы конфликт.
Поэтому я хочу делать паузу между этими командами на n-ное количество секунд.

На сайте oszone читал примерно про следующую команду: ping -n * 127.0.0.1 > nul, где * количество секунд. Может она и не должна работать в RunOnceEx, но тем не менее я попробывал.)) Не заработало.
Еще читал про ключ /sms, но он мне неподходит для моего инсталятора. Мои программы используют WinInstaller.
Кто знает подскажите как сделать паузу между командами в RunOnceEx...

ganselo
13-12-2008, 21:26
Подскажите пожалуйста как скрыть ранее созданный элемент с формы (т.е я создал например какой нибуть Edit на форме, мне нужно по нажатию определённого Buttona скрыть этот объект (Edit например) с формы). На C++ Builder'e это выглядит так: Edit1->Vidible = false;, как осуществить аналогичное на Auto IT?

Creat0R
13-12-2008, 22:43
Evgeniy_Spartak, как при автоматической установки программ в файле RunOnceEx сделать паузы между командами »
Пауза в AutoIt'е делается с помощью Sleep(1000) -> тут 1000 это секунда.

ganselo, как скрыть ранее созданный элемент с формы (т.е я создал например какой нибуть Edit на форме, мне нужно по нажатию определённого Buttona скрыть этот объект »

Можно так:

#include <GuiConstants.au3>

$GUI = GUICreate("Toggle Edit visibility", 300, 200)

$Edit = GUICtrlCreateEdit("", 20, 10, 260, 120)

$HideShowEdit_Button = GUICtrlCreateButton("Hide Edit", 20, 160, 70, 20)

GUISetState(@SW_SHOW, $GUI)

While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $HideShowEdit_Button
If BitAND(GUICtrlGetState($Edit), $GUI_HIDE) Then
GUICtrlSetState($Edit, $GUI_SHOW)
GUICtrlSetData($HideShowEdit_Button, "Hide Edit")
Else
GUICtrlSetState($Edit, $GUI_HIDE)
GUICtrlSetData($HideShowEdit_Button, "Show Edit")
EndIf
EndSwitch
WEnd

ganselo
14-12-2008, 00:21
Можно так: »
Спасибо большое.

Ещё вопрос. Как в процессе выполнения программы изменять размеры формы (т.е при нажатии Button'a размеры формы должны увеличиватся/уменьшатся)?

Creat0R
14-12-2008, 00:44
ganselo,
Как в процессе выполнения программы изменять размеры формы »
Размеры GUI? см. WinMove() (http://www.autoitscript.com/autoit3/docs/functions/WinMove.htm), а если размеры элементов то см. GUICtrlSetPos() (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetPos.htm) или ControlMove() (http://www.autoitscript.com/autoit3/docs/functions/ControlMove.htm).

ganselo
14-12-2008, 00:47
Размеры GUI? см. WinMove(), а если размеры элементов то см. GUICtrlSetPos() или ControlMove(). »

Размер именно самого окна. спс попробую

Creat0R
14-12-2008, 01:12
ganselo

Пример:

#include <GuiConstants.au3>

$GUI = GUICreate("Resize GUI", 300, 200)

$ResizeGUI_Button = GUICtrlCreateButton("Resize", 20, 40, 70, 20)
GUICtrlSetResizing(-1, $GUI_DOCKALL)

GUISetState(@SW_SHOW, $GUI)

While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $ResizeGUI_Button
Local $aGUI_Pos = WinGetPos($GUI)

;Увеличиваем размер GUI на 5 единиц с каждой стороны (в высоту и в ширену)
WinMove($GUI, "", $aGUI_Pos[0], $aGUI_Pos[1], $aGUI_Pos[2] + 5, $aGUI_Pos[3] + 5)
EndSwitch
WEnd




© OSzone.net 2001-2012