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

Новости

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

Скрипты

ActiveX

Статьи

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

Knowledge Base

Конференции

Ссылки

 

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

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

 

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

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

 

 

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

 

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

 

 

Windows Scripting (выпуск 3)

 
Вступление
 
Здравствуйте!

Рад приветствовать Вас на странице моей рассылки!

Эта рассылка посвящена самым различным аспектам программирования в среде Microsoft Windows Scripting - от конфигурирования и администрирования Microsoft Windows, IIS, Exchange Server и SQL Server до особенностей программирования на VBScript и JScript.

Не забудьте посетить сайт рассылки scripting.narod.ru, где имеется много другой полезной информации, посвященной Windows Script и не вошедшей в рассылку.

Буду также рад получить от Вас письмо с Вашими вопросами, пожеланиями, предложениями и замечаниями: [email protected].

Настоятельная рекомендация тем, кто подписан на текстовую версию рассылки: ***Подпишитесь на HTML-вариант***! Я подготавливаю только HTML-версию рассылки, а текстовая версия автоматически генерируется из нее на Subscribe.ru, причем не самым лучшим образом (:

Посмотрите на HTML-версию этой рассылки, которая находится здесь: http://scripting.narod.ru/issues/issue003.htm.

 
Оглавление рассылки
 
 
Новости
 
Выпущен Microsoft SQL Server 2000
 
  • 26.09.2000
    Выпущен Microsoft SQL Server 2000. Ознакомительную версию сервера можно скачать с сайта компании: http://www.microsoft.com/sql/downloads/default.htm.
  •  
    Вопросы и ответы
     
    Как узнать IP-адрес удаленного компьютера?
     
    Узнать IP-адрес удаленного компьютера можно, например, с помощью Microsoft Winsock control.

    Некоторые особенности кода:

    Во-первых, для TCP-соединения с удаленным сервером мы будем использовать порт 139, на котором "сидит" NETBIOS. Как правило, этот порт доступен всегда.

    А самое интересное, метод Connect является асинхронным - то есть возврат из него осуществляется сразу же, не дожидаясь установления соединения. Чтобы узнать о соединении (или о произошедшей ошибке), нам нужно дождаться события Connect (или, соответственно, события Error). Реализовать это в скрипте не так уж и просто. Воспользуемся простейшим вариантом - после метода Connect покажем message box, а после получения события - закроем его.

    В-третьих, обратите внимание, как мы из скрипта закрываем диалог - с помощью метода SendKeys стандартного объекта WScript.Shell мы посылаем диалогу сообщение о нажатии клавиши Escape.

    Листинг

    Option Explicit Const AppName = "Remote IP" Dim Server Server = InputBox("Enter server name:", AppName) If Len(Server) = 0 Then WScript.Quit Dim Winsock Set Winsock = WScript.CreateObject("MSWinsock.Winsock", "Winsock_") Winsock.Connect Server, 139 Dim Shell Set Shell = WScript.CreateObject("WScript.Shell") MsgBox "Please wait...", vbInformation, AppName Set Winsock = Nothing Set Shell = Nothing Sub Winsock_Connect MsgBox "IP address for " & Server & " is " & _ Winsock.RemoteHostIP, vbInformation, AppName CloseMsgBox End Sub Sub Winsock_Error(Number, Description, Scode, Source, _ HelpFile, HelpContext, CancelDisplay) MsgBox "Error " & Number & vbNewLine & Description, vbCritical, AppName CloseMsgBox End Sub Sub CloseMsgBox Shell.AppActivate AppName Shell.SendKeys "{ESC}" End Sub
     
    Скрипты
     
    Запись в CSV-файл всех активных checkouts
     
    При использовании Microsoft Visual SourceSafe у администратора часто возникает необходимость узнать, какие файлы находятся в состоянии checked-out. Приведенный здесь скрипт решает эту проблему.

    В ходе своей работы скрипт создает в текущем каталоге текстовый CSV-файл со списком всех checked-out файлов и для каждого такого файла указывает его полный путь в SourceSafe, а также кто и когда сделал checkout.

    Полученный CSV-файл можно загрузить в Microsoft Excel для последующего анализа.

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

    • Прежде чем запустить скрипт, измените параметры Path, User, Password и StartFrom в соответствии с Вашей ситуацией.
    • Алгоритм работы прост - мы открываем базу данных SourceSafe с заданными именем пользователя и паролем, и, начиная с заданной точки, рекурсивно обходим все проекты. В каждом проекте мы извлекаем информацию о checked-out файлах и записываем ее в текстовый CSV-файл.
    • Запись в CSV-файл осуществляется стандартно, через объект FileSystemObject.

    Листинг

    Option Explicit ' Измените эти параметры в соответствии с Вашей ситуацией Dim Path, User, Password, StartFrom Path = "C:\Program Files\Microsoft Visual Studio\VSS\srcsafe.ini" ' полный путь к файлу srcsafe.ini User = "user" ' имя пользователя SourceSafe Password = "password" ' пароль пользователя StartFrom = "$\" ' проект, с которого начинать рекурсию ' Создаем пустой CSV-файл и пишем в него заголовок Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") Dim File Set File = FSO.OpenTextFile("checkouts.csv", 2, True) File.WriteLine """File Path"";""User Name"";""Checkout Time""" ' Открываем SourceSafe Dim VSSDatabase Set VSSDatabase = CreateObject("SourceSafe.0") VSSDatabase.Open Path, User, Password Dim RootItem Set RootItem = VSSDatabase.VSSItem(StartFrom) ' Рекурсивно проходим по всем проектам Scanner RootItem.Items ' Закрываем SourceSafe Set VSSDatabase = Nothing ' Закрываем файл File.Close Set FSO = Nothing ' Все MsgBox "Finished.", vbInformation WScript.Quit ' -------------------------------------------------------------------- ' Процедура рекурсивного прохода по всем проектам Sub Scanner(Items) Dim Item For Each Item In Items If Item.Type = 0 Then ' VSSITEM_PROJECT Scanner Item.Items ElseIf Item.Type = 1 Then ' VSSITEM_FILE If Item.IsCheckedOut Then Dim Checkout For Each Checkout In Item.Checkouts ' цикл на случай multiple checkouts File.WriteLine """" & Item.Spec & _ """;" & Checkout.UserName & _ ";""" & Checkout.Date & """" Next End If End If Next End Sub ' --------------------------------------------------------------------
    Полезные ActiveX
     
    Dimac w3 JMail
     

    Кратко

    Этот бесплатный и очень популярный ActiveX позволяет выполнять следующие действия:
    • посылка почтовых сообщений по протоколу SMTP;
    • прием почты по протоколу POP3;
    • шифровка писем с помощью PGP;
    • массовая рассылка писем.

    Ссылки

    Домашняя страница
    Скачать дистрибутив
    Скачать документацию
    Стартовая страница сервера (там есть и другие компоненты!)

    Объект JMail.SpeedMailer

    Этот объект позволяет осуществлять посылку писем с помощью вызова буквально одного метода этого объекта. Письмо можно послать тремя способами:
    • по протоколу SMTP;
    • через pickup-каталог;
    • через не очень пока для меня понятный метод SendXMLMail.

    Простая посылка письма по протоколу SMTP

    Во-первых, создаем объект SpeedMailer:

    Set JMail = CreateObject("JMail.SpeedMailer") А теперь посылаем письмо: JMail.SendMail "me@myDomain.com", "scripting@narod.ru", _ "Subject", "Body", "smtp.narod.ru" Первый параметр - это адрес или имя отправителя, может быть любым. Второй параметр - адрес получателя. Третий - заголовок письма, четвертый - тело письма. Пятый - имя доступного Вам SMTP-сервера, через который будет отправлено письмо.

    Можно послать письмо сразу нескольким адресатам. В этом случае их адреса разделяются запятой:

    JMail.SendMail "me@myDomain.com", "scripting@narod.ru, me@myDomain.com", _ "Subject", "Body", "smtp.narod.ru"

    А теперь все вместе:

    Option Explicit Dim JMail Set JMail = CreateObject("JMail.SpeedMailer") JMail.SendMail "me@myDomain.com", "scripting@narod.ru", _ "Subject", "Body", "smtp.narod.ru" Set JMail = Nothing

    Продолжение следует...

     
    Новые статьи из Microsoft Knowledge Base
     
    Enhanced Split Function for Text Parsing
     
    Статья посвящена использованию функции Split. Эта функция принимает на входе строку, разбивает ее на части в соответствии с указанным разделителем и возвращает массив строк.
     
    Разное
     
    Основные разделы сайта рассылки
     
    • Главная страница - Главная страница сайта: scripting.narod.ru.
    • Новости - Новости мира Windows Scripting.
    • Вопросы и ответы - В этом разделе Вы можете найти ответы на часто задаваемые вопросы и задать свой.
    • Скрипты - Здесь содержатся исходные тексты скриптов, в основном на VBScript.
    • ActiveX - Аннотированный список ActiveX-компонент, которые могут быть полезными при написании скриптов.
    • Книжная полка - Избранные книги по тематике сайта.
    • Knowledge Base - Ссылки на избранные статьи из Microsoft Knowledge Base.
    • Конференции - Список избранных телеконференций, посвященных скриптингу.
    • Ссылки - Список ссылок на сайты схожей тематики.
     
    Обратная связь