Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Скрипт для последовательного запуска нескольких программ (http://forum.oszone.net/showthread.php?t=94556)

skatet 16-11-2007 08:27 679663

Скрипт для последовательного запуска нескольких программ
 
Всем привет. У вас впервые. Появилась задача - переписать в се написанное на батниках на возможностях 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

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

amel27 17-11-2007 07:02 680181

skatet
Цитата:

Цитата skatet
У вас впервые »

- имхо для этой темы оффтоп;
- код скрипта нужно брать в теги "CODE";
- почему количество кавычек в примере и в пояснении разное?.. так работает:
Код:

Set WshShell = CreateObject("WScript.Shell")
RetCode = WshShell.Run("notepad", 1, vbTrue)
RetCode = WshShell.Run("""C:\Program Files\WinRAR\WinRAR.exe""", 1, vbTrue)
RetCode = WshShell.Run("notepad", 1, vbTrue)


skatet 17-11-2007 09:08 680194

1 - почему для этой темы оффтоп?
2 - код скрипта нужно брать в теги "CODE - для чего?, что они позволяют?
3 - количество кавычек в примере и в пояснении разное - сорри, не заметил - работает только при 3х кавычках
4 - отлично Скрипт заработал как надо!
5 - чем отличается параметр vbTrue от True? (сам тоже поищу ответ) - дело было только в этом?
Огромной Респект! :)

Еще вопрос возник теперь, если с запуском программ более проблем не будет, то как теперь сделать чтоб в зависимости от необходимости установки программ, скрипт перенаправлял на установку текущей программы или на запрос установки следующей программы?

ShaddyR 17-11-2007 12:05 680249

Цитата:

Цитата skatet
почему для этой темы оффтоп? »

вероятно, это потому, что тема называется
Цитата:

CMD/BAT - нужна помощь в написании *.bat файлов »
и в названии темы ничего не сказано про VB-скрипты? ;)

skatet 17-11-2007 12:40 680264

:) тем неменее на этом форуме много обсуждений скриптов.
Ну ладно, пойду туда..

amel27 19-11-2007 11:49 681343

skatet
Цитата:

Цитата skatet
Ну ладно, пойду туда »

хм... если перечисленных ниже тем мало создай свою, но тут все-таки про батники:

Хелп! Нужен скрипт на на WSH или VBS
Скрипт на VBS
VBS/WHS/JS - скрипты VBS

Цитата:

Цитата skatet
как теперь сделать чтоб в зависимости от необходимости установки программ, скрипт перенаправлял на установку текущей программы или на запрос установки следующей программы?

ты же вроде сам привел пример через WshShell.Popup :dont-know

skatet 19-11-2007 14:42 681428

все правильно, но:
|
| установить программу№1? |

Да нет
|
установка программы |
| |
| завершение установки | |
| |
| установить программу№2? |
и тд...

вот как надо

ммм пробелы оказ не учитываются

:) подстава

amel27 20-11-2007 06:41 681756

skatet
не понял - выход при согласии или при отказе... если второе то можно так:
Код:

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.Quit
End If

Цитата:

Цитата skatet
пробелы оказ не учитываются »

в теге CODE учитываются ;)

skatet 20-11-2007 07:59 681769

:) - "установить программу №1?":
- если да, то установка программы - ожидание окончания - "установить программу №2 ?" .
если да то тоже самое для Пр№3, 4 и т.д.
- если нет - то "установить программу №2 ?"
если нет то тоже самое для Пр№3, 4 и т.д.

"установить программу №1?":
1) - если да, то установка программы - ожидание окончания - "установить программу №2 ?" .
если да то тоже самое для Пр№3, 4 и т.д.
2) - если нет - то "установить программу №2 ?"
если нет то тоже самое для Пр№3, 4 и т.д.

amel27 21-11-2007 10:06 682541

skatet
ну и в чем проблема?
Код:

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

If WshShell.Popup("Text1",0,"Title1",vbOkCancel)=vbOk Then WshShell.Run "notepad.exe",1,vbTrue
If WshShell.Popup("Text2",0,"Title2",vbOkCancel)=vbOk Then WshShell.Run """c:\Program Files\WinRAR\WinRAR.exe""",1,vbTrue


skatet 21-11-2007 17:02 682806

пойду повешусь .. нет лучше поучу азы
Спасибо большое, час соиентируюсь, откомментирую

:) Спасибо.


Время: 10:16.

Время: 10:16.
© OSzone.net 2001-