Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Run в VBE

Ответить
Настройки темы
VBS/WSH/JS - [решено] Run в VBE

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: giperion85
Дата: 11-03-2012
Здравствуйте, возникла необходимость запуска из vbs внешнего exe, с этим ни каких проблем нет, run объекта WScript.Shell. Но мне нужно указать рабочий каталог отличный от места нахождения самого exe, вот как это сделать не пойму. Можно конечно схитрить и сделать Run "cmd /c start /D c:\WorkDir c:\App\Start.exe" но это все как то не эстетично. Пробовал передавать в параметрах ярлык с уже указанным рабочим каталогом открывается диалоговое окно с предложением переместить ярлык, почему? Есть может у кого какие мысли?

Отправлено: 19:24, 11-03-2012

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


giperion85, есть несколько способов.

1. Сменить текущий каталог, запустить процесс, восстановить текущий каталог:
Код: Выделить весь код
Option Explicit

Dim objWshShell
Dim strCurFolder

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

strCurFolder = objWshShell.CurrentDirectory

objWshShell.CurrentDirectory = "c:\Temp"
objWshShell.Run "notepad.exe", 1, False

objWshShell.CurrentDirectory = strCurFolder

Set objWshShell = Nothing

WScript.Quit 0
2. Использовать Wbem:
Код: Выделить весь код
Option Explicit

Dim strComputer
Dim lngProcessID

Dim objSWbemLocator
Dim objSWbemServicesEx


strComputer = "."

Set objSWbemLocator    = WScript.CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")

If objSWbemServicesEx.Get("Win32_Process").Create("notepad.exe", "c:\Temp", Null, lngProcessID) = 0 Then
	WScript.Echo "Process [notepad.exe] created successfully. Process ID: [" & lngProcessID & "]."
Else
	WScript.Echo "Process [notepad.exe] could not be created."
End If

Set objSWbemServicesEx = Nothing
Set objSWbemLocator    = Nothing

WScript.Quit 0
Я намеренно привёл явно избыточный код для ясности понимания процесса.
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:21, 12-03-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо. + сегодня все таки запустил через run ярлык, просто не верно путь указывал

Отправлено: 21:44, 12-03-2012 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Run в VBE

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Need for Speed: The Run 21h Игры 44 11-09-2013 21:07
VBA - run-time error иоанн Программирование и базы данных 2 02-10-2012 19:44
Не работает команда Run archiver AutoIt 6 30-12-2009 22:01
Ошибка - Can't run 16-bit Windows program insufficient memory to run application kris2002 Microsoft Windows 2000/XP 4 11-08-2008 19:50
Shortcuts don't Run - Unable to run this command eXtremer Microsoft Windows NT/2000/2003 1 12-06-2007 12:11




 
Переход