|
Открыть в браузере статью Microsoft Knowledge Base по ее номеруВ файле kbase.vbs (листинг 1) находится функция GetKBaseArticleUrl, которая по номеру статьи Microsoft Knowledge Base генерирует соответствующий ей URL.В файле kbase.wsf (листинг 2) помещен скрипт, запрашивающий через диалог номер статьи и открывающий эту статью в браузере по умолчанию. Запрос номера статьи можно сделать и на HTML-странице через форму: Исходный текст формы и сопутствующего ей скрипта находится в листинге 3. Обратите внимание - скрипт на JScript с легкостью вызывает скриптовую функцию на VBScript. Листинг 1: kbase.vbsOption Explicit Function GetKBaseArticleUrl(Number) GetKBaseArticleUrl = "" Number = UCase(Trim(Number)) If Left(Number, 1) <> "Q" Then Number = "Q" & Number Dim NumberLen NumberLen = Len(Number) If (NumberLen <> 6) And (NumberLen <> 7) Then Exit Function Const Digits = "0123456789" Dim I For I = 2 To NumberLen If InStr(Digits, Mid(Number, I, 1)) = 0 Then Exit Function Next GetKBaseArticleUrl = "http://support.microsoft.com/support/kb/articles/" & _ Left(Number, NumberLen - 3) & "/" & _ Mid(Number, NumberLen - 2, 1) & "/" & _ Right(Number, 2) & ".asp" End Function Листинг 2: kbase.wsf<job id="OpenKBase"> <script language="VBScript" src="kbase.vbs"/> <script language="VBScript"> Option Explicit Dim Number Number = InputBox("Пожалуйста, введите номер статьи Microsoft Knowledge Base." & _ vbNewLine & vbNewLine & _ "Примеры: 'Q185477', 'Q90904', '185477' или '90904'", WScript.ScriptName, "1") If Len(Number) = 0 Then WScript.Quit Dim Url Url = GetKBaseArticleUrl(Number) If Len(Url) = 0 Then MsgBox "Неправильный формат номера.", _ vbOkOnly + vbCritical, WScript.ScriptName WScript.Quit End If MsgBox Url, vbOkOnly + vbInformation, WScript.ScriptName Dim Shell Set Shell = CreateObject("WScript.Shell") Shell.Run Url Set Shell = Nothing </script> </job> Листинг 3<script language="VBScript" src="kbase.vbs"></script> <script language="JScript"> function OpenKBaseArticle() { var urlKBase = GetKBaseArticleUrl(kbase.article.value); if (0 == urlKBase.length) alert("Номер статьи введен неверно, обратите внимание на примеры!"); else window.open(urlKBase, "_new"); } </script> <form name="kbase"> Пожалуйста, введите номер статьи Microsoft Knowledge Base:<br> <input name="article" size="10" maxlength="10" value=""> <input type="button" value="Открыть!" onClick="jscript:OpenKBaseArticle();"><br> Примеры: 'Q185477', 'Q90904', '185477' или '90904' </form
|