Vypínač   zodpovězená otázka

VB.NET

Ahoj.

Prosím neznáte někdo funkci, která při stusknutí tlačítka vypne počítač???

Díky moc ...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

O žádné fci nevím , ae vyřešil jsem to takto:


 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        System.Diagnostics.Process.Start("a.bat")

    End Sub

pak sem si vytvořil ve složce (kde mám ten projekt) soubor a.bat

do kterého jsem vložil příkaz shutdown -s

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Tak toto řešení je skutečný odpad. Pro vypnutí, restart, odhlášení uživatele a přepnutí do režimu spánku existuje API funkce ExitWindowsEx:

http://msdn.microsoft.com/en-us/library/...

nahlásit spamnahlásit spam -2 / 2 odpovědětodpovědět

Kroťte se trochu. Nevím, proč by to měl být "skutečný odpad". Dělal jsem mnohokrát vypnutí jako naplánovanou úlohu systému a ty baťáky fungují dost spolehlivě.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Pokud vám výše uvedené prasácké řešení přijde normální, nechtěl bych vidět vaše aplikace... Naplánovaná úloha je něco uplně jiného, jedná se o administrativní úkon ve Windows a i tady nejsou dávkové soubory na místě, protože k takovým věcem se z mnoha důvodů používá Windows Scripting.

Čisté řešení pomocí Win32 API:

Imports System.Runtime.InteropServices
''' <summary>
''' Hlavní modul konzolové aplikace.
''' </summary>
''' <remarks></remarks>
Module Module1
  Sub Main()
    'Vypne systém (pokud má proces oprávnění pro vypnutí 
    'a pokud systém softwarové vypnutí podporuje).
    UnsafeNativeMethods.ExitWindowsEx(EWX_POWEROFF, SHTDN_REASON_MAJOR_APPLICATION)
  End Sub
End Module

''' <summary>
''' Definice nativních funkcí Win32 API.
''' </summary>
''' <remarks></remarks>
Public Module UnsafeNativeMethods
  'Vypnutí systému.
  Public Const EWX_POWEROFF As Integer = &H8
  'Důvodem vypnutí je požadavek aplikace.
  Public Const SHTDN_REASON_MAJOR_APPLICATION As Integer = &H40000
  <DllImport("User32.dll")> _
  Public Function ExitWindowsEx(ByVal uFlags As UInteger, ByVal dwReason As UInteger) As Boolean
  End Function
End Module

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tímto způsobem lze vypnout počítač i bez dávkového souboru:

System.Diagnostics.Process.Start("shutdown", "-s -t 0")
nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Hezký den,

Ještě přidávám:

Restart systému

System.Diagnostics.Process.Start("shutdown", "-r -t 0")

Odhlášení aktuálního uživatele

System.Diagnostics.Process.Start("shutdown", "-l -t 0")

Restart Exploreru

System.Diagnostics.Process.Start("tskill explorer -A")

Uzamknutí počítače

System.Diagnostics.Process.Start("rundll32.exe user32.dll, LockWorkStation")

Přepnout do režimu spánku

System.Diagnostics.Process.Start("rundll32 powrprof.dll,SetSuspendState")

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Přikládám další způsob řešení

Imports system.Runtime.InteropServices

    Private Sub Win32Action(ByVal param As Integer)
        Dim t As Single
        Dim objWMIService, objComputer As Object

        objWMIService = GetObject("Winmgmts:{impersonationLevel=impersonate,(Debug,Shutdown)}")

        For Each objComputer In objWMIService.InstancesOf("Win32_OperatingSystem")
            t = objComputer.Win32Shutdown(param, 0)
        Next
    End Sub

Parametry:

1 - vypnutí

5 - force vypnutí*

2 - restart

6 - force restart*

0 - odhlášení uživatele

4 - force odhlášení*

*(na tvrdo, bez uložení dat a nastavení)

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback