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

Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 2000/XP » Разное - [решено] Как сделать чтобы когда я запускал ярлык запускалось две программы

Ответить
Настройки темы
Разное - [решено] Как сделать чтобы когда я запускал ярлык запускалось две программы

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


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

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


Как сделать чтобы когда я запускал ярлык запускалось две программы и когда я выхожу выходило их двух программ?

Отправлено: 18:20, 06-10-2011

 

Аватара для mirror

Пользователь


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

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


Ну запуск 2х программ можно сделать БАТником , а вот закрытие я не знаю :С

-------
Debian 6


Отправлено: 18:51, 06-10-2011 | #2



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

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


Ветеран


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

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


Например, так:
Код: Выделить весь код
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()» — «жёсткое», следствие — не сохранённые данные приложения теряются.
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:34, 07-10-2011 | #3


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


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

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


Iska, Спасибо!

Отправлено: 17:14, 07-10-2011 | #4



Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 2000/XP » Разное - [решено] Как сделать чтобы когда я запускал ярлык запускалось две программы

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Что нужно сделать, чтобы интернет вкл/выкл, когда вкл/выкл компьютер? Danil55555GV AutoIt 9 07-02-2012 21:56
2008 R2 - Как сделать так, чтобы при отключении RDP запущенные программы не отключались? goodguy Windows Server 2008/2008 R2 8 14-01-2011 09:59
Интерфейс - [решено] Как смастерить ярлык на две программы? severagent007 Microsoft Windows 2000/XP 8 09-06-2010 15:15
Теория - Как можно создать ярлык чтоб он запускал 2 .exe файла Rock Программирование и базы данных 9 18-05-2008 21:49
[решено] Как сделать, чтобы при выходе в инет включались автоматически определенные программы? yanvlad Microsoft Windows 2000/XP 15 25-02-2007 11:10




 
Переход