Войти

Показать полную графическую версию : Помогите написать скрипт на последовательеый запуск команд


peterm
09-11-2012, 01:37
Здравствуйте !

Я хочу написать скрипт на последовательный запуск программ и открытие папок, но чтобы каждое следующее действие
выполнялось лишь после того как нормально выполниться предыдущее. Т.е. будет открыто окно для папки или
соответствующего приложения. Кроме того как вставлять паузы между командами я ничего не смог придумать.

Помогите пожалуйста.

Iska
09-11-2012, 01:57
peterm, приведите пример или Ваш код.

peterm
09-11-2012, 02:16
Option explicit

Dim WshShell, RetCode, objShellApp

Set WshShell = CreateObject("WScript.Shell")
Set objShellApp = CreateObject("Shell.Application")


objShellApp.Open("D:\Internet")
objShellApp.Open("D:\Internet\Doc Soft JavaScript vbScript WSH etc")


WshShell.Run "iexplore",1


WshShell.Run """C:\Program Files\Opera\opera.exe""",2


WshShell.Run "AcroRd32 " & _
"D:\__Temp Doc Soft\__Doc_0005\WSH\VBScript.pdf",2

WshShell.Run "AcroRd32 " & _
"D:\__Temp Doc Soft\WSH\Windows Scripting Host Programmer's Reference.pdf",2



WshShell.Run "hh D:\__Temp Doc Soft\WHS_Automation.chm",2
WshShell.Run "hh D:\__Temp Doc Soft\WSH\vbscrip5.chm",2
WshShell.Run "hh D:\__Temp Doc Soft\WSH\JScript5rus.chm",2

WshShell.Run """D:\__Temp Doc Soft\WSH\Scripts_for_Win_admins_Torres.djvu""",2

objShellApp.Open("D:\Projects\Scripts WSH Jscript Vbscript")

WshShell.Run "wordpad ""D:\__Temp Doc Soft\WSH\Kurs VBScript.rtf""",2

Iska
09-11-2012, 04:34
По поводу объекта «Shell.Application»: как правило, его методы асинхронны — он не ждёт завершения исполнения метода. Под старые ОС были обходные пути, позволяющие скрипту «сидеть и ждать», например, открытия окна Проводника, под нонешними вроде как сие больше не работает.

По поводу метода «.Run()» объекта «WScript.Shell»: метод синхронен, т.е. исполнение скрипта не продолжится, пока метод не будет исполнен. Однако, то, что метод исполнен, отнюдь не означает, что, например, здесь:
With WScript.CreateObject("WScript.Shell")
.Run "Photoshop.exe"
.Run "notepad.exe"
End With

окно Photoshop'а появится на экране раньше, нежели окно Блокнота, скорее наоборот. Ибо Photoshop, по сравнению с Блокнотом весьма и весьма «тяжеловесное» приложение.

Я понимаю, Вас как раз интересует определённый порядок расположения (наложения, «z-order») окон Проводника и запускаемых приложений, так?

peterm
09-11-2012, 15:35
Да именно так. И вообще как получить подтверждение ( код возврата ), что программв уже загрузилась. Это важно не
только для расположения окон.

Iska
09-11-2012, 15:51
И вообще как получить подтверждение ( код возврата ), что программв уже загрузилась. »
Здесь у Вас ошибка в терминах: получить код возврата, он же errorlevel, можно только по завершении приложения.

Самый простой путь — использовать библиотеку AutoItX и следить за окнами, ожидая потребного.

peterm
09-11-2012, 20:12
Спасибо я понял. Буду искать, что читать и думать, а если Вы приведете какой-нибудь пример исходного кода то
я буду Вам очень благодарен.

Iska
10-11-2012, 03:20
Смотрите обзор: Обзор библиотеки AutoItX3.dll (http://www.script-coding.com/AutiItX.html).

peterm
10-11-2012, 23:31
Спасибо !




© OSzone.net 2001-2012