怎么利用vb制作个快速关机程序

 我来答
不想挨踢
2008-02-09
知道答主
回答量:28
采纳率:0%
帮助的人:0
展开全部
'你需要画一个timer,名字叫timer1,然后把代码复制就可以了。

Option Explicit

Private Const EWX_LogOff As Long = 0
Private Const EWX_SHUTDOWN As Long = 1
Private Const EWX_REBOOT As Long = 2
Private Const EWX_FORCE As Long = 4
Private Const EWX_POWEROFF As Long = 8

'The ExitWindow〖HmhK〗环保过滤 function either logs off, shuts down, or shuts
'down and restarts the system.
Private Declare Function ExitWindow〖HmhK〗环保过滤 Lib "user32" (ByVal dwOptions As Long, ByVal dwReserved As Long) As Long

'The GetLastError function returns the calling thread's last-error
'code value. The last-error code is maintained on a per-thread basis.
'Multiple threads do not overwrite each other's last-error code.
Private Declare Function GetLastError Lib "kernel32" () As Long

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

'The GetCurrentProcess function returns a pseudohandle for the
'current process.
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long

'The OpenProcessToken function opens the access token associated with
'a process.
Private Declare Function OpenProcessToken Lib "advapi32" (ByVal ProcessHandle As Long, _
ByVal DesiredAccess As Long, TokenHandle As Long) As Long

'The LookupPrivilegeValue function retrieves the locally unique
'identifier (LUID) used on a specified system to locally represent
'the specified privilege name.
Private Declare Function LookupPrivilegeValue Lib "advapi32" _
Alias "LookupPrivilegeValueA" _
(ByVal lpSystemName As String, _
ByVal lpName As String, _
lpLuid As LUID) As Long

'The AdjustTokenPrivileges function enables or disables privileges
'in the specified access token. Enabling or disabling privileges
'in an access token requires TOKEN_ADJUST_PRIVILEGES access.
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 Sub SetLastError Lib "kernel32" _
(ByVal dwErrCode As Long)

Private Const mlngWindows95 = 0
Private Const mlngWindowsNT = 1

Public glngWhichWindows32 As Long

'The GetVersion function returns the operating system in use.
Private Declare Function GetVersion Lib "kernel32" () As Long

Private Sub AdjustToken()
'********************************************************************
'* This procedure sets the proper privileges to allow a log off or a
'* shut down to occur under Windows NT.
'********************************************************************

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

'Set the error code of the last thread to zero using the
'SetLast Error function. Do this so that the GetLastError
'function does not return a value other than zero for no
'apparent reason.
SetLastError 0

'Use the GetCurrentProcess function to set the hdlProcessHandle
'variable.
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

Private Sub Form_Load()

'********************************************************************
'* When the project starts, check the operating system used by
'* calling the GetVersion function.
'********************************************************************
Dim lngVersion As Long
lngVersion = GetVersion()
If ((lngVersion And &H80000000) = 0) Then
glngWhichWindows32 = mlngWindowsNT
Else
glngWhichWindows32 = mlngWindows95
End If
End Sub

Private Sub Timer1_Timer()
V = MsgBox("确认要关机吗?", vbYesNo + vbQuestion, "???")
If V = vbYes Then
If glngWhichWindows32 = mlngWindowsNT Then
AdjustToken
End If
ExitWindow〖HmhK〗环保过滤 (EWX_SHUTDOWN Or EWX_FORCE Or EWX_POWEROFF), 0
End If
End Sub
杭州一知智能科技有限公司
2022-03-17 广告
电话机器人主要就是用来模拟人工通话的一组程序,一般由,CRM系统,语义识别,转换文字,话术体系,这是软的部分,再加上底层软交换和通信模块一起,合并起来就是一套完整的电话机器人系统。电话机器人可以代替真人进行电话工作的,像是电话营销、售后回访... 点击进入详情页
本回答由杭州一知智能科技有限公司提供
百度网友c3492ed
2008-02-09 · TA获得超过4666个赞
知道大有可为答主
回答量:1965
采纳率:85%
帮助的人:623万
展开全部
在规定时间强制关机

