WRFan
Gold Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ещё раз переписал скрипт для нормализации окон (см. внизу), добаил исправление размеров окна. для выяснения данных height и width использую WMI. вообще WMI - очень интересная штука, с её помощью можно делать, что угодно - мониторить изменение файлов, создание папок и файлов, читать реестр, писать в реестр, мониторить перформанс процессов и т.д. язык правда жуть какой тяжёлый. вчера 10 часов подряд писал скрипт для мониторинга создания файлов в определённой папке. весь скрипт на 102 строчки, да ещё и жрёт 70% cpu, если много файлов в папке. но всё равно интересно WMI Reference: http://msdn2.microsoft.com/en-us/library/aa394572.aspx WQL (SQL for WMI) Reference: http://msdn2.microsoft.com/en-us/library/aa394606.aspx Код: ON ERROR RESUME NEXT set objShell = CreateObject("Shell.Application") set objShellWindows = objShell.Windows Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * From Win32_DisplayConfiguration") For Each objItem in colItems height = objItem.PelsHeight width = objItem.PelsWidth Next for each obj in objShellWindows if obj.type = "HTML-Dokument" then if (not Err = 430) then 'is the window IE or WE? WE Class doesnt support Automation, returning error 430 Err.Clear if (objShellWindows.count > 0) and (obj.visible = false) then if (not Err = 424) then 'if invisible IE windows exist (an invisible InternetExplorer.Application might be in memory). Error 424 (Object required) means either no windows open, or the entire objShell crashed! obj.visible = true end if end if obj.fullscreen = false obj.resizable = true obj.menubar = true obj.statusbar = true obj.theatermode = false obj.toolbar = true obj.addressbar = true obj.statustext = "" ' doesnt work properly! obj.height = height 'if resolution height is e.g. 840, actual height is 842. Everything above 833 is ignored and set to 842 obj.width = width end if end if Err.Clear next set objShellWindows = nothing set objShell = nothing 'For testing the script with invisible IE windows use the following script: 'Set objIE = WScript.CreateObject("InternetExplorer.Application","objIE_") 'objIE.visible = false 'msgbox objShellWindows.count 'Execute the Window Normalisation Script BEFORE clicking away the msgbox! |
| Всего записей: 5275 | Зарегистр. 25-11-2002 | Отправлено: 02:51 28-12-2006 | Исправлено: WRFan, 02:56 28-12-2006 |
|