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

Новости

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

Скрипты

ActiveX

Статьи

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

Knowledge Base

Конференции

Ссылки

 

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

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

 

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

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

 

 

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

 

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

 

Открыть в браузере статью Microsoft Knowledge Base по ее номеру

В файле kbase.vbs (листинг 1) находится функция GetKBaseArticleUrl, которая по номеру статьи Microsoft Knowledge Base генерирует соответствующий ей URL.

В файле kbase.wsf (листинг 2) помещен скрипт, запрашивающий через диалог номер статьи и открывающий эту статью в браузере по умолчанию.

Запрос номера статьи можно сделать и на HTML-странице через форму:

Пожалуйста, введите номер статьи Microsoft Knowledge Base:

Примеры: 'Q185477', 'Q90904', '185477' или '90904'
Исходный текст формы и сопутствующего ей скрипта находится в листинге 3. Обратите внимание - скрипт на JScript с легкостью вызывает скриптовую функцию на VBScript.

Листинг 1: kbase.vbs

Option 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