PDA

View Full Version : [VB.NET 2010] Chiusura simultanea di piu' applicazioni


rocketA
19-12-2010, 10:18
come chiudere con un click piu' applicazioni?
in giro di guide per chiudere un solo programma ce ne sono, ma non ho trovato nulla se dovessi chiuderne diversi in contemporanea.
per il momento ho inserito questo

Dim obj As Object
For Each obj In GetObject("winmgmts:").ExecQuery("SELECT * FROM Win32_Process WHERE Name='notepad.exe'")
obj.Terminate()
Next


meglio ancora, è possibile riportare in un click il pc in uno stato come appena acceso?

prego indicazioni passo passo, sono piu' che principiante.

MarcoGG
19-12-2010, 10:32
Dim obj As Object
For Each obj In GetObject("winmgmts:").ExecQuery("SELECT * FROM Win32_Process WHERE Name='notepad.exe'")
obj.Terminate()
Next


meglio ancora, è possibile riportare in un click il pc in uno stato come appena acceso?


1. GetObject è roba da VB6 & dintorni. In .NET usa System.Diagnostics.Process.

2. Ottieni una lista di processi eseguendo il tuo progetto all'avvio. E poi chiudi quelli che non erano presenti all'avvio, ma è facile a dirsi. Nella pratica è una cosa su cui dovrai lavorare parecchio... ;)

rocketA
19-12-2010, 10:46
rivedro' quindi il GetObject.
per il punto 2, beh, lo immaginavo! vedremo come andra' a finire ehehehe
ciao

MarcoGG
19-12-2010, 11:00
rivedro' quindi il GetObject.
per il punto 2, beh, lo immaginavo! vedremo come andra' a finire ehehehe
ciao

Se tu fossi passato dall'Area Discussioni della mia pagina FaceBook, avresti trovato questa :
http://www.hwupgrade.it/forum/showthread.php?t=1963359
[vedi mio Post #6]

Credo contenga uno spunto interessante per il tuo caso... ;)

rocketA
19-12-2010, 12:49
interessante, stasera me lo studio con calma.

quello che sto tentando di fare, e' gestire una postazione il cui login viene fatto da un solo utente, ma ve ne accedono diversi. ho quindi impostato dei timer, e per mezzo dei form a tutto schermo e dei textbox in cui inserire dei codici di login (beh, questo lo devo ancora fare), separare le varie sessioni. quello che sto affrontando ora e' appunto la chiusura di tutto cio' che ha aperto un utente per lasciare il pc "come nuovo" a quello successivo.
personalmente la trovo un'assurdita', il tutto sarebbe risolvibile altrimenti, ma non ho alternative...

grazie ancora.

MarcoGG
20-12-2010, 13:50
personalmente la trovo un'assurdita', il tutto sarebbe risolvibile altrimenti, ma non ho alternative...


Beh, io non volevo essere così drastico, ma in effetti è una bella cinesata. :D

Basterebbe :

1. Creare un User a livello di S.O., e costringere ciascun utente ad usare il proprio.

2. In alternativa, predisporre un insieme di macchine virtuali, e costringere ciascun utente ad usare la sua.

In pratica il concetto base è : costringere. :D

rocketA
22-12-2010, 02:33
si', guarda, c'e' proprio da uscirne matti... stanno facendo di tutto per impedirci di lavorare serenamente.
... e a mali estremi, estremi rimedi! ;)
pensa che fino a qualche giorno fa non sapevo neanche cosa fosse il vb.net, l'ultima mia esperienza di programmazione era muovere uno sprite sul c64...

interessante comunque il post che mi hai indicato. per il momento ho fatto per prova un form in cui si mettono a confronto in due listbox i processi attivi in due momenti diversi, ed in una terza list la differenza tra le due, quindi cio' che bisognerebbe "killare". non ce l'ho ancora fatta, sto pasticciando con la sintassi, ma ci lavorero'...
e' comunque un po' macchinoso e ci vuole tempo, non dovessi spuntarcela, per la chiusura eventualemtne ricorrero' a un file batch, tanto gli applicativi utilizzabili dall'utente non sono poi molti e non mi serve... precisione chirurgica!
ciao. e ancora grazie.