| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1098 人关注过本帖
标题:vb自动关机
只看楼主 加入收藏
ytsm0526
Rank: 2
来 自:西安市
等 级:论坛游民
威 望:2
帖 子:203
专家分:60
注 册:2007-10-28
结帖率:100%
收藏
 问题点数:0 回复次数:11 
vb自动关机

'以下为模块代码
Option Explicit

Public Type LUID
UsedPart As Long
IgnoredForNowHigh32BitPart As Long
End Type

Public Type TOKEN_PRIVILEGES
PrivilegeCount As Long
TheLuid As LUID
Attributes As Long
End Type

'Beginning of Code

Public Const EWX_SHUTDOWN As Long = 1
Public Const EWX_FORCE As Long = 4
'重起
Public Const EWX_REBOOT = 2
'关机
Public Const EWX_POWEROFF = 8

Public Declare Function ExitWindowsEx Lib "user32" ( _
ByVal dwOptions As Long, ByVal dwReserved As Long) As Long

Public Declare Function GetCurrentProcess Lib "kernel32" () As Long

Public Declare Function OpenProcessToken Lib "advapi32" ( _
ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, _
TokenHandle As Long) As Long

Public Declare Function LookupPrivilegeValue Lib "advapi32" _
Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, _
ByVal lpName As String, lpLuid As LUID) As Long

Public 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

Public Sub AdjustToken()

Const TOKEN_ADJUST_PRIVILEGES = &H20
Const TOKEN_QUERY = &H8
Const SE_PRIVILEGE_ENABLED = &H2

Dim hdlProcessHandle As Long
Dim hdlTokenHandle As Long
Dim tmpLuid As LUID
Dim tkp As TOKEN_PRIVILEGES
Dim tkpNewButIgnored As TOKEN_PRIVILEGES
Dim lBufferNeeded As Long

hdlProcessHandle = GetCurrentProcess()

OpenProcessToken hdlProcessHandle, (TOKEN_ADJUST_PRIVILEGES Or _
TOKEN_QUERY), hdlTokenHandle

' Get the LUID for shutdown privilege.

LookupPrivilegeValue "", "SeShutdownPrivilege", tmpLuid
tkp.PrivilegeCount = 1 ' One privilege to set
tkp.TheLuid = tmpLuid
tkp.Attributes = SE_PRIVILEGE_ENABLED
' Enable the shutdown privilege in the access token of this
' process.
AdjustTokenPrivileges hdlTokenHandle, False, tkp, _
Len(tkpNewButIgnored), tkpNewButIgnored, lBufferNeeded
End Sub

在窗体中加入一个DTPicker控件和一个Timer控件
设置CheckBox属性为True,格式定为:HH:mm
设置Time的Enable属性为True,Interval属性5000。(可自己更改)
Change事件加入代码
If IsNull(DTP.Value) Then
'MsgBox "null"
SaveSetting "RealTimeReadCard", "Set", "AutosdTime", "0"
Timer2.Enabled = False
Else
'MsgBox DTP.Value
SaveSetting "RealTimeReadCard", "Set", "AutosdTime", DTP.Value
Timer2.Enabled = True
Sd_temp = DTP.Value
End If
Form的Load事件加入
Sd_temp = GetSetting("RealTimeReadCard", "Set", "AutosdTime", "")
If Sd_temp = "0" Or Sd_temp = "" Then
DTP.Value = Null
Else
DTP.Value = Sd_temp
End If
Timer事件加入
If Sd_temp <> "" Then
If Left(Sd_temp, Len(Sd_temp) - 3) = Left(Time, Len(Time) - 3) Then
AdjustToken
'ExitWindowsEx (EWX_SHUTDOWN Or EWX_FORCE Or EWX_REBOOT), &HFFFF
ExitWindowsEx (EWX_SHUTDOWN Or EWX_FORCE Or EWX_POWEROFF), &HFFFF
End If
End If

本程序适合win98,nt,2000,xp,2003系统。

搜索更多相关主题的帖子: 自动 
2007-10-28 11:00
ytsm0526
Rank: 2
来 自:西安市
等 级:论坛游民
威 望:2
帖 子:203
专家分:60
注 册:2007-10-28
收藏
得分:0 
同志们你们光看不会,太不行了

作舍道边,三年不成。
多抽出一分钟时间学习,让你的生命更加精彩!,
2007-10-28 11:17
luodachao
Rank: 1
等 级:新手上路
帖 子:116
专家分:0
注 册:2007-10-26
收藏
得分:0 
如何用VB写一个隐藏进程的程序,比如我要隐藏进程名为“QQ.exe”,输入QQ.exe就把这个进程给隐藏了,怎么写?

VB高级QQ群:18620753
2007-10-28 12:07
新建文件夹1987
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-10-28
收藏
得分:0 
顶下,刚才在C#那边也看到一个关机的了。
2007-10-28 12:25
youqingcao
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-10-27
收藏
得分:0 

看不懂想要注释,老师还没讲到模块.


2007-10-28 22:44
liuyond
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-3-31
收藏
得分:0 
顶下,自主学习是第一位的
2007-10-29 08:24
jonvahe
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-10-27
收藏
得分:0 
学习了.
2007-10-29 09:48
star1983
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-10-29
收藏
得分:0 
学习了,不错的代码。
2007-10-29 10:16
ddjk
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-8-16
收藏
得分:0 
自学c中~~~没有学vb
2007-10-29 10:41
wzg0319
Rank: 5Rank: 5
等 级:职业侠客
帖 子:68
专家分:305
注 册:2007-9-12
收藏
得分:0 
我是自学C#的
2007-10-29 10:50
快速回复:vb自动关机
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.101928 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved