Запустите Chrome с URL и режимом киоска с помощью VBS - PullRequest
1 голос
/ 05 июня 2019

Я хочу запустить Chrome с параметрами, используя код VBS, это моя программа:

  1. проверить, не запущен ли процесс Chrome:

  2. если так ... запустите Chrome с URL с параметрами режима киоска.

Set objShell = CreateObject("WScript.Shell") i = 1

strPC = "." strProfile = objShell.ExpandEnvironmentStrings("%LOCALAPPDATA%")


strPath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
--kiosk www.stackoverflow.com"

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strPC & "\root\cimv2")

Do While i = 1
    booChrome = False

    Set colProcesses = objWMIService.ExecQuery _
        ("Select * From Win32_Process")
    For Each objItem in colProcesses
        strProcessName = objItem.Caption
        If strProcessName = "chrome.exe" Then booChrome = True
    Next
    
    If booChrome = False Then objShell.Run(Chr(34) & strPath & Chr(34))
    WScript.Sleep 300000 Loop

Этот код не выполнен, но если я удаляю параметры из URL, его запуск Chrome well

1 Ответ

0 голосов
/ 07 июня 2019

Я создал и протестировал этот VBScript на Windows 10 (32 бита).

Итак, вы должны изменить его для своих целей.

Option Explicit
Dim ProcessPath,KioskMode,URL
ProcessPath = "%ProgramFiles%\Google\Chrome\Application\chrome.exe"
KioskMode = "--kiosk"
URL = "/8828191/zapustite-chrome-s-url-i-rezhimom-kioska-s-pomoschy-vbs"
'Exit if the script is already running.
If AppPrevInstance() Then   
    MsgBox "There is an existing proceeding",VbExclamation,"There is an existing proceeding"    
    WScript.Quit   
Else   
    Do   
        Call Main(Array(ProcessPath))
        Call Pause(1) 'Sleep for 1 seconde
    Loop   
End If   
'**************************************************************************
Sub Main(colProcessPaths)   
    Dim ProcessPath   
    For Each ProcessPath In colProcessPaths     
        CheckProcess(ProcessPath)   
    Next   
End Sub   
'**************************************************************************
Sub CheckProcess(ProcessPath)   
    Dim ProcessName : ProcessName = StripProcPath(ProcessPath)   
    With GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")   
        With .ExecQuery("SELECT * FROM Win32_Process WHERE Commandline LIKE " &  CommandLineLike(ProcessName))   
            If .Count = 0 Then    
                With CreateObject("WScript.Shell")  
                    .Run DblQuote(ProcessPath) & " " & KioskMode & " " & URL
                End With    
            Else    
                Exit Sub    
            End if   
        End With   
    End With   
End Sub   
'**************************************************************************
'Checks whether a script with the same name as this script is already running
Function AppPrevInstance()   
    With GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")   
        With .ExecQuery("SELECT * FROM Win32_Process WHERE CommandLine LIKE " & CommandLineLike(WScript.ScriptFullName) & _
        " AND CommandLine LIKE '%WScript%' OR CommandLine LIKE '%cscript%'")   
            AppPrevInstance = (.Count > 1)   
        End With   
    End With   
End Function   
'**************************************************************************
Sub Pause(Secs)    
    Wscript.Sleep(Secs * 1000)    
End Sub   
'**************************************************************************
Function StripProcPath(ProcessPath)   
    Dim arrStr : arrStr = Split(ProcessPath, "\")   
    StripProcPath = arrStr(UBound(arrStr))   
End Function   
'**************************************************************************
Function CommandLineLike(ProcessPath)   
    ProcessPath = Replace(ProcessPath, "\", "\\")   
    CommandLineLike = "'%" & ProcessPath & "%'"   
End Function
'**************************************************************************
'Function to add the double quotes into a variable
Function DblQuote(Str)
    DblQuote = Chr(34) & Str & Chr(34)
End Function
'**************************************************************************
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...