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

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

Ветеран


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

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


На WSH, пробуйте:
читать дальше »
Код: Выделить весь код
Option Explicit

Dim strProcessName
Dim arrPaths

Dim strLocalAppDataPath
Dim arrItem

Dim objSWbemServicesEx


strProcessName = "chrome.exe"

strLocalAppDataPath = WScript.CreateObject("Shell.Application").NameSpace("shell:Local AppData").self.Path

With WScript.CreateObject("Scripting.FileSystemObject")
	arrPaths = Array( _
		Array(.BuildPath(strLocalAppDataPath, "Google\Chrome\User Data"),         "Local State"), _
		Array(.BuildPath(strLocalAppDataPath, "Google\Chrome\User Data\Default"), "Preferences") _
	)
	
	For Each arrItem In arrPaths
		If Not .FileExists(arrItem(1)) Then
			WScript.Echo "Source file [" & arrItem(1) & "] not found."
			WScript.Quit 1
		End If
		
		If Not .FolderExists(arrItem(0)) Then
			WScript.Echo "Destination folder [" & arrItem(0) & "] not found."
			WScript.Quit 2
		End If
	Next
	
	Set objSWbemServicesEx = WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
	
	Do
		WaitForCloseAllProcesses
		
		For Each arrItem In arrPaths
			.CopyFile arrItem(1), .BuildPath(arrItem(0), arrItem(1)), True
		Next
		
		WaitForStartAnyProcess
	Loop
	
	Set objSWbemServicesEx = Nothing
End With

WScript.Quit 0
'=============================================================================

'=============================================================================
Sub WaitForCloseAllProcesses()
	Do Until objSWbemServicesEx.ExecQuery( _
		"SELECT * FROM Win32_Process WHERE Name = '" & strProcessName & "'" _
	).Count = 0
		objSWbemServicesEx.ExecNotificationQuery( _
			"SELECT * FROM __InstanceDeletionEvent " & _
			"WITHIN 1 WHERE TargetInstance ISA 'Win32_Process' AND " & _
			"TargetInstance.Name = '" & strProcessName & "'" _
		).NextEvent
	Loop
End Sub
'=============================================================================

'=============================================================================
Sub WaitForStartAnyProcess()
	objSWbemServicesEx.ExecNotificationQuery( _
		"SELECT * FROM __InstanceCreationEvent " & _
		"WITHIN 1 WHERE TargetInstance ISA 'Win32_Process' AND " & _
		"TargetInstance.Name = '" & strProcessName & "'" _
	).NextEvent
End Sub
'=============================================================================
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:26, 09-08-2014 | #23