Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ShellExecuteEx в VBScript+WSH / 11 сообщений из 11, страница 1 из 1
02.09.2014, 16:00
    #38735138
XDiaBLo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ShellExecuteEx в VBScript+WSH
Он там вообще доступен? Никак не получается. Просто я сделал изначально с ShellExecute, а там оказывается скрипт не ждёт когда закончится выполнение запущенного exe-файла. Решил переделывать.
...
Рейтинг: 0 / 0
03.09.2014, 14:23
    #38736223
XDiaBLo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ShellExecuteEx в VBScript+WSH
Вообще у меня сделано так, отрывочек:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Set ar = New clsArguments
ar.ParseArguments

Set objShellApp = CreateObject("Shell.Application")
params = ar.Argument("P_USER") & "/" & ar.Argument("P_PASSWORD") & "@" &  ar.Argument("P_SRVR") & " @"""  & ar.Argument("SCRIPT_PATH") & """ " & ar.Argument("FIN_ID") & " " & ar.Argument("DATE_FROM") & " " & ar.Argument("RESULT_PATH")

objShellApp.ShellExecute  "sqlplus.exe", params, "", "", 0


Но эта гадость не ждёт пока экзешник завершит работу. А нужно чтобы ждала.
...
Рейтинг: 0 / 0
03.09.2014, 15:04
    #38736291
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ShellExecuteEx в VBScript+WSH
Ожидание можно сделать в цикле, проверяя через wmi, не пропал ли из памяти процесс sqlplus.exe.
В цикл можно добавить WScript.Sleep, чтобы ожидание было не сильно напряжно для процессора.
...
Рейтинг: 0 / 0
03.09.2014, 15:12
    #38736324
XDiaBLo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ShellExecuteEx в VBScript+WSH
AntonariyОжидание можно сделать в цикле, проверяя через wmi, не пропал ли из памяти процесс sqlplus.exe.
В цикл можно добавить WScript.Sleep, чтобы ожидание было не сильно напряжно для процессора.
Хмм, интересно конечно, но что если в данный момент несколько sqlplus.exe болтается, а так и будет?
...
Рейтинг: 0 / 0
03.09.2014, 15:23
    #38736353
XDiaBLo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ShellExecuteEx в VBScript+WSH
О, что-то нашёл
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<package>
	<job>
		<script language="VBScript">
Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("notepad.exe")
WScript.Sleep 2000
MsgBox "status - " & WshExec.Status
WshExec.Terminate
WScript.Sleep 2000
MsgBox "status - " & WshExec.Status
		</script>
	</job>
</package>


Умотался искать.
...
Рейтинг: 0 / 0
03.09.2014, 15:35
    #38736388
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ShellExecuteEx в VBScript+WSH
XDiaBLoAntonariyОжидание можно сделать в цикле, проверяя через wmi, не пропал ли из памяти процесс sqlplus.exe.
В цикл можно добавить WScript.Sleep, чтобы ожидание было не сильно напряжно для процессора.
Хмм, интересно конечно, но что если в данный момент несколько sqlplus.exe болтается, а так и будет?ShellExecute возвращает processId, идентифицировать по нему.

XDiaBLoО, что-то нашёлЭтот код тоже не ждет, ему так же нужен цикл, зато не нужен WMI.

Про объект WshExec я раньше не слышал.
...
Рейтинг: 0 / 0
03.09.2014, 15:47
    #38736425
XDiaBLo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ShellExecuteEx в VBScript+WSH
AntonariyЭтот код тоже не ждет, ему так же нужен цикл, зато не нужен WMI.
Но никто не мешает мне в цикле проверять статус.
...
Рейтинг: 0 / 0
03.09.2014, 16:11
    #38736487
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ShellExecuteEx в VBScript+WSH
XDiaBLoAntonariyЭтот код тоже не ждет, ему так же нужен цикл, зато не нужен WMI.
Но никто не мешает мне в цикле проверять статус.И я не буду! :)
...
Рейтинг: 0 / 0
04.09.2014, 06:59
    #38737002
XDiaBLo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ShellExecuteEx в VBScript+WSH
AntonariyXDiaBLoпропущено...

Но никто не мешает мне в цикле проверять статус.И я не буду! :)
Ну почему-же, вот сделал
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<package>
	<job>
		<script language="VBScript" src="..\Script.vbs"/>
		<script language="VBScript" src="..\Way4.vbs"/>
		<script language="VBScript">

Set ar = New clsArguments
ar.ParseArguments

Dim params
params = "sqlplus.exe " & ar.Argument("P_USER") & "/" & ar.Argument("P_PASSWORD") & "@" &  ar.Argument("P_SRVR") & " @"""  & ar.Argument("SCRIPT_PATH") & """ " & ar.Argument("FIN_ID") & " " & ar.Argument("DATE_FROM") & " " & ar.Argument("RESULT_PATH")

Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec(params)
While WshExec.Status=0
	WScript.Sleep 5000
Wend
		</script>
	</job>
</package>


Это всего лишь запускатор sqlplus.exe, для одной корпоративной программы, из которой напрямую экзешник запускать мне очень неудобно.
...
Рейтинг: 0 / 0
04.09.2014, 11:28
    #38737247
ShellExecuteEx в VBScript+WSH
XDiaBLoНо эта гадость не ждёт пока экзешник завершит работу. А нужно чтобы ждала.Про третий параметр Run Method (Windows Script Host) почитайте.
...
Рейтинг: 0 / 0
04.09.2014, 11:57
    #38737289
XDiaBLo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ShellExecuteEx в VBScript+WSH
13-й кварталXDiaBLoНо эта гадость не ждёт пока экзешник завершит работу. А нужно чтобы ждала.Про третий параметр Run Method (Windows Script Host) почитайте.
Спасибо, просто я уже всё сделал, но лишний раз убедился, что трудно искать что-либо связанное с VBScript и WSH.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ShellExecuteEx в VBScript+WSH / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]