Можно ли выключить XP

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Можно ли выключить XP

Сообщение Ramzes » 24.11.2003 (Пн) 14:35

Тймер выключения компа.... 98 без проблем вырубается, а ХР даже не риагирует, как виключить ХР :?: :?: :?: :!:

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 24.11.2003 (Пн) 15:46

Поиском по форуму. В том числе и с ключевым словом WMI.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 13.12.2003 (Сб) 0:39

Помогите, не могу найти, :oops: а очень надо

Boris_BGB
Флудер-Энтузиаст
Флудер-Энтузиаст
 
Сообщения: 661
Зарегистрирован: 11.12.2002 (Ср) 11:41

Сообщение Boris_BGB » 13.12.2003 (Сб) 12:16

Ну не нашёл, так не нашёл.

Shut Down С использованием API-функции
Код: Выделить всё
Public Const EWX_SHUTDOWN = 1
Public Declare Function ExitWindowsEx Lib "user32" (ByVal dwOptions As Long, ByVal dwReserved As Long) As Long
Dim lngResult As Long
lngResult = ExitWindowsEx(EWX_SHUTDOWN, 0&) 

Restart С использованием API-функции
Код: Выделить всё
Public Const EWX_REBOOT = 2
Public Declare Function ExitWindowsEx Lib "user32" (ByVal dwOptions As Long, ByVal dwReserved As Long) As Long
Dim lngResult As Long
lngResult = ExitWindowsEx(EWX_REBOOT, 0&) 


Если ничего не получится, то попробуй такое:
Код: Выделить всё
'In a module
Private Const EWX_LOGOFF = 0
Private Const EWX_SHUTDOWN = 1
Private Const EWX_REBOOT = 2
Private Const EWX_FORCE = 4
Private Const TOKEN_ADJUST_PRIVILEGES = &H20
Private Const TOKEN_QUERY = &H8
Private Const SE_PRIVILEGE_ENABLED = &H2
Private Const ANYSIZE_ARRAY = 1
Private Const VER_PLATFORM_WIN32_NT = 2
Type OSVERSIONINFO
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
End Type
Type LUID
    LowPart As Long
    HighPart As Long
End Type
Type LUID_AND_ATTRIBUTES
    pLuid As LUID
    Attributes As Long
End Type
Type TOKEN_PRIVILEGES
    PrivilegeCount As Long
    Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES
End Type
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function OpenProcessToken Lib "advapi32" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) 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 ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (ByRef lpVersionInformation As OSVERSIONINFO) As Long
'Detect if the program is running under Windows NT
Public Function IsWinNT() As Boolean
    Dim myOS As OSVERSIONINFO
    myOS.dwOSVersionInfoSize = Len(myOS)
    GetVersionEx myOS
    IsWinNT = (myOS.dwPlatformId = VER_PLATFORM_WIN32_NT)
End Function
'set the shut down privilege for the current application
Private Sub EnableShutDown()
    Dim hProc As Long
    Dim hToken As Long
    Dim mLUID As LUID
    Dim mPriv As TOKEN_PRIVILEGES
    Dim mNewPriv As TOKEN_PRIVILEGES
    hProc = GetCurrentProcess()
    OpenProcessToken hProc, TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY, hToken
    LookupPrivilegeValue "", "SeShutdownPrivilege", mLUID
    mPriv.PrivilegeCount = 1
    mPriv.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
    mPriv.Privileges(0).pLuid = mLUID
    ' enable shutdown privilege for the current application
    AdjustTokenPrivileges hToken, False, mPriv, 4 + (12 * mPriv.PrivilegeCount), mNewPriv, 4 + (12 * mNewPriv.PrivilegeCount)
End Sub
SkateBoarding is not a crime!

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 22.12.2003 (Пн) 23:09

Ничего не помагает!!! ПОМОГИТЕ, У меня скоро голова с плеч упадёт иза этого ХР :shock:

v-adix
Постоялец
Постоялец
 
Сообщения: 490
Зарегистрирован: 14.11.2002 (Чт) 15:11

Сообщение v-adix » 01.01.2004 (Чт) 14:36

в XP в папке Windows\System32 есть прога shutdown.exe. смотри на Onlyxp.narod.ru параметры: там можно выключить, перезагрузить, switch user......
должно помочь!

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 01.01.2004 (Чт) 14:54

Код: Выделить всё
Const EWX_LOGOFF = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Private Sub Form_Load()

    msg = MsgBox("This program is going to reboot your computer. Press OK to continue or Cancel to stop.", vbCritical + vbOKCancel + 256, App.Title)
    If msg = vbCancel Then End
    'reboot the computer
    ret& = ExitWindowsEx(EWX_FORCE Or EWX_REBOOT, 0)
End Sub
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 02.01.2004 (Пт) 0:01

А я вот использую WMI:

Код: Выделить всё
set wos = getobject("winmgmts:\\.").instancesof("Win32_OperatingSystem")
for each ws in wos
ws.shutdown
next ws
:lol:

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 02.01.2004 (Пт) 0:13

