Как удалить всплывающие сообщения из приложения VBS - PullRequest
0 голосов
/ 06 июля 2018

Я скачал этот vbs-скрипт, который предназначен для того, чтобы блокировать тратить время на такие сайты, как Facebook и YouTube. Он отлично работает, но я хочу, чтобы он работал совершенно тихо. Когда приложение выполняется, появляется сообщение Wscript, спрашивающее, хочу ли я запустить файл, и после нажатия «Да» появляется другое сообщение о том, что веб-сайты были заблокированы.

После просмотра кода я закомментировал сообщения о том, что веб-сайты заблокированы / разблокированы, что препятствовало их открытию, но затем веб-сайты не блокировались. Какие изменения необходимо внести в код, чтобы вообще ничего не появлялось, и поэтому другие пользователи не могут сказать, что приложение блокирует веб-сайты.

'Add the list of time wasting websites here
WebsitesToBlock = Array("twitter.com", "www.youtube.com", "www.facebook.com")

If WScript.Arguments.length =0 Then
    Set objShell = CreateObject("Shell.Application")
    objShell.ShellExecute "wscript.exe", Chr(34) & WScript.ScriptFullName & Chr(34) & " RunAsAdministrator", "", "runas", 1
Else
    Const ForReading = 1, ForWriting = 2

    Set shell = CreateObject("WScript.Shell")    
    root = shell.ExpandEnvironmentStrings("%systemroot%")     
    hostFile = root & "\system32\drivers\etc\hosts"
    tempFile = hostFile & ".bak"

    blocked = 0
    towrite = false

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f1 = fso.OpenTextFile(hostFile, ForReading, True)
    Set f2 = fso.OpenTextFile(tempFile, ForWriting, True)

    Do Until f1.AtEndOfStream

        line = f1.Readline
        towrite = true

        For Each URL in WebsitesToBlock
            If instr(line, URL) Then
                If blocked = 0 Then 
                    If left(line, 1) = "#" Then blocked = 1 Else blocked = 2
                End If
            towrite = false
            End If
        Next    

        If towrite Then f2.WriteLine line
    Loop

    For Each URL in WebsitesToBlock
        If blocked <> 2 Then
            f2.WriteLine "127.0.0.1" & vbTab & vbTab & URL 
        End If
    Next

    fso.Copyfile tempFile, hostFile

    f1.Close
    f2.Close

    If blocked = 2 Then 
        WScript.echo "Time wasting websites have now been unblocked on this computer" 
    Else
        WScript.echo "Time wasting websites are now blocked on this computer!" 
    End If

End If
...