skatet
16-11-2007, 08:27
Всем привет. У вас впервые. Появилась задача - переписать в се написанное на батниках на возможностях WSH.
Кто может подсказать - необходимо в VBS написать скрипт который бы запускал поочередно одну за другой запуск программ. Перед каждым запуском необходимо спросить - запустить программу, если да то запускает, после ее выключения запускает следующую, если ответ был нет, то сразу запускает 2ю и т.д. по той же схеме.
Вот начало как вариант:
Option Explicit
' Объявляем переменные
Dim WshShell,theNotepad,Res,Text,Title
' Создаем объект WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Text="Запуск установки программного обеспечения" & vbCrLf & "Установка Хранителя Паролей "
Title="Установка"
' Выводим диалоговое окно на экран
Res=WshShell.Popup(Text,0,Title,vbOkCancel)
' Определяем, какая из кнопок была нажата в диалоговом окне
If (Res=vbOk) Then
Set theNotepad = WshShell.Exec("C:\Program Files\KeePass-1.08\KeePass.exe")
Else
WScript.Sleep 100
End If
или вот еще скрипт. Как я понял WshShell.Run в отличие от WshShell.Exec позволяет дождаться завершения пред программы.
Set WshShell = CreateObject("WScript.Shell")
RetCode = WshShell.Run("notepad", 1, True)
RetCode = WshShell.Run(""C:\Program Files\KeePass-1.08\KeePass.exe"", 1, True)
RetCode = WshShell.Run("notepad", 1, True)
MsgBox "Обработка завершена! Код возврата - " & RetCode
Проблема возникла при запуске программ содерж. пробелы в назв. пути, ее попытался решить """путь длинный\программа""" но в этом случае очередность не соблюдается и все программы запускаются одновременно.
Кто может подсказать - необходимо в VBS написать скрипт который бы запускал поочередно одну за другой запуск программ. Перед каждым запуском необходимо спросить - запустить программу, если да то запускает, после ее выключения запускает следующую, если ответ был нет, то сразу запускает 2ю и т.д. по той же схеме.
Вот начало как вариант:
Option Explicit
' Объявляем переменные
Dim WshShell,theNotepad,Res,Text,Title
' Создаем объект WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Text="Запуск установки программного обеспечения" & vbCrLf & "Установка Хранителя Паролей "
Title="Установка"
' Выводим диалоговое окно на экран
Res=WshShell.Popup(Text,0,Title,vbOkCancel)
' Определяем, какая из кнопок была нажата в диалоговом окне
If (Res=vbOk) Then
Set theNotepad = WshShell.Exec("C:\Program Files\KeePass-1.08\KeePass.exe")
Else
WScript.Sleep 100
End If
или вот еще скрипт. Как я понял WshShell.Run в отличие от WshShell.Exec позволяет дождаться завершения пред программы.
Set WshShell = CreateObject("WScript.Shell")
RetCode = WshShell.Run("notepad", 1, True)
RetCode = WshShell.Run(""C:\Program Files\KeePass-1.08\KeePass.exe"", 1, True)
RetCode = WshShell.Run("notepad", 1, True)
MsgBox "Обработка завершена! Код возврата - " & RetCode
Проблема возникла при запуске программ содерж. пробелы в назв. пути, ее попытался решить """путь длинный\программа""" но в этом случае очередность не соблюдается и все программы запускаются одновременно.