1 (изменено: Valera, 2011-05-18 13:39:40)

Тема: VBS: Очистка кэша Internet Explorer.

L_Welcome_MsgBox_Message_Text   = _
    "Отчистить кэш Internet Explorer?"
L_Welcome_MsgBox_Title_Text     = "Отчистка кэша Internet Explorer."
Call Welcome()

Dim wsh
Set wsh=CreateObject("WScript.Shell")
wsh.Run "%systemroot%\system32\RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255"

Sub Welcome()
    Dim intDoIt

    intDoIt =  MsgBox(L_Welcome_MsgBox_Message_Text, _
        vbOKCancel + vbInformation, _
        L_Welcome_MsgBox_Title_Text )
    If intDoIt = vbCancel Then
       WScript.Quit
    End If
End Sub

2

Re: VBS: Очистка кэша Internet Explorer.

Valera, не годится для Коллекции в таком виде. Вы ж не первый раз постите:

1. Заголовок:
* Отчистка?!
* Точка в заголовке из одного предложения — не нужна.

2. Код нужно оформлять тэгом «code».

3. Где хотя бы краткое пояснение (§3.10)? Я понимаю, Вы понимаете, сотня других, тех, кто не программирует — не поймёт и пройдёт мимо.

4. Вытекает из п.3: где границы применимости? Я, скажем, помню, что в IE6 такой функции нет:

---------------------------
RUNDLL
---------------------------
Ошибка в InetCpl.cpl
Отсутствует:ClearMyTracksByProcess
---------------------------
ОК   
---------------------------

А остальные?! Тоже нужно упомянуть.

5. Зачем так переусложнять простой скрипт: отдельная функция для MsgBox, абсолютно лишняя, названная непонятно зачем «Welcome()» — чтобы сильнее запутать? Всё укладывается в простую схему:

If MsgBox( _
    "Очистить кэш Internet Explorer?", vbOKCancel + vbInformation, "Очистка кэша Internet Explorer" _
    ) = vbOK Then
    
    WScript.CreateObject("WScript.Shell").Run """%systemroot%\system32\RunDll32.exe"" InetCpl.cpl,ClearMyTracksByProcess 255"
End If

Не нужно ничего лишнего.