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

Новости

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

Скрипты

ActiveX

Статьи

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

Knowledge Base

Конференции

Ссылки

 

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

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

 

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

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

 

 

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

 

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

 

 
 
 

Windows Scripting (выпуск 5)

 
 
 

Здравствуйте!

В этом выпуске:

Архив рассылки Вы можете найти на сайте scripting.narod.ru.

 
Новости
 
Новая статья из серии Scripting Clinic
 
  • 17.11.2000
    В журнале MSDN Online Voices опубликована очередная статья Andrew Clinick - Windows Script Host 5.6, посвященная, как нетрудно догадаться, первой бета-версии Windows Script 5.6. Очередная статья из серии Scripting Clinic ожидается 11 декабря.
  •  
    Вышел в свет декабрьский номер журнала MSDN Magazine
     
  • 14.11.2000
    Вышел в свет декабрьский номер журнала MSDN Magazine. Среди его статей:
  •  
    Выпущена первая бета-версия Windows Script 5.6
     
  • 13.11.2000
    Выпущена первая бета-версия Windows Script 5.6, значительно расширенная по сравнению с предыдущей версией. Скачать ее можно здесь: http://www.microsoft.com/msdownload/vbscript/scripting56.asp.
  •  
    Вопросы и ответы
     
    Как запустить Microsoft Outlook?
     
    В три действия:
    • Создаем стандартный WSH-объект WScript.Shell.
    • С помощью его метода RegRead извлекаем из Registry путь к Outlook.
    • Используя метод Run того же объекта, запускаем Outlook.

    Листинг

    Option Explicit Dim Shell Set Shell = WScript.CreateObject("WScript.Shell") Dim OutlookPath OutlookPath = _ Shell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows" & _ "\CurrentVersion\App Paths\OUTLOOK.EXE\") If Len(OutlookPath) = 0 Then MsgBox "Cannot fine Outlook.", vbCritical WScript.Quit End If On Error Resume Next Shell.Run OutlookPath, 1 If Err.Number <> 0 Then MsgBox "Cannot run Outlook, error " & _ Hex(Err.Number) & " (hex).", vbCritical On Error Goto 0 Set Shell = Nothing
     
    Как определить букву локального CDROM-диска?
     
    Узнать букву локального CDROM-диска можно, используя стандартный объект FileSystemObject.

    Комментарии к коду:

    • Код, определяющий букву диска, вынесен в функцию GetCdromDriveLetter.
    • Если на компьютере установлены несколько CDROM-дисков, то определяется первый из них.
    • Удаленные (сетевые) CDROM-диски не определяются.

    Листинг

    Option Explicit Dim DriveLetter DriveLetter = GetCdromDriveLetter If Len(DriveLetter) > 0 Then MsgBox "CDROM-диск находится на букве '" & DriveLetter & "'." Else MsgBox "CDROM-диск не обнаружен." End If Function GetCdromDriveLetter() GetCdromDriveLetter = "" Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") Dim Drive For Each Drive In FSO.Drives If Drive.DriveType = 4 Then GetCdromDriveLetter = Drive.DriveLetter Exit For End If Next Set FSO = Nothing End Function
     
    Скрипты
     
    Автоматическая архивация правил 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-профайл.

    Листинг

    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
  •  
     
     
    Архив рассылки Вы можете найти на сайте scripting.narod.ru.