Buongiorno ho uno script client in vb che mi testa se un applicazione è in esecuzione o se viene minimizzata. Quando nello script effettuo il test che l'applicazione è minimizzata mi si blocca il computerpotreste darmi una mano 1000 graziecodice:Option Explicit On Error Resume Next Dim strComputer, intAttesa, intAttesa2 strComputer = "." intAttesa = 150000 intAttesa2 = 300000 Function InvertiData(Data) Dim WD, OD if not(isdate(data)) then WD = Date() else WD = cdate(data) OD = right("00" & cstr(day(WD)),2) & "/" & right("00" & cstr(month(WD)), 2) & "/" & right("20" & cstr(year(WD)), 4) InvertiData = OD End Function do while 1 = 1 Dim objShell, objWMIService, colItems, objItem, bolControllo, Conn, strConnect, SQL, rsEnUs, SQLMAX, rsMAX, IDACCESSO, updACC Dim rsACC, updSQL, rsUpd, insSQL, rsIns, Success, Success02, strProcessId objShell = "" objWMIService = "" colItems = "" objItem = "" bolControllo = "" Conn = "" strConnect = "" SQL = "" rsEnUs = "" SQLMAX = "" rsMAX = "" IDACCESSO = "" updACC = "" rsACC = "" updSQL = "" rsUpd = "" insSQL = "" rsIns = "" Success = "" Success02 = "" strProcessId = "" Set objShell = WScript.CreateObject ("WScript.Shell") Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 'Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_Process",,48) For Each objItem in colItems if objItem.Name="mstsc.exe" then bolControllo = True strProcessId = objItem.ProcessId Exit for else bolControllo = False end if Next Set Conn = CreateObject("ADODB.Connection") '***** CONNESSIONE ACCESS 2003 'strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & objShell.CurrentDirectory & "\Accessi.mdb" '***** CONNESSIONE ACCESS 2013 strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & objShell.CurrentDirectory & "\Accessi.mdb" Conn.Open strConnect SQL = "SELECT E_U" SQL = SQL & " FROM ENTRATA_USCITA" SQL = SQL & " WHERE (((ENTRATA_USCITA.ID_E_U)=1));" Set rsEnUs = Conn.Execute(SQL) '***** CHIUSURA PROGRAMMA if rsEnUs("E_U") AND bolControllo = False then SQLMAX = "SELECT Max(IDACCESSO) AS ID FROM ACCESSI;" Set rsMAX = Conn.Execute(SQLMAX) IDACCESSO = rsMAX("ID") updACC = "UPDATE ACCESSI" updACC = updACC & " SET ACCESSI.ORA_USCITA = '" & FormatDateTime(Now(),4) & "'" updACC = updACC & " WHERE (((ACCESSI.IDACCESSO)=" & IDACCESSO & "));" Set rsACC = Conn.Execute(updACC) updSQL = "UPDATE ENTRATA_USCITA" updSQL = updSQL & " SET ENTRATA_USCITA.E_U = 0" updSQL = updSQL & " WHERE (((ENTRATA_USCITA.ID_E_U)=1));" Set rsUpd = Conn.Execute(updSQL) '***** APERTURA PROGRAMMA elseif rsEnUs("E_U") = False AND bolControllo then Success = objShell.AppActivate(strProcessId) if Success then insSQL = "INSERT INTO ACCESSI ( DATA, ORA_ENTRATA )" insSQL = insSQL & " VALUES ( '" & InvertiData(Date()) & "', '" & FormatDateTime(Now(),4) & "' );" Set rsIns = Conn.Execute(insSQL) updSQL = "UPDATE ENTRATA_USCITA" updSQL = updSQL & " SET ENTRATA_USCITA.E_U = 1" updSQL = updSQL & " WHERE (((ENTRATA_USCITA.ID_E_U)=1));" Set rsUpd = Conn.Execute(updSQL) end if '***** VERIFICA STATO PROGRAMMA elseif rsEnUs("E_U") AND bolControllo then '***** VERIFA SE E' FALSE IL PROGRAMMA E' ICONIZZATO Success = objShell.AppActivate(strProcessId) if Success = False then '***** ATTESA 2,5 MINUTI WScript.Sleep (intAttesa) '***** RIVERIFA TRASCORSO intAttesa SE E' FALSE IL PROGRAMMA E' ANCORA ICONIZZATO Success02 = objShell.AppActivate(strProcessId) if Success02 = False then SQLMAX = "SELECT Max(IDACCESSO) AS ID FROM ACCESSI;" Set rsMAX = Conn.Execute(SQLMAX) IDACCESSO = rsMAX("ID") updACC = "UPDATE ACCESSI" updACC = updACC & " SET ACCESSI.ORA_USCITA = '" & FormatDateTime(Now(),4) & "'" updACC = updACC & " WHERE (((ACCESSI.IDACCESSO)=" & IDACCESSO & "));" Set rsACC = Conn.Execute(updACC) updSQL = "UPDATE ENTRATA_USCITA" updSQL = updSQL & " SET ENTRATA_USCITA.E_U = 0" updSQL = updSQL & " WHERE (((ENTRATA_USCITA.ID_E_U)=1));" Set rsUpd = Conn.Execute(updSQL) end if else WScript.Sleep (intAttesa) end if end if Conn.Close loop