Ecco come faccio ...Originariamente inviato da oregon
Ti avevo detto come fare nell'altro thread ...
Hai i dati che vuoi nell'array dopo avere letto il file che ti genera pslist.
Esiste anche il tool tasklist per fare la stessa cosa.
Perche' non va ?
Il problema è che a volte la finestra di dos rimane aperta, il ciclo si blocca e rimango fregato...codice:Sub avvia() con = conn.conn.ConnectionString Open App.Path & "\config.cfg" For Input As #1 Do While Not EOF(1) Line Input #1, pass Loop Close #1 rs.Open "select * from postazioni", con, 3, 3 n = rs.RecordCount ProgressBar1.Max = n Do While Not rs.EOF ip = rs("ip") t = Shell("cmd /c pslist \\" & ip & " -u administrator -p " & pass & " " & txtprocesso.Text & " >c:\output.txt", 1) Delay 4 Open "c:\output.txt" For Input As #2 Do While Not EOF(2) Line Input #2, filedata dati = Replace(filedata, " ", vbTab) extr = Split(dati, vbTab) On Error Resume Next nome = extr(0) If nome = txtprocesso.Text Then cmd.ActiveConnection = conn.conn.ConnectionString cmd.CommandText = "update postazioni set libero = 'occupato' where ip ='" & ip & "'" cmd.Execute GoTo line1 occupate = occupate + 1 lbloccupate.Caption = occupate End If Loop cmd.ActiveConnection = conn.conn.ConnectionString cmd.CommandText = "update postazioni set libero = 'libero' where ip ='" & ip & "'" cmd.Execute libere = libere + 1 lblLibere.Caption = libere line1: Close #2 rs.MoveNext ProgressBar1.Value = ProgressBar1.Value + 1 nome = "" Loop 'MsgBox "Trovate " & libere & " postazioni libere\n e " & occupate & " postazioni occupate", vbInformation Timeout.Enabled = True End Sub
Dovrei trovare un modo per far continuare il programma solo le la finestra di Dos è chiusa
Sai suggerirmi qualcosa?
Grazie Tante

Rispondi quotando