Показать полную графическую версию : [решено] Как сделать чтобы когда я запускал ярлык запускалось две программы
Как сделать чтобы когда я запускал ярлык запускалось две программы и когда я выхожу выходило их двух программ?
Ну запуск 2х программ можно сделать БАТником , а вот закрытие я не знаю :С
Например, так:
Option Explicit
Dim strApplication1
Dim strApplication2
Dim strComputer
Dim objSWbemLocator
Dim objSWbemServicesEx
Dim objSWbemObjectEx
Dim objSWbemEventSource
Dim objSWbemObjectEx_AnEvent
Dim lngProcessID1
Dim lngProcessID2
strApplication1 = "Notepad.exe"
strApplication2 = "Calc.exe"
strComputer = "."
Set objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
Set objSWbemObjectEx = objSWbemServicesEx.Get("Win32_Process")
If objSWbemObjectEx.Create(strApplication1, Null, Null, lngProcessID1) = 0 Then
If objSWbemObjectEx.Create(strApplication2, Null, Null, lngProcessID2) = 0 Then
Set objSWbemEventSource = objSWbemServicesEx.ExecNotificationQuery( _
"SELECT * FROM __InstanceDeletionEvent WITHIN 1 " & _
"WHERE TargetInstance ISA 'Win32_Process' " & _
"AND (TargetInstance.Handle = '" & CStr(lngProcessID1) & "' " & _
"OR TargetInstance.Handle = '" & CStr(lngProcessID2) & "')")
Do
Set objSWbemObjectEx_AnEvent = objSWbemEventSource.NextEvent
Select Case objSWbemObjectEx_AnEvent.TargetInstance.ProcessID
Case lngProcessID1
If objSWbemServicesEx.Get("Win32_Process.Handle='" & CStr(lngProcessID2) & "'").Terminate(0) <> 0 Then
WScript.Echo "Can't terminate process [" & objSWbemServicesEx.Get("Win32_Process.Handle='" & CStr(lngProcessID2) & "'").Name & "]" & vbCrLf & _
"Close it manually"
End If
Exit Do
Case lngProcessID2
If objSWbemServicesEx.Get("Win32_Process.Handle='" & CStr(lngProcessID1) & "'").Terminate(0) <> 0 Then
WScript.Echo "Can't terminate process [" & objSWbemServicesEx.Get("Win32_Process.Handle='" & CStr(lngProcessID1) & "'").Name & "]" & vbCrLf & _
"Close it manually"
End If
Exit Do
Case Else
' Nothing to do
End Select
Loop
Set objSWbemObjectEx_AnEvent = Nothing
Set objSWbemEventSource = Nothing
Else
WScript.Echo "Can't create process [" & strApplication2 & "]"
End If
Else
WScript.Echo "Can't create process [" & strApplication1 & "]"
End If
Set objSWbemObjectEx = Nothing
Set objSWbemServicesEx = Nothing
Set objSWbemLocator = Nothing
WScript.Quit 0
Сохраните код в файле с расширением «.vbs». Создайте на него ярлык и попробуйте исполнить. В роли «двух программ» выступают Блокнот и Калькулятор.
Если всё работает, как Вам потребно — поменяйте в коде скрипта имена исполняемых файлов Блокнота и Калькулятора:
strApplication1 = "Notepad.exe"
strApplication2 = "Calc.exe"
на полные пути к Вашим двум приложениям.
P.S. Снятие приложений по «.Terminate()» — «жёсткое», следствие — не сохранённые данные приложения теряются.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.