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

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

Ветеран


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

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


Стыд. Стыд и позор. Я не представляю — как?! Как могло случиться, что я ошибся в таком элементарном действии, как вставка кода в сообщение?! Как я мог на этом этапе потерять функцию?! Ладно, шут с ним. Но почему я не проверил код после Вашего первого сообщения, а решил, что Вы пытались запустить две строки вместо кода из спойлера?! И с настойчивостью долдона твердил одно и то же, вместо того, чтобы просто взять и проверить сам код? Не знаю.

Коллега! Я был не прав. Приношу Вам свои искренние извинения, буде таковые могут быть приняты.

Вот тот же код вместе с потерянной функцией:
читать дальше »
Код: Выделить весь код
Option Explicit

Const adVarChar = 200

Dim strComputer

Dim objSWbemLocator
Dim objSWbemServicesEx
Dim collSWbemObjectSet
Dim objSWbemObjectEx


strComputer = "."

Set objSWbemLocator    = WScript.CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
Set collSWbemObjectSet = objSWbemServicesEx.ExecQuery("SELECT * FROM  Win32_Service")

With WScript.CreateObject("ADODB.Recordset")
	With .Fields
		.Append "Name",        adVarChar, 2^15 - 1
		.Append "DisplayName", adVarChar, 2^15 - 1
		.Append "State",       adVarChar, 2^15 - 1
	End With
	
	.Open
	.Sort = "DisplayName ASC"
	
	For Each objSWbemObjectEx In collSWbemObjectSet
		.AddNew Array("Name", "DisplayName", "State"), Array(objSWbemObjectEx.Name, objSWbemObjectEx.DisplayName, objSWbemObjectEx.State)
	Next
	
	.MoveFirst
	
	Do Until .EOF
		With .Fields
			WScript.Echo StrConvert(.Item("Name").Value & vbTab & .Item("State").Value & vbTab & .Item("DisplayName").Value, "windows-1251", "cp866")
			WScript.Echo StrConvert(.Item("Name").Value & vbTab & .Item("State").Value & vbTab & .Item("DisplayName").Value, "cp866", "windows-1251")
		End With
		
		.MoveNext
	Loop
	
	.Close
End With

Set collSWbemObjectSet = Nothing
Set objSWbemServicesEx = Nothing
Set objSWbemLocator    = Nothing

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

'=============================================================================
Function StrConvert(strText, strSourceCharset, strDestCharset)
	Const adTypeText = 2
	Const adModeReadWrite = 3
	
	With WScript.CreateObject("ADODB.Stream")
		.Type = adTypeText
		.Mode = adModeReadWrite
		
		.Open
		.Charset = strSourceCharset
		.WriteText strText
		
		.Position = 0
		.Charset = strDestCharset
		
		strConvert = .ReadText
	End With
End Function
'=============================================================================

Последний раз редактировалось Iska, 22-12-2012 в 14:45.

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

Отправлено: 14:29, 22-12-2012 | #18