Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


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

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


Wu-Tang, так, теперь ясно. Насколько я понимаю, само приложение даже при указании запускать в свёрнутом окне тупо разворачивает своё окно до нормального состояния, и тут ничего не поделаешь.

Могу тогда разве что предложить скрипт, который будет сам запускать процесс, следить за ним, и при его завершении — тут же запускать новый экземпляр приложения (т.н., «псевдо-неубиваемый» процесс). И Вы будете помещать в автозагрузку уже ярлык не на приложение, а на этот скрипт.

Попробуйте так:
Код: Выделить весь код
Option Explicit

Const SW_SHOWMINNOACTIVE = 7

Dim objSWbemObjectEx
Dim lngProcessID


With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
	Set objSWbemObjectEx = .Get("Win32_ProcessStartup").SpawnInstance_
	objSWbemObjectEx.ShowWindow = SW_SHOWMINNOACTIVE

	Do
		If .Get("Win32_Process").Create( _
			"""C:\Program Files (x86)\TeamViewer\TeamViewer.exe""", Null, objSWbemObjectEx, lngProcessID _
		) = 0 Then
			
			.ExecNotificationQuery( _
				"SELECT * FROM __InstanceDeletionEvent WITHIN 1 WHERE " & _
				"TargetInstance ISA 'Win32_Process' AND " & _
				"TargetInstance.ProcessID = '" & CStr(lngProcessID) & "'").NextEvent
		Else
			' Не удалось запустить процесс
			Exit Do
		End If
	Loop
	
	Set objSWbemObjectEx = Nothing
End With

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:45, 30-12-2015 | #24