Что нового

Скрытие обновлений Windows. Перевод с VBS -> Autoit

Статус
Закрыто для дальнейших ответов.

k790

Новичок
Сообщения
239
Репутация
1
Здравствуйте!
Пытаюсь перевести с VBS на AutoIt и пока безуспешно, подскажите, почему AutoIt зависает на этой строчке:
Код:
$searchResult = $updateSearcher.Search("Type='Software' and IsInstalled=0")


Исходный код
Код:
Dim hideupdates(7)
hideupdates(0) = "Microsoft Security Essentials - KB2267621"
hideupdates(1) = "Microsoft Security Essentials - KB2691894"
hideupdates(2) = "Bing Desktop"
hideupdates(3) = "Windows Internet Explorer 9 for Windows 7"
hideupdates(4) = "Windows Internet Explorer 9 for Windows 7 for x64-based Systems"
hideupdates(5) = "KB971033"
hideupdates(6) = "Update for Windows 7 for x64-based Systems (KB971033)"
hideupdates(7) = "KB2483139"
 
set updateSession = createObject("Microsoft.Update.Session")
set updateSearcher = updateSession.CreateupdateSearcher()
set searchResult = updateSearcher.Search("IsInstalled=0 and Type='Software'")
 
For i = 0 To searchResult.Updates.Count-1
 set update = searchResult.Updates.Item(i)
 For j = LBound(hideupdates) To UBound(hideupdates)
  if instr(1, update.Title, hideupdates(j), vbTextCompare) > 0 then
   Wscript.echo "Hiding " & hideupdates(j)
   update.IsHidden = True
  end if
 Next
Next

AutoIt код:
Код:
#include <Array.au3>
$updateSession = ObjCreate("Microsoft.Update.Session")
$updateSearcher = $updateSession.CreateupdateSearcher()
$searchResult = $updateSearcher.Search("Type='Software' and IsInstalled=0")
$hideupdates1 = "KB2876229"

For $i = 0 To $searchResult.Updates.Count - 1
	$update = $searchResult.Updates.Item($i)
	If StringInStr($update.Title, $hideupdates1) > 0 Then
		msgbox (0, "", "Hiding " & $hideupdates1)
		$update.IsHidden = True
	EndIf
Next
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
:smile:
а в VBS работает?
OffTopic:
KB971033 ;)
 
Автор
K

k790

Новичок
Сообщения
239
Репутация
1
joiner [?]
Не знаю, я так же не знаю на сколько он рабочий)))
Но почему не работает поиск? И как по этим объектам графически походить...
 

Cornet

Знающий
Сообщения
41
Репутация
6
Поиск работает и это не AutoIt зависает, а поиск в Microsoft.Update так тормознуто работает.
Код:
$updateSession = ObjCreate("Microsoft.Update.Session")
$updateSearcher = $updateSession.CreateupdateSearcher()
$t = TimerInit()
$searchResult = $updateSearcher.Search("IsInstalled=0 and Type='Software' and IsHidden=0")
ConsoleWrite(TimerDiff($t) & '    ' &  $searchResult.Updates.Count & @CRLF)

У меня на мощной машине время выполнения: 61186.9630866038 миллисекунд найдено 53 апдейта
 
Автор
K

k790

Новичок
Сообщения
239
Репутация
1
Cornet
А есть какое-нибудь графическое представление этого? А то в коде
Код:
$update = $searchResult.Updates.Item($i)
$update.IsHidden = True

соответствует 1-й строке
а вот это второй

Но в документах майросовта, это находится в разных ветках и это странно...


Cornet [?]
У меня на мощной машине время выполнения: 61186.9630866038 миллисекунд найдено 53 апдейта
А у меня: 169200.418050685 мс (~3 минуты) и 8 обновлений.

OffTopic:
Текст удален. Еще нечто подобное и будут санкции. Читайте правила форума.

madmasles
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Тема закрыта, последние сообщения удалены.
 
Статус
Закрыто для дальнейших ответов.
Верх