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

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

Аватара для Pozia

Ветеран


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

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


NiOl, отследил процессы. Их три: conhost.exe, dllhost.exe, rundll32.exe

По вашему методу должно быть так:

Код: Выделить весь код
rundll32.exe %SystemRoot%\system32\shell32.dll,Control_RunDLL %SystemRoot%\system32\desk.cpl desk,@Themes /Action:OpenTheme /file:"%SystemRoot%\Resources\themes\Spring WD.theme"
:Loop
for /f "tokens=1" %%F in ('tasklist^|find /c "conhost.exe"') do if not "%%F"=="0" GotTo :Loop
taskkill /im explorer.exe /F
start explorer.exe
exit
Но не работает. Почему?

Нашел другой метод (по сути тот же):
Скрипт:
Код: Выделить весь код
rundll32.exe %SystemRoot%\system32\shell32.dll,Control_RunDLL %SystemRoot%\system32\desk.cpl desk,@Themes /Action:OpenTheme /file:"%SystemRoot%\Resources\themes\Spring WD.theme"
Sleep.vbs
taskkill /im explorer.exe /F
start explorer.exe
exit
Скрипт Sleep.vbs:
Код: Выделить весь код
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
Set objRefresher = CreateObject("WbemScripting.SWbemRefresher")
Set colItems = objRefresher.AddEnum(objService, "Win32_Process").objectSet

Do Until False
    Wscript.Sleep 1000
    objRefresher.Refresh
    Flag = True
    For Each objItem in colItems
        If InStr(objItem.ExecutablePath, "dllhost.exe") Then
            Flag = False
        End If
    Next
    If Flag = True Then
        Exit Do
    End If
Loop

Wscript.Sleep 5000

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 19:27, 02-11-2010 | #8