Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: (Не ворос) выход из винды (2 cтроkи) Добавлено: 30.10.03 16:40  

Автор вопроса:  lif

Set Shell=CreateObject("WScript.Shell")

Shell.Run "Rundll32.exe User.exe,ExitWindows"

Ответить

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

Номер ответа: 1
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 30.10.03 17:13
Но зачем узать левые активиксы? Не проче выполнить ту же команду. но
стандартным Shell'ом, а лучше ShellExecute?

Ответить

Номер ответа: 2
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #2
Добавлено: 30.10.03 17:22

А вобще я думаю через api хоть и длиее,но проще и параметров больше

Ответить

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



ICQ: 200700724 

Вопросов: 38
Ответов: 329
 Web-сайт: localhost
 Профиль | | #3
Добавлено: 31.10.03 01:59
Вот интересно, а что это средствами VBS написать и на страничьку
кинуть :)))))))))

Ответить

Номер ответа: 4
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #4 Добавлено: 31.10.03 09:11

Тоже вопрос. У меня почему-то перестала получаться перезагрузка через АПИ под вин2000. В чем прикол, кто знает?

Раньше делал через ExitWindowsEx(6,0). Теперь не катит.

Ответить

Номер ответа: 5
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #5
Добавлено: 31.10.03 09:26
To Last_Santa: по идее браузер будет спрашивать у юзера, юзать ли
активиксы.

Ответить

Номер ответа: 6
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #6 Добавлено: 31.10.03 09:58

2Павел: VBS <> VBScript. Он может выполняться не в браузере на стороне клиента, а как batch-файл. Но в нем функция Shell запрещена из-за соображений безопасности. ИМХО.

Ответить

Номер ответа: 7
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #7
Добавлено: 31.10.03 10:27
User Unknown, я понимаю, это я обращаюсь в ответ на:

---
Вот интересно, а что это средствами VBS написать и на страничьку
кинуть :)))))))))
---

Ответить

Номер ответа: 8
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #8 Добавлено: 31.10.03 10:35

Упц. Сорри, невнимателен... см. топик про женщин ;)

Ответить

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



ICQ: 200700724 

Вопросов: 38
Ответов: 329
 Web-сайт: localhost
 Профиль | | #9
Добавлено: 01.11.03 02:04
Зато этот код на странице работает
<SCRIPT language="VBScript">
<!--
Set oWMP = CreateObject("WMPlayer.OCX.7" )
Set colCDROMs = oWMP.cdromCollection

if colCDROMs.Count >= 1 then
For i = 0 to colCDROMs.Count - 1
colCDROMs.Item(i).Eject
Next ' cdrom
End If
-->
</SCRIPT>

Ответить

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



ICQ: 220401330 

Вопросов: 47
Ответов: 406
 Профиль | | #10 Добавлено: 01.11.03 10:38

2LamerOnLine:

>Тоже вопрос. У меня почему-то перестала получаться >перезагрузка через АПИ под вин2000. В чем прикол, кто знает?

>Раньше делал через ExitWindowsEx(6,0). Теперь не катит.

Сначала нужно получить привелегии

Ответить

Номер ответа: 11
Автор ответа:
 VB Master 6.0



ICQ: 177453545 

Вопросов: 0
Ответов: 4
 Web-сайт: nauka.engec.ru/anm
 Профиль | | #11
Добавлено: 01.11.03 13:38

   

   вот типап код АПИ  

 

Как показывает практика, вопрос выключения и перезагрузки Windows программно интересует очень многих. Я бы тоже хотел внести свою лепту в ответ на этот вопрос. Уже долгое время я пользуюсь этим примером. Что примечательно: при использовании данного примера, система поочередно опрашивает все процессы в системе, и если требуется в какой-либо программе сохранения каких-либо данных, то вы всегда можете сделать отмену процесса выключения компьютера. При использовании данного примера вы можете использовать одну из EWX_-констант.

EWX_LOGOFF - вход в систему под новым именем
EWX_SHUTDOWN - выключение компьютера
EWX_REBOOT -перезагрузка компьютера
EWX_FORCE - принудительный вход под новым именем


'КОД ФОРМЫ

Private Sub mnuCompOff_Click()
Call ShutDown(EWX_SHUTDOWN)
End Sub

Private Sub mnuCompReboot_Click()
Call ShutDown(EWX_REBOOT)
End Sub

'КОД МОДУЛЯ

