Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [vb.net] Riavviare windows senza usare chiamare shutdown.exe
Forum - C# / VB.NET - [vb.net] Riavviare windows senza usare chiamare shutdown.exe

Avatar
Brenza (Normal User)
Rookie


Messaggi: 21
Iscritto: 30/10/2010

Segnala al moderatore
Postato alle 0:40
Sabato, 06/11/2010
Salve a tutti, avrei bisogno di un codice che mi permetta di riavviare il sistema operativo windows indipendentemente dalla versione installata (xp, vista, 7) e che quindi lo faccia senza esare il tool shutdown.exe integrato nel sistema come descritto invece qui: http://www.pierotofy.it/pages/extras/forum/16/20788-spegne ...


Su xp verrebbe
Codice sorgente - presumibilmente Plain Text

  1. shell("shutdown -r -t 0")


Su 7 invece
Codice sorgente - presumibilmente Plain Text

  1. shell("shutdown /r /t 0")





Googlando ho trovato questo se provo a compilare ma mi viene detto che la classe System.Management.ManagementScope non esiste...
Codice sorgente - presumibilmente VB.NET

  1. Dim ms As System.Management.ManagementScope = New System.Management.ManagementScope("\\LocalHost\roo t\cimv2")
  2. ms.Options.EnablePrivileges = True
  3. ' Verwende diesen Eigenschaften wenn es Probleme mit den Rechten gibt
  4. 'ms.Options.Password = ""
  5. 'ms.Options.Username = ""
  6. Dim oq As System.Management.ObjectQuery = New System.Management.ObjectQuery("SELECT * FROM Win32_OperatingSystem")
  7. Dim query1 As System.Management.ManagementObjectSearcher = New System.Management.ManagementObjectSearcher(ms, oq)
  8. Dim queryCollection1 As System.Management.ManagementObjectCollection = query1.Get()
  9. For Each mo As System.Management.ManagementObject In queryCollection1
  10. Dim ss As String() = {"2", "0"} ' Reboot
  11. 'Dim ss As String() = {"2", "2"} ' Logoff
  12. 'Dim ss As String() = {"0", "0"} ' Shutdown
  13. mo.InvokeMethod("Win32Shutdown", ss)
  14. Next


PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 9:33
Sabato, 06/11/2010
quell'assembly è presente solo nella versione 4 di .NET come spiegato su MSDN
Se non stai compilando con questa versione, ovviamente non riuscirai mai


"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
PM Quote
Avatar
Brenza (Normal User)
Rookie


Messaggi: 21
Iscritto: 30/10/2010

Segnala al moderatore
Postato alle 22:37
Sabato, 06/11/2010
Ah ho capito, grazie...
E mi sapresti consigliare un metodo valido per la versione di .net fx 2.0?


Ho trovato anche questa

Codice sorgente - presumibilmente VB.NET

  1. Public Declare Function ExitWindows _
  2.             Lib "User32" Alias "ExitWindowsEx" _
  3.             (ByVal dwOptions As Long, ByVal dwReserved As Long) As Long



Codice sorgente - presumibilmente Plain Text

  1. ExitWindowsEx(2, 0)


PM Quote