Показать полную графическую версию : Скриншот панели управления и вставка в WORD
Создать файл сценариев, который выполняет следующие операции и организует обработку исключительных ситуаций:
1. Запустить модуль панели управления (см. таблицу). Сделать копию экрана для каждой страницы окна модуля в документ WORD и вставить поясняющий текст (можно на английском языке). Сохранить файл. Закрыть все окна. Представить текст скрипта и полученный файл.
Не могу понять,почему не открывает word и не делает скриншот
Option Explicit
Sub delaySendKeys(str)
WScript.Sleep 300 : WshShell.SendKeys str
End Sub
Dim WB, WshShell, PExec, i, Painter, SPath, FSO
set WshShell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WB = CreateObject("Word.Basic")
For I = 0 To 4
Set PExec = WshShell.Exec("%windir%\System32\rundll32.exe SHELL32.DLL,Control_RunDLL SYSDM.cpl,@0,"&i)
WScript.Sleep 500 : WB.SendKeys "{prtsc}" : WScript.Sleep 500 : PExec.Terminate()
Set Painter = WshShell.Exec("mspaint.exe") : WScript.Sleep 500
SPath = "C:\screen"&(i+1)&".png" : if FSO.FileExists(SPath) then FSO.DeleteFile(SPath)
WScript.Sleep 500
delaySendKeys("^v") : delaySendKeys("^s")
delaySendKeys(SPath) : delaySendKeys("{ENTER}")
WScript.Sleep 500
Painter.Terminate()
Next
WB.AppClose "Microsoft Word"
WScript.Quit
Не могу понять,почему не открывает word »
Открывает. Посмотрите процессы в Диспетчере задач. Но лучше:
Set WB = CreateObject("Word.Basic")
Set objWord = WScript.CreateObject("Word.Application")
Если Вам нужно Word увидеть:
objWord.Visible = True
Ну, и, закрывать:
objWord.Quit
Set objWord = Nothing
А так — мутное задание со странным выбором в качестве исполнителя WSH.
Iska, я не так выразился. Вроде скрипт и переходит по вкладкам и ворд в процессах висит,но скринов скрипт не делает
upward, гарантировать корректную работу «SendKeys()» практически невозможно. Пробуйте:
Option Explicit
Const wdCollapseEnd = 0
Dim objWshShell
Dim objWord
Dim objDocument
Dim objWB
Dim i
Dim strPath
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objWord = WScript.CreateObject("Word.Application")
Set objWB = WScript.CreateObject("Word.Basic")
Set objDocument = objWord.Documents.Add()
For i = 0 To 4
With objWshShell.Exec("""%SystemRoot%\System32\rundll32.exe"" SHELL32.DLL,Control_RunDLL SYSDM.cpl,@0," & CStr(i))
WScript.Sleep 1000
objWshShell.AppActivate .ProcessID
WScript.Sleep 300
objWB.SendKeys "%{PRTSC}", True
WScript.Sleep 1000
.Terminate()
End With
With objWord.Selection
.Paste
.Collapse wdCollapseEnd
.InsertParagraphAfter
.Collapse wdCollapseEnd
.TypeText "Рисунок " & CStr(i + 1)
.InsertParagraphAfter
.Collapse wdCollapseEnd
End With
Next
objDocument.SaveAs "c:\My Screenshots.doc"
objDocument.Close
objWord.Quit
Set objWord = Nothing
Set objWB = Nothing
Set objWshShell = Nothing
WScript.Quit
если вас не затруднит,можете пояснить что где и как и про «SendKeys()» »
прочитать где.
Спасибо заранее.
-----------------
при запуске скрипта sysdm.cpl открывает в свернутом режиме и автоматом должно по вкладкам переходить верно?
если вас не затруднит,можете пояснить что где и как и про
Цитата Iska:
«SendKeys()» »
прочитать где. »
Переведите, пожалуйста, на русский.
при запуске скрипта sysdm.cpl открывает в свернутом режиме и автоматом должно по вкладкам переходить верно? »
Нет, не верно.
Iska, скрипт который вы написали как он работает?
Так, как Вы заказывали:
Запустить модуль панели управления (см. таблицу). Сделать копию экрана для каждой страницы окна модуля в документ WORD и вставить поясняющий текст … . Сохранить файл. Закрыть все окна. »
Iska, а вы его запускали?просто что-то не то он делает. в плане скриншотов.
скрипт не переходит по вкладкам
Iska, а вы его запускали? »
Угу. Вот примерный результат:
http://img196.imageshack.us/img196/928/8p76.png
Когда нет возможности, я обычно так и пишу в скобках — «не проверялось».
просто что-то не то он делает. в плане скриншотов. »
Среда исполнения: Windows XP SP3, Microsoft Office 2003.
скрипт не переходит по вкладкам »
Скрипт и не «ходит по вкладкам». Каждый раз открывается окно свойств системы с заданной вкладкой:
"%SystemRoot%\System32\rundll32.exe" SHELL32.DLL,Control_RunDLL SYSDM.cpl,@0,0
"%SystemRoot%\System32\rundll32.exe" SHELL32.DLL,Control_RunDLL SYSDM.cpl,@0,1
"%SystemRoot%\System32\rundll32.exe" SHELL32.DLL,Control_RunDLL SYSDM.cpl,@0,2
"%SystemRoot%\System32\rundll32.exe" SHELL32.DLL,Control_RunDLL SYSDM.cpl,@0,3
"%SystemRoot%\System32\rundll32.exe" SHELL32.DLL,Control_RunDLL SYSDM.cpl,@0,4
после отсылки «Alt-PrintScreen» и паузы процесс принудительно «снимается».
Iska, спасибо за пояснение,у меня win8 jabc 2013.
у меня win8 jabc 2013. »
upward, проверил ещё на одной машине в том же окружении, работает. Ни одной Windows 8 у меня нет, Windows Server 2008 R2 без Microsoft Office, потому Ваше окружение проверять мне не на чем.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.