1

Тема: VBScript: переключение режима отображения картинок в Internet Explorer

Скриптовая утилита для упрощения переключения режима отображения картинок в MS Internet Explorer.

После инсталляции (запустить IEpictSwitch_install.vbs) в панели быстрого запуска появится иконка. Кроме того, в контекстном меню IE также появится дополнительный пункт "Картинки ВКЛ - ВЫКЛ". Пользуясь тем или иным способом, можно переключаться между режимами отображения картинок.

Иконка отражает текущее значение данной опции. При включении отображения картинок происходит автоматическое обновление текущей WEB-страницы.

Работоспособность проверялась на Windows XP SP3, IE 6 SP1. Потребуется установленный MS Office.

Автор решения - Slav.

Post's attachments

IEpictSwitch.zip 5.64 kb, 345 downloads since 2008-11-14 

You don't have the permssions to download the attachments of this post.
Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

2

Re: VBScript: переключение режима отображения картинок в Internet Explorer

Другой вариант, без индикации, только из IE (MS Office не нужен). Для рассылки сообщений использует библиотеку DynamicWrapperX, хотя можно использовать любой метод, от внешней утилиты nircmd.exe (nircmd.exe sysrefresh) до любой другой, умеющей посылать сообщения. Обновление страницы делается всегда для экземпляра, вызвавшего команду. Сама команда «Switch «Display inline images» setting» доступна из меню Tools (Сервис), из стандартной панели инструментов IE и из контекстного меню любого изображения на странице. По умолчанию, подразумевается, что страница IE Setting DisplayInlineImages Switcher.htm будет находиться по адресу C:\Program Files\IE Setting DisplayInlineImages Switcher, если иначе — надо соответствующим образом исправить файл регистрации IE Setting DisplayInlineImages Switcher On.reg. Проверялось на Microsoft Windows XP PE SP3, IE 6 SP1.

IE Setting DisplayInlineImages Switcher On.reg

REGEDIT4

[-HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Extensions\{F4BA6AD4-28BD-41C5-B918-E68D607695C1}]

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Extensions\{F4BA6AD4-28BD-41C5-B918-E68D607695C1}]
"CLSID"="{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"
"ButtonText"="Switch «Display inline images» setting"
"Default Visible"="Yes"
"Icon"="shell32.dll,251"
"HotIcon"="shell32.dll,251"
"MenuStatusBar"="Switch «Display inline images» setting"
"MenuText"="Switch «Display inline images» setting"
"Script"="C:\\Program Files\\IE Setting DisplayInlineImages Switcher\\IE Setting DisplayInlineImages Switcher.htm"


[-HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Switch «Display inline images» setting]

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Switch «Display inline images» setting]
@="C:\\Program Files\\IE Setting DisplayInlineImages Switcher\\IE Setting DisplayInlineImages Switcher.htm"
"Contexts"=dword:00000002
"Flags"=dword:00000000

IE Setting DisplayInlineImages Switcher Off.reg

REGEDIT4

[-HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Extensions\{F4BA6AD4-28BD-41C5-B918-E68D607695C1}]


[-HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Switch «Display inline images» setting]

IE Setting DisplayInlineImages Switcher.htm

<HTML>
    <HEAD>
        <TITLE>Save IE selected</TITLE>
        <SCRIPT language="VBScript">
            '=============================================================================
            Option Explicit
            
            Const HWND_BROADCAST    = &HFFFF
            Const WM_SETTINGCHANGE  = &H001A
            
            
            Dim objWshShell
            Dim objDynaWrapperX
            
            Dim strCurrSetting
            Dim objExtWindow
            
            
            Set objExtWindow = Window.External.MenuArguments
            Set objWshShell = CreateObject("WScript.Shell")
            
            On Error Resume Next
            Set objDynaWrapperX = CreateObject("DynamicWrapperX")
            
            If Err.Number <> 0 Then
                Err.Clear
                
                Window.Alert "Need properly installed free DynamicWrapperX library, see description and download links below." & vbCrLf & _
                             "" & vbCrLf & _
                             "English: http://www.script-coding.com/dynwrapx_eng.html" & vbCrLf & _
                             "Russian: http://www.script-coding.com/dynwrapx.html"
            Else
                objDynaWrapperX.Register "user32", "SendMessageW", "i=huuw"
                
                strCurrSetting = objWshShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Display Inline Images")
                
                If LCase(strCurrSetting) = "yes" Then
                    strCurrSetting = "no"
                Else
                    strCurrSetting = "yes"
                End If
                
                objWshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Display Inline Images", strCurrSetting, "REG_SZ"
                
                objDynaWrapperX.SendMessageW HWND_BROADCAST, WM_SETTINGCHANGE, 0, "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main"
                
                If objExtWindow.Document.queryCommandSupported("Refresh") And objExtWindow.Document.queryCommandEnabled("Refresh") Then
                    objExtWindow.Document.execCommand "Refresh"
                Else
                    objExtWindow.Location.Reload False
                End If
            End If
            
            On Error Goto 0
            
            Set objDynaWrapperX = Nothing
            Set objWshShell     = Nothing
            Set objExtWindow    = Nothing
            '=============================================================================
        </SCRIPT>
    </HEAD>
    <BODY>
    </BODY>
</HTML>

Автор решения - alexii.

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.