Главная страница

Новости

Вопрос-ответ

Скрипты

ActiveX

Статьи

Книжная полка

Knowledge Base

Конференции

Ссылки

 

Гостевая книга

Напишите мне письмо

 

Подписка на рассылку

Рассылка 'Windows Scripting'  Архив

 

 

Лучше смотреть с Microsoft Internet Explorer 4.0 и выше

 

Создано с помощью UltraEdit

 

Автоматическая архивация правил Rules Wizard (Мастера правил)

В Microsoft Outlook встроена очень полезная утилита - Rules Wizard (Мастера правил). На основании заданных пользователем правил (весьма гибких!) она позволяет автоматически обрабатывать входящую почту и осуществлять другие полезные операции.

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

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

Вот что он делает:

  • Прежде чем осуществлять архивацию, скрипт удаляет уже существующий архивный файл, иначе при импорте Outlook задаст вопрос о том, перезаписывать этот файл или нет.
  • Для осуществления архивации запускается Microsoft Outlook (или его вторая копия, если он уже был запущен). Подробности смотрите здесь.
  • Запустив Outlook, скрипт ждет, пока тот активизируется (максимально 10 секунд).
  • Дождавшись, посылает ему последовательность нажатий клавиш, которые должны привести к импорту правил в файл. Иными словами, мы эмулируем работу пользователя - окрытие меню, выбор команды меню, нажатие кнопки на диалоге и т.д. Осуществляется все это с помощью метода SendKeys стандартного WSH-объекта WScript.Shell
  • Затем Outlook закрывается, опять-таки с помощью посылки кодов клавиш.
  • Вот, собственно, и все. Очень просто.
Что нужно учесть:
  • В скрипте правила архивируются в файл "C:\OutlookRulesWizard.rwz". Измените этот путь (константа BackupFileName), исходя из Ваших требований.
  • Посылаемые последовательности клавиш написаны для английской версии Microsoft Outlook 2000. Если у Вас неанглийская (например, русская) версия, или Outlook другой версии, то Вам придется эти последовательности изменить или по меньшей мере проверить (это параметры, передаваемые методу SendKeys).
  • Предполагается, что Outlook запускается автоматически, без диалога с предложением выбрать MAPI-профайл.

Листинг: ruleswizard.vbs

Option Explicit

' В этой константе укажите имя backup-файла
Const BackupFileName = "C:\OutlookRulesWizard.rwz"

' Имя программы
Const AppName = "Outlook Rules Wizard Backup"

' Удаляем backup-файл, если он уже существует

Dim FSO
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")

If FSO.FileExists(BackupFileName) Then FSO.DeleteFile(BackupFileName)

Set FSO = Nothing

' Создаем объект WScript.Shell

Dim Shell
Set Shell = WScript.CreateObject("WScript.Shell")

' Запускаем Outlook

Dim OutlookPath
OutlookPath = _
	Shell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows" & _
		"\CurrentVersion\App Paths\OUTLOOK.EXE\")

If Len(OutlookPath) = 0 Then ErrorBox "Cannot find Outlook."

On Error Resume Next
Shell.Run OutlookPath, 1
If Err.Number <> 0 Then ErrorBox "Cannot run Outlook, error " & _
	Hex(Err.Number) & " (hex)."
On Error GoTo 0

' Будем ждать запуска Outlook максимально WaitCount секунд

Dim WaitCount
WaitCount = 10

' Ждем, пока запустится Outlook

Do While (Not ActivateOutlook) And (WaitCount > 0)
	Shell.Popup "Waiting for Outlook...", 1, AppName, vbInformation
	WaitCount = WaitCount - 1
Loop

If Not ActivateOutlook Then ErrorBox "Cannot run Outlook."

' Делаем backup

WScript.Sleep 500
Shell.SendKeys "%TL%O%E" & BackupFileName & "{ENTER}{ESC}{ESC}"

' Закрываем Outlook

WScript.Sleep 500
Shell.SendKeys "%FX"

' Все

Set Shell = Nothing

' Эта функция активизирует Outlook

Function ActivateOutlook()
	ActivateOutlook = Shell.AppActivate(" - Microsoft Outlook")
End Function

' Эта функция выдает сообщение об ошибке и завершает работу скрипта

Sub ErrorBox(Msg)
	MsgBox Msg, vbCritical, AppName
	WScript.Quit
End Sub

Смотри также

  • Как запустить Microsoft Outlook?
  • To back up Outlook Rules Wizard rules (на slipstick.com)Другой сайт
  • Q196492 - OL2000: (IMO) How to Back Up, Restore, or Move Outlook DataДругой сайт