Показать полную графическую версию : [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
Появилась идея автоматизировать на работе рутину с почтой. Хотелось бы узнать слаткивался ли кто нибудь с такой проблемой и решал ли её при помощи AutoIt:
Задача - проверить почту Microsoft Office Outlook и извлечь вложеные файлы (txt) в папку, причем текстовые файлы иногда имеют одинаковое название но отличаются по содержимому, соответсвенно из файла извечь определенную строку и создать папку с названием этой строки.
Подскажите в какую сторону копать?
...отличаются не только текстом, но и заголовком (там два пробела, а не один); »
Точно! Спасибо огромное! Опять моя не внимательность...Скрипт останавливается на этой строчке, или проходит дальше не замечая окна (не нажимая кнопки)? »
Да, скрипт останавливался на этой сторчке...попробуй WinWaitActive("SARC Intelligent Updater","OK"
эта функция подождет пока окно будет активным)) »
Да, это я всё пробовал, уж что-что, а Help я честно читал :closed-to :)
PS: думаю, твой код сильно перегружен лишним
например, не вижу смысла в WinActivate »
Ну, перегружен он в последней редакции, я ж говорю пробовал по разному...
Друзья, огромное спасибо!
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акой командой нужно воспользоваться? может кто сталкивался с подобным явлением?
minutka15, Нужно чтобы скрипт AutoIt открыл "Язык и региональные стандарты". »
Так можно:
Run(@ComSpec & " /c Start Intl.cpl", @SystemDir, @SW_HIDE)
minutka15
09-12-2008, 17:46
Creat0R,
Спасибо! Отличный ответ. А я голову ломал, прописывал все что угодно кроме этого!
Подскажите как можно из текстового файла взять его содержимое с пробелами и переносами и вставить в 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)
Чем дальше в лес тем больше дров, совсем запутался с такой задачей, есть строка в текстовом файле из которой нужно вырезать одно слово. Подскажите как это сделать ? Пытаюсь мудрить с функцией StringLeft и StringMid но нему понять. Help !!! :(
Maza Faka
10-12-2008, 13:22
есть строка в текстовом файле из которой нужно вырезать одно слово »
StringReplace()
Frost_Imp
10-12-2008, 17:57
Цитата Frost_Imp:
Да в том то и дело, что не хочется его разворачивать. При развернутом окне и SEND замечательно работает »
Дело в том, что если окно неактивно - далеко не факт, что оно среагирует. Например, в моём случае высылка работает, но игра реагирует только после разворачивания (получения фокуса). »
Доброго всем времени суток!
Опять возвращаюсь к своей проблеме - отправке в НЕактивное окно с игрой команды о нажатии клавиши. Единственный разумный вариант:
ControlSend("GameName", "", "", "{F1}")
не работает... Неужели совсем пропащее дело?
Помогите плиз в написании скрипта. Приветствуется скрипт именно на 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...
Подскажите пожалуйста как скрыть ранее созданный элемент с формы (т.е я создал например какой нибуть Edit на форме, мне нужно по нажатию определённого Buttona скрыть этот объект (Edit например) с формы). На C++ Builder'e это выглядит так: Edit1->Vidible = false;, как осуществить аналогичное на Auto IT?
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
Можно так: »
Спасибо большое.
Ещё вопрос. Как в процессе выполнения программы изменять размеры формы (т.е при нажатии Button'a размеры формы должны увеличиватся/уменьшатся)?
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).
Размеры GUI? см. WinMove(), а если размеры элементов то см. GUICtrlSetPos() или ControlMove(). »
Размер именно самого окна. спс попробую
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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.