为让你的孩子每天能正常休息,我们把关机时间设为晚上10点。首先用记事本建立一个批处理文件dsgj1.bat,输入“shutdown-s-f-t 10 –c “该休息了,晚安””语句(无外引号,内引号在英文状态下输入,下同)后保存。然后打开“开始→所有程序→附件→系统工具→计划任务”,执行“添加任务计划”命令,选择“下一步”后在“浏览”对话框中选择选择刚才创建的批处理文件dsgj1.bat,在任务运行时间对话框选择“每天”、“下午10:00”,并在用户及密码即可(最好输入密码,否则计划任务可能无法运行)。

参数解释:以上“shutdown”为定时关机或重启命令,“-S”为关闭本地计算机“-F”为强制关闭正在运行的应用程序,“-C10”为将用于系统关闭的定时器设置为10秒(不允许指定具体时刻),“- C”后半角引号内为提示信息,可随意输入。

在规定时间段无法使用

强制关机后,如果孩子尝试重新开机,那么你可以设置在晚上10:00至次日8:00无法使用计算机。建立一个批处理文件如:dsgj2.bat,加入“shutdown-s-f-t 10 –c”“别再尝试了,在明早8:00以前你只能安心休息”语句后保存

按上述方法在计划任务中执行“添加任务计划”命令,选择“下一步”,在“浏览”对话框中选择批处理文件dsgj2.bat,在任务运行时间对话框中选择“每天”、“下午10:00”;在用户名及密码框中输入相应的用户密码,在高级属性对话框中选择“计划”标签的“高级”按扭,选中“重复任务”复选框;选中“持续时间”单选按钮,并在其中输入10小时00分,选择每1分钟重复一次。现在到晚上10:00关机以后,如果重新开机,在不到一分钟时间内便会再次关机,只有至到次日早上8:00才能正常使用。

使用规定时间段后强制关机

为了保护孩子的眼睛,你可能想限定孩子每次使用电脑时间不超过3小时,你可以用“计划任务”的命令行工具“schtasks”来做到这一点。

首先建立一个批处理文件dsgj3.bdt,加入“shutdown-s-f-t 10 –c”长时间使用电脑对眼睛有害,休息一下吧,后保存.再建立另一批处理文件如dsgj.bdt,在其中加入以下语句并保存:

@echo off

del c:\windows\tasks\dsgj3.job

Schasks/create/tn“dsgj3”/tr c:/dsg3.bat/sc hourly /mo 3/ru user /rp123456

将dsgj.bat的快捷方式加入“开始”菜单的“启动”项下,则在每次电脑启动后的3小时后强制关机。因为新创建的计划不能覆盖上一次创建的同名计划,所以以上第二行语句为删除上次启动时创建的计划,以便每次启动时都能以当前时间计划。第三行意思为创建一个以“dsgj3.job”以便在3小时内关机。“ru”后的参数“user”为当前登录的用户名,“/rp”后的“123456”为“user”用户名的密码。

技巧提示:如果年级的孩子知道“shutdown—a”这个命令,并能在10秒内在“运行”对话框中完成的话,那么请将以上“shutdown”命令的“—t”后的参数直接改为0吧

在规定时间禁止上网、玩游戏

晚上7:00至10:00是孩子回家学习的最佳时间,你当然不愿孩子在这个时候上网或玩游戏了。首先建立批处理文件“hhxx.bat”,写入以下语句后保存:

@Echo off

Taskkill /im iexplore /im elements.exe /im ttplayer.exe /f/t

参照以上第二种方法进行设置,只是在添加计划时将“dsgj2.bat”换成”hhxx.bat”,并将相应的时间改成希望值即可。这样,在你设定的时间段,只要浏览器窗口和游戏被运行,在不到一分钟的时间里,便会被计划任务检测到并被关闭,即使反复打开也是一样。

参数解释:以上“taskkill”命令为关闭一个或多个进程,并将进程名作为“/im”的参数,将你想关闭的进程都写入吧!(iexplore。exe为IE浏览器,elements.exe是英雄无敌,ttplayer.exe是千千静听),“/f”为强制关机,“/t”为终止与父进程一起的所有子进程。
参考资料:http://321wgl.blog.163.com/ 里的日志
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式