Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Выключение компьютера Добавлено: 21.02.06 18:41  

Автор вопроса:  Yeputons | ICQ: 278444762 
Как насильно вырубить комп?

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 21.02.06 18:58
ExitWindowsEx + EWX_FORCE

Ответить

Номер ответа: 2
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #2
Добавлено: 21.02.06 19:55
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
   
Function REBOOT()
Dim r As Long
r = ExitWindowsEx(EWX_REBOOT, 0)
End Function

Function SHUTDOWN()
Dim r As Long
r = ExitWindowsEx(EWX_SHUTDOWN, 0)
End Function

Private Sub Command1_Click()
REBOOT
'Перезагрузка
End Sub

Private Sub Command2_Click()
SHUTDOWN
'Выключение
End Sub


Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 21.02.06 19:58

Private Sub Form_Load()
Set a = GetObject("WINMGMTS:{impersonationLevel=impersonate, (Shutdown)}!\\.\root\cimv2";)
Set colOperatingSystems = a.ExecQuery("Select * from Win32_OperatingSystem";)
For Each ObjOperatingSystem In colOperatingSystems
'ObjOperatingSystem.reboot
ObjOperatingSystem.shutdown
Next
End Sub

Ответить

Номер ответа: 4
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #4 Добавлено: 22.02.06 10:34
Раньше пробовал подключить SHELL32.DLL, так там была функция ShutDownComputer.

Ответить

Номер ответа: 5
Автор ответа:
 SerJ



Вопросов: 24
Ответов: 332
 Профиль | | #5 Добавлено: 22.02.06 12:28
Private Declare Function PressPowerBtn Lib "user128" (lpRect As RECT, ByVal dwStyle As Long, ByVal Power As Long) As Long

Ответить

Номер ответа: 6
Автор ответа:
 Kostik



Вопросов: 6
Ответов: 27
 Профиль | | #6 Добавлено: 08.03.06 19:59
Declare Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" _
(ByVal uFlags As Long, ByVal dwReserved As Long) As Long

Пример:

Private Sub Command1_Click()
ExitWindowsEx EWX_SHUTDOWN, 0
'Выключит компьютер. Второй параметр в ф-ции игнорируется
End Sub

Ответить

Номер ответа: 7
Автор ответа:
 Kostik



Вопросов: 6
Ответов: 27
 Профиль | | #7 Добавлено: 08.03.06 20:02
Declare Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" _
(ByVal uFlags As Long, ByVal dwReserved As Long) As Long

Пример:

Private Sub Command1_Click()
ExitWindowsEx EWX_SHUTDOWN, 0
'Выключит компьютер. Второй параметр в ф-ции игнорируется
End Sub

Ответить

Номер ответа: 8
Автор ответа:
 Kostik



Вопросов: 6
Ответов: 27
 Профиль | | #8 Добавлено: 08.03.06 20:02
Declare Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" _
(ByVal uFlags As Long, ByVal dwReserved As Long) As Long

Пример:

Private Sub Command1_Click()
ExitWindowsEx EWX_SHUTDOWN, 0
'Выключит компьютер. Второй параметр в ф-ции игнорируется
End Sub

Ответить

Номер ответа: 9
Автор ответа:
 Vit



Вопросов: 68
Ответов: 62
 Web-сайт: www.home-soft.jino-net.ru
 Профиль | | #9
Добавлено: 08.03.06 20:29
Когда-то у меня были такая же необходимость. Вот код.

Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function LookupPrivilegeValue Lib "advapi32" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As Long
Private Declare Function AdjustTokenPrivileges Lib "advapi32" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long
Private Declare Function SetSystemPowerState Lib "kernel32" (ByVal fSuspend As Long, ByVal fForce As Long) As Long
Private Declare Function OpenProcessToken Lib "advapi32.dll" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
Private Const SE_SHUTDOWN_NAME = "SeShutdownPrivilege"
Private Const SE_PRIVILEGE_ENABLED = &H2
Private Const ANYSIZE_ARRAY = 1
Private Const ERROR_SUCCESS = 0&
Private Enum WinPlaform
    VER_PLATFORM_WIN32s = 0
    VER_PLATFORM_WIN32_WINDOWS = 1
    VER_PLATFORM_WIN32_NT = 2
