How do I test if another installation is already in progress?

前端 未结 3 1055
时光说笑
时光说笑 2021-01-12 05:17

Assuming I\'m trying to automate the installation of something on windows and I want to try to test whether another installation is in progress before attempting install. I

3条回答
  •  南笙
    南笙 (楼主)
    2021-01-12 06:04

    Sorry for hijacking you post!

    I have been working on this - for about a week - using your notes (Thank you) and that from other sites - too many to name (Thank you all).

    I stumbled across information revealing that the Service could yield enough information to determine if the MSIEXEC service is already in use. The Service being 'msiserver' - Windows Installer - and it's information being both state and acceptstop.

    The following VBScript code checks this.

    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Check = False
    Do While Not Check
       WScript.Sleep 3000
       Set colServices = objWMIService.ExecQuery("Select * From Win32_Service Where Name="'msiserver'")
       For Each objService In colServices
          If (objService.Started And Not objService.AcceptStop)  
             WScript.Echo "Another .MSI is running."
          ElseIf ((objService.Started And objService.AcceptStop) Or Not objService.Started) Then
             WScript.Echo "Ready to install an .MSI application."
             Check = True
          End If
       Next
    Loop
    

提交回复
热议问题