powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ShellExecuteEx в VBScript+WSH
11 сообщений из 11, страница 1 из 1
ShellExecuteEx в VBScript+WSH
    #38735138
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Он там вообще доступен? Никак не получается. Просто я сделал изначально с ShellExecute, а там оказывается скрипт не ждёт когда закончится выполнение запущенного exe-файла. Решил переделывать.
...
Рейтинг: 0 / 0
ShellExecuteEx в VBScript+WSH
    #38736223
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще у меня сделано так, отрывочек:
Код: 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
ShellExecuteEx в VBScript+WSH
    #38736291
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ожидание можно сделать в цикле, проверяя через wmi, не пропал ли из памяти процесс sqlplus.exe.
В цикл можно добавить WScript.Sleep, чтобы ожидание было не сильно напряжно для процессора.
...
Рейтинг: 0 / 0
ShellExecuteEx в VBScript+WSH
    #38736324
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyОжидание можно сделать в цикле, проверяя через wmi, не пропал ли из памяти процесс sqlplus.exe.
В цикл можно добавить WScript.Sleep, чтобы ожидание было не сильно напряжно для процессора.
Хмм, интересно конечно, но что если в данный момент несколько sqlplus.exe болтается, а так и будет?
...
Рейтинг: 0 / 0
ShellExecuteEx в VBScript+WSH
    #38736353
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, что-то нашёл
Код: 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
ShellExecuteEx в VBScript+WSH
    #38736388
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLoAntonariyОжидание можно сделать в цикле, проверяя через wmi, не пропал ли из памяти процесс sqlplus.exe.
В цикл можно добавить WScript.Sleep, чтобы ожидание было не сильно напряжно для процессора.
Хмм, интересно конечно, но что если в данный момент несколько sqlplus.exe болтается, а так и будет?ShellExecute возвращает processId, идентифицировать по нему.

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

Про объект WshExec я раньше не слышал.
...
Рейтинг: 0 / 0
ShellExecuteEx в VBScript+WSH
    #38736425
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЭтот код тоже не ждет, ему так же нужен цикл, зато не нужен WMI.
Но никто не мешает мне в цикле проверять статус.
...
Рейтинг: 0 / 0
ShellExecuteEx в VBScript+WSH
    #38736487
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLoAntonariyЭтот код тоже не ждет, ему так же нужен цикл, зато не нужен WMI.
Но никто не мешает мне в цикле проверять статус.И я не буду! :)
...
Рейтинг: 0 / 0
ShellExecuteEx в VBScript+WSH
    #38737002
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
ShellExecuteEx в VBScript+WSH
    #38737247
XDiaBLoНо эта гадость не ждёт пока экзешник завершит работу. А нужно чтобы ждала.Про третий параметр Run Method (Windows Script Host) почитайте.
...
Рейтинг: 0 / 0
ShellExecuteEx в VBScript+WSH
    #38737289
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13-й кварталXDiaBLoНо эта гадость не ждёт пока экзешник завершит работу. А нужно чтобы ждала.Про третий параметр Run Method (Windows Script Host) почитайте.
Спасибо, просто я уже всё сделал, но лишний раз убедился, что трудно искать что-либо связанное с VBScript и WSH.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ShellExecuteEx в VBScript+WSH
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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