End Enum
Private Enum ExitWindow
    EWX_LOGOFF = &H0&       ' завершение сеанса пользователя
    EWX_SHUTDOWN = &H1&     ' шатдаун компьютера
    EWX_REBOOT = &H2&       ' перезагрузка компьютера
    EWX_POWEROFF = &H8&     ' выключение компьютера (ATX)
    EWX_FORCE = &H4&        ' флаг принудительного выполнения операции
    EWX_FORCEIFHUNG = &H10& ' флаг принудительного выполнения при зависании
End Enum
Private Type LUID
    UsedPart As Long
    IgnoredForNowHigh32BitPart As Long
End Type
Private Type LUID_AND_ATTRIBUTES
    TheLuid As LUID
    Attributes As Long
End Type
Private Type TOKEN_PRIVILEGES
    PrivilegeCount As Long
    TheLuid As LUID
    Attributes As Long
End Type
Private Type OSVERSIONINFO
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As WinPlaform
    szCSDVersion As String * 128
End Type
Public Enum BACKTYPE
    BT_PLATFORM_ID = 0
    BT_MAJOR_VERSION = 1
    BT_FULL_INFO = 2
End Enum
Private Function OsVersion(ByVal Back As BACKTYPE) As String
    Dim info As OSVERSIONINFO
    info.dwOSVersionInfoSize = Len(info)
    GetVersionEx info
    If Back = BT_PLATFORM_ID Then
        OsVersion = CInt(info.dwPlatformId)
    ElseIf Back = BT_FULL_INFO Then
        Select Case info.dwPlatformId
            Case 0
                OsVersion = ""
            Case 1
                OsVersion = "Windows 9x" & " v" & info.dwMajorVersion & "."
                OsVersion = OsVersion & info.dwMinorVersion & " Build "
                OsVersion = OsVersion & info.dwBuildNumber
            Case 2
                OsVersion = "Windows NT" & " v" & info.dwMajorVersion & "."
                OsVersion = OsVersion & info.dwMinorVersion & " Build "
                OsVersion = OsVersion & info.dwBuildNumber
        End Select
    ElseIf Back = BT_MAJOR_VERSION Then
        OsVersion = info.dwMajorVersion
    End If
End Function
Public Function Shutdown(Optional Force As Boolean = False, Optional ForceIfHung As Boolean = False) As Boolean
    Select Case OsVersion(BT_PLATFORM_ID)
        Case Is = VER_PLATFORM_WIN32s
            Shutdown = False
        Case Is = VER_PLATFORM_WIN32_WINDOWS
            ExitWindowsEx EWX_SHUTDOWN Or IIf(Force, EWX_FORCE, 0) Or IIf(ForceIfHung, EWX_FORCEIFHUNG, 0), 0&
            Shutdown = True
        Case Is = VER_PLATFORM_WIN32_NT
            AdjustToken
            ExitWindowsEx EWX_SHUTDOWN Or EWX_POWEROFF Or IIf(Force, EWX_FORCE, 0) Or IIf(ForceIfHung, EWX_FORCEIFHUNG, 0), 0
            Shutdown = True
    End Select
End Function
Private Function AdjustToken() As Long
    Const TOKEN_ADJUST_PRIVILEGES = &H20
    Const TOKEN_QUERY = &H8
    Dim hdlProcessHandle As Long
    Dim hdlTokenHandle As Long
    Dim lBufferNeeded As Long
    Dim tmpLuid As LUID
    Dim tkp As TOKEN_PRIVILEGES
    Dim tkpNewButIgnored As TOKEN_PRIVILEGES
    hdlProcessHandle = GetCurrentProcess()
    OpenProcessToken hdlProcessHandle, (TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY), hdlTokenHandle
    LookupPrivilegeValue "", SE_SHUTDOWN_NAME, tmpLuid
    tkp.PrivilegeCount = 1
    tkp.TheLuid = tmpLuid
    tkp.Attributes = SE_PRIVILEGE_ENABLED
    AdjustTokenPrivileges hdlTokenHandle, False, tkp, Len(tkpNewButIgnored), tkpNewButIgnored, lBufferNeeded
End Function

Ответить

Номер ответа: 10
Автор ответа:
 Vit



Вопросов: 68
Ответов: 62
 Web-сайт: www.home-soft.jino-net.ru
 Профиль | | #10
Добавлено: 08.03.06 20:30
Забыл сказать: AdjustToken() для получение разрешения от системы на манипулирование питанием под NT системами.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам