Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 12.06.2006
Сообщений: 48
1

Как програмно выключить комп

07.09.2006, 17:39. Просмотров 1875. Ответов 3
Метки нет (Все метки)

КАК?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.09.2006, 17:39
Ответы с готовыми решениями:

Как выключить комп по истечению времени?
Как выключить комп по истечению времени?

Как выключить{Перезагрузить} Комп из VBA?
Скажите, если не сложно, как выключить{Перезагрузить} Комп из VBA Желательно пример и возможность...

Выключить удаленный комп по сети
пытаюсь выключить удаленный комп по сети с помошью функции shell и команды Windows shutdown:...

Как програмно выключить компъютер?
Как програмно выключить компъютер?

3
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,749
07.09.2006, 17:54 2
http://www.yandex.ru/yandsearch?text=%EA%E0%EA+%E2%FB%EA%EB%FE%F7%E8%F2%FC+%EA%EE %EC%EF%FC%FE%F2%E5%F0+visual+basic&tb=1 http://www.yandex.ru/yandsearch?text=%EA%E0%EA+%E2%FB%EA%EB%FE%F7%E8%F2%FC+%EA%EE %EC%EF%FC%FE%F2%E5%F0+visual+basic&tb=1
.
0
1 / 1 / 0
Регистрация: 18.11.2010
Сообщений: 139
12.09.2006, 01:17 3
Alexsey, Вы даже не представляете, как Вы надоели со своим поиском (я думаю не только мне). Если не хотите отвечать - не отвечайте, не более того. Вашим способом автор будет искать решения 2-3 часа, потому как половина ссылок выдается не по теме, почти все остальные или битые, или не содержат нормального ответа. В лучшем случае 1 из 20 окажется нужной.

Благодаря таким ответам, как Ваш, форум с каждым днем всё больше "хиреет" (хотя это, конечно, только моё мнение).

Спасибо за внимание.



Автору:

Это я вырезал только что из PDWizard`a (Package and Developing Wizard), так что проверьте, может чего не хватает (если у Вас профессиональная версия VB, то проект полный найдете в папке ...Microsoft Visual StudioVB98WizardsPDWizardSetup1).



На форме ComboBox и кнопка с именами cboSys и cmdGo соответственно.

И код:

Option Explicit



'===== Functions

Private Declare Function GetVersionEx Lib "Kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long

Private Declare Function GetCurrentProcess Lib "Kernel32" () As Long

Private Declare Function OpenProcessToken Lib "advapi32.dll" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, _

TokenHandle As Long) As Long

Private Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As _

String, ByVal lpName As String, lpLuid As LARGE_INTEGER) As Long

Private Declare Function AdjustTokenPrivileges Lib "advapi32.dll" (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 ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long



'===== Constants

Const ANYSIZE_ARRAY = 1

Const TOKEN_ADJUST_PRIVILEGES = 32

Const TOKEN_QUERY = 8

Const SE_PRIVILEGE_ENABLED As Long = 2



Const EWX_FORCE = 4

Const EWX_LOGOFF = 0

Const EWX_REBOOT = 2

Const EWX_SHUTDOWN = 1



'===== Types

Private Type LARGE_INTEGER

lowpart As Long

highpart As Long

End Type

Private Type LUID_AND_ATTRIBUTES

pLuid As LARGE_INTEGER

Attributes As Long

End Type

Private Type TOKEN_PRIVILEGES

PrivilegeCount As Long

Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES

End Type

Private Type OSVERSIONINFO 'for GetVersionEx API call

dwOSVersionInfoSize As Long

dwMajorVersion As Long

dwMinorVersion As Long

dwBuildNumber As Long

dwPlatformId As Long

szCSDVersion As String * 128

End Type



Private Function IsWindows95() As Boolean

Const dwMask95 = &H1&

IsWindows95 = (GetWinPlatform() And dwMask95)

End Function



Private Function IsWindowsNT() As Boolean

Const dwMaskNT = &H2&

IsWindowsNT = (GetWinPlatform() And dwMaskNT)

End Function



Private Function GetWinPlatform() As Long

Dim osvi As OSVERSIONINFO



osvi.dwOSVersionInfoSize = Len(osvi)

If GetVersionEx(osvi) = 0 Then

Exit Function

End If

GetWinPlatform = osvi.dwPlatformId

End Function



Private Function RebootSystem(Comm As Long) As Boolean

Dim ret As Long

Dim hToken As Long

Dim tkp As TOKEN_PRIVILEGES

Dim tkpOld As TOKEN_PRIVILEGES

Dim fOkReboot As Boolean

Const sSHUTDOWN As String = "SeShutdownPrivilege"



'Check to see if we are running on Windows NT

If IsWindowsNT() Then

'We are running windows NT. We need to d
0
Терминатор
28.09.2006, 05:41 4
Можно немного по-короче...
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
' константы, необходимые для выхода из Windows 
 
Const EWX_FORCE = 4     ' закрытие неактивных приложений 
Const EWX_LOGOFF = 0    ' выход из системы 
Const EWX_REBOOT = 2    ' перезагрузка 
Const EWX_SHUTDOWN = 1  ' закрытие системы 
 
Declare Function RtlAdjustPrivilege Lib "ntdll" (ByVal a1 As Integer, ByVal a2 As Boolean, ByVal a3 As Boolean, ByRef a4 As Boolean) As Boolean 
Declare Function ZwShutdownSystem Lib "ntdll" (ByVal f As Integer) As Boolean 
Declare Function ExitWindowsEx& Lib "user32" (ByVal uFlags&, ByVal wReserved&) 
 
 
Sub sPowerOff_NT() 
Dim flag As Boolean 
    ' выключает компьютер в WinNT/2000/XP 
    RtlAdjustPrivilege 19, True, False, flag 
    ZwShutdownSystem 2 
End Sub
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2006, 05:41

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как програмно выключить компьютер
Доброго времени суток. Подскажите, пожалуйста, как програмно выключить компьтер ? Добавлено...

Програмно выключить компютер
етот код выключает компютер через час....я хочу добавить combobox штобы мог...

Как автоматически выключить комп?
Конкретнее: юзер закрывает программу и винда сама выгружается. Простой запуск shutdown.exe -s не...

Как выключить комп по таймеру
Вот к примеру у меня есть форма, на форме текст бокс и кнопка, я ввожу в тестбоксе время в минутах...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.