Ну ты, блин, даешь, блин.......
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

shutdown форева!

Сообщение hCORe » 02.01.2004 (Пт) 13:25

С использованием утилиты shutdown.

Перезагрузка:
Код: Выделить всё
Shell "shutdown -r -t 0", vbMinimizedFocus

Выключение:
Код: Выделить всё
Shell "shutdown -s -t 0", vbMinimizedFocus
Моду создают модоки, а распространяют модозвоны.

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 02.01.2004 (Пт) 15:18

А вот это уже не по программерски. А вдруг ее удалят? ;)
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

:)

Сообщение hCORe » 02.01.2004 (Пт) 20:00

Удалят - будем думать дальше. Ну если у человека не работает ни с установкой привелегий, ни с использованием WMI, то что же остается делать? Только искать, что же там злостный Билли из M$ придумал на этот раз.
Моду создают модоки, а распространяют модозвоны.

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 02.01.2004 (Пт) 21:15

Ну... Использование чего-то с Shell строкой как-то не круто :)
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 03.01.2004 (Сб) 18:07

Если у человека кривые руки, мы не в состоянии это исправить. И Билли тут не при чем :) Короче. Все способы изложены - если не работает, смотри что у тебя не так. Если зхочешь подробную диагностику - кидай сюда развернутую инфу по проблеме.

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 03.01.2004 (Сб) 18:22

Эта тема - живой справочник по вопросам выключения/рестарта NTшных систем. А насчет Билли - так это я так, шутя :wink:
Моду создают модоки, а распространяют модозвоны.

v-adix
Постоялец
Постоялец
 
Сообщения: 490
Зарегистрирован: 14.11.2002 (Чт) 15:11

Сообщение v-adix » 07.01.2004 (Ср) 22:48

gaidar писал(а):А вот это уже не по программерски. А вдруг ее удалят? ;)


а зачем ее должны удалить? это системная утилита, удалить её значит удалить системный файл.
ваш вопрос аналогичен следующему: "а вдруг папку windows удалят?". и что тогда делать будем?

net
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 08.07.2003 (Вт) 10:31
Откуда: Ялта/Ukraine

Сообщение net » 08.01.2004 (Чт) 23:30

Откл :
Shell "rundll32.exe shell32,SHExitWindowsEx 4"

Перезагр:

Shell "rundll32 shell32,SHExitWindowsEx 8"

amda
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 134
Зарегистрирован: 11.09.2002 (Ср) 15:14
Откуда: Russia, Волгоградская обл., г. Волжский

Сообщение amda » 20.01.2004 (Вт) 12:11

не знаю зачем, но у XP теперь есть ещё один способ:
ребут
Код: Выделить всё
C:\WINDOWS\system32\shutdown.exe -r -t 01

шатдаун
Код: Выделить всё
C:\WINDOWS\system32\shutdown.exe -s -t 01
Организм человека содержит столько извести, что ее хватит на побелку курятника. (Hенужная информация)

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 20.01.2004 (Вт) 12:18

Предупреждение за повтор ответа в пределах одного топика.

ser_hit
Обычный пользователь
Обычный пользователь
 
Сообщения: 53
Зарегистрирован: 10.01.2004 (Сб) 22:10

Сообщение ser_hit » 24.01.2004 (Сб) 8:28

Топик как я понял это предупреждение

ser_hit
Обычный пользователь
Обычный пользователь
 
Сообщения: 53
Зарегистрирован: 10.01.2004 (Сб) 22:10

Сообщение ser_hit » 24.01.2004 (Сб) 8:31

Сколько max количество топиков

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.01.2004 (Сб) 11:00

lingvo.yandex.ru писал(а):cущ.

тема, предмет обсуждения, вопрос

to bring up, broach a topic — поднимать вопрос, тему
to discuss a topic — обсуждать тему
controversial topic — дискуссионная тема
everyday topic — насущная тема
topic of conversation — тема разговора


Syn:
burden, matter, subject, theme, subject matter

И вообще, http://bbs.vbstreets.ru/viewforum.php?f=14 :wink:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

bdfy
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 25.01.2004 (Вс) 19:16

Сообщение bdfy » 25.01.2004 (Вс) 19:31

А я использую 2 вот таких скрипта

Код: Выделить всё
set WshShell=WScript.CreateObject ("WScript.Shell")

WshShell.Run "c:\windows\system32\shutdown.exe -s -t 1200"


1200 - это тайм-аут до выключения всек.
Отмена этого действа

Код: Выделить всё
set WshShell=WScript.CreateObject ("WScript.Shell")

WshShell.Run "c:\windows\system32\shutdown.exe -a"


под ХР все отлично работает
Чтоб окошко не висело можно ченить типа этого вставлять
WScript.Sleep 1000 , гд е
1000 - пауза в милисекундах.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 9

    TopList