C ++ 17 задает порядок оценки для операторов, которые были неопределены до C ++ 17. См. Вопрос . Каковы гарантии порядка оценки, введенные C ++ 17? Но обратите внимание, что ваше выражение
foo(bar(), baz())
имеет неуказанный порядок оценки.
Всякий раз, когда вы захотите сделать что-то подобное, Google, использующий «WMI», вероятно, даст вам что-то полезное.
Например -
Set ServiceSet = GetObject("winmgmts:").ExecQuery( _
"select * from Win32_Service where Name='ClipSrv'")
for each Service in ServiceSet
RetVal = Service.StopService()
if RetVal = 0 then
WScript.Echo "Service stopped"
elseif RetVal = 5 then
WScript.Echo "Service already stopped"
end if
next
Аналогичным образом: https://docs.microsoft.com/en-us/windows/desktop/cimwin32prov/startservice-method-in-class-win32-service [ 117]
Set ServiceSet = GetObject("winmgmts:").ExecQuery( _
"select * from Win32_Service where Name='ClipSrv'")
for each Service in ServiceSet
RetVal = Service.StartService()
if RetVal = 0 then WScript.Echo "Service started"
if RetVal = 10 then WScript.Echo "Service already running"
next