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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Run в VBE (http://forum.oszone.net/showthread.php?t=230076)

giperion85 11-03-2012 19:24 1877033

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

Iska 12-03-2012 02:21 1877329

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

Я намеренно привёл явно избыточный код для ясности понимания процесса.

giperion85 12-03-2012 21:44 1877938

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


Время: 18:59.

Время: 18:59.
© OSzone.net 2001-