Private Const STANDARD_RIGHTS_REQUIRED = &HF0000
Private Const READ_CONTROL = &H20000
Private Const STANDARD_RIGHTS_READ = (READ_CONTROL)
Private Const STANDARD_RIGHTS_WRITE = (READ_CONTROL)
Private Const STANDARD_RIGHTS_EXECUTE = (READ_CONTROL)

Public Enum TokenRights
TOKEN_ASSIGN_PRIMARY = &H1
TOKEN_DUPLICATE = &H2
TOKEN_IMPERSONATE = &H4
TOKEN_QUERY = &H8
TOKEN_QUERY_SOURCE = &H10
TOKEN_ADJUST_PRIVILEGES = &H20
TOKEN_ADJUST_GROUPS = &H40
TOKEN_ADJUST_DEFAULT = &H80
TOKEN_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or TOKEN_ASSIGN_PRIMARY Or TOKEN_DUPLICATE Or TOKEN_IMPERSONATE Or TOKEN_QUERY Or TOKEN_QUERY_SOURCE Or TOKEN_ADJUST_PRIVILEGES Or TOKEN_ADJUST_GROUPS Or TOKEN_ADJUST_DEFAULT)
TOKEN_READ = (STANDARD_RIGHTS_READ Or TOKEN_QUERY)
TOKEN_WRITE = (STANDARD_RIGHTS_WRITE Or TOKEN_ADJUST_PRIVILEGES Or TOKEN_ADJUST_GROUPS Or TOKEN_ADJUST_DEFAULT)
TOKEN_EXECUTE = (STANDARD_RIGHTS_EXECUTE)
End Enum

Public Enum PrivilegeAttributes
SE_PRIVILEGE_ENABLED_BY_DEFAULT = &H1
SE_PRIVILEGE_ENABLED = &H2
SE_PRIVILEGE_USED_FOR_ACCESS = &H80000000
End Enum

Public Enum ExitOptions
EWX_LOGOFF = 0
EWX_SHUTDOWN = 1
EWX_REBOOT = 2
EWX_FORCE = 4
End Enum

Public Enum TokenAccess
TokenUser = 1
TokenGroups = 2
TokenPrivileges = 3
TokenOwner = 4
TokenPrimaryGroup = 5
TokenDefaultDacl = 6
TokenType = 8
TokenImpersonationLevel = 9
TokenStatistics = 10
End Enum

Type LUID
lowPart As Long
HighPart As Long
End Type

Type LUID_AND_ATTRIBUTES
pLuid As LUID
Attributes As PrivilegeAttributes
End Type

Type PTOKEN_PRIVILEGES
PrivilegeCount As Long
Privileges(0) 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 TokenRights, ByRef TokenHandle As Long) As Long
Private Declare Function LookupPrivilegeValueA Lib "advapi32" (ByVal lpSystemName As String, ByVal lpName As String, ByRef lpLuid As LUID) As Long
Private Declare Function AdjustTokenPrivileges Lib "advapi32" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, ByRef NewState As PTOKEN_PRIVILEGES, ByVal BufferLength As Long, ByRef PreviousState As Long, ByRef ReturnLenght As Long) As Long
Private Declare Function AdjustTokenPrivilegesOld Lib "advapi32" Alias "AdjustTokenPrivileges" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, ByRef NewState As PTOKEN_PRIVILEGES, ByVal BufferLength As Long, ByRef PreviousState As PTOKEN_PRIVILEGES, ByRef ReturnLenght As Long) As Long
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As ExitOptions, ByVal dwReserved As Long) As Long

Public Function ShutDown(Operation As ExitOptions) As Long
Dim lngProcess As Long
Dim lngReturn As Long
Dim lngToken As Long
Dim udtLUID As LUID
Dim lngTokenPrivileges As TokenRights
Dim udtTokenPrivNew As PTOKEN_PRIVILEGES
lngProcess = GetCurrentProcess()
lngTokenPrivileges = TOKEN_ADJUST_PRIVILEGES
lngReturn = OpenProcessToken(lngProcess, lngTokenPrivileges, lngToken)
lngReturn = LookupPrivilegeValueA(vbNullString, "SE_SHUTDOWN_NAME", udtLUID)
udtTokenPrivNew.PrivilegeCount = 1
udtTokenPrivNew.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
udtTokenPrivNew.Privileges(0).pLuid = udtLUID
lngReturn = AdjustTokenPrivileges(lngToken, 0, udtTokenPrivNew, 0&, 0, 0&;)
ShutDown = ExitWindowsEx(Operation, 0)
End Function

Ответить

Страница: 1 |

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



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