VB可以做到每天定时关机的程序

比如我在窗体里设置了6点关机,然后就会后台运行,然后6点关机,开机自启动安装在电脑里,每天定时自动关机,各位大神求解答.求源码!!... 比如我在窗体里设置了6点关机,然后就会后台运行,然后6点关机,开机自启动
安装在电脑里,每天定时自动关机,各位大神求解答.
求源码!!
展开
 我来答
网海1书生
科技发烧友

2014-11-16 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
我也是建议你用windows系统本身的计划任务来实现,兼容性最好,不用编程。
自己编程的话,技术上很简单,几乎没啥技术含量,就是像一楼说的用shell调用shutdown,也可以调用API函数来实现,只要用个Timer控件每隔一分钟循环一次,判断当前时间是否6点整(下午的六点就是18点整),是就执行关机代码即可。
但是,难点是,不管你怎么弄,这种需要开机自启动的小程序肯定会被360、管家之类的安全软件拦截的,除非你按照它们的提示去认证然后缴纳一定的保护费,否则就只能希望你的软件用户的电脑没装这些安全软件了。当然,如果只是你自己用的,你可以把你的软件加入它们的白名单。
百度网友e9a9413
2014-11-16 · TA获得超过134个赞
知道小有建树答主
回答量:355
采纳率:100%
帮助的人:320万
展开全部
能做,比较麻烦,你为何不用计划任务实现?
VB中用下面代码就可以做到强制关机
Shell "shutdown -s -f -t 0"

注册表添加自动启动(函数定义比较多,我不写出来了)

Dim AppPath As String, Res As Long, KeyHand As Long, StrValue As String

AppPath = App.Path & IIf(Len(App.Path) > 3, "\", "") & App.EXEName & ".exe"

'访问注册表查看是否已注册为自动启动
Res = RegOpenKey(HKEY_CURRENT_USER, "software\microsoft\windows\currentversion\run", KeyHand)
StrValue = String(LenB(AppPath), Chr(0))
Res = RegQueryValueEx(KeyHand, App.EXEName, 0, REG_SZ, ByVal StrValue, LenB(AppPath))
Res = RegCloseKey(KeyHand)

StrValue = Left$(StrValue, Len(AppPath)) '去掉空余字符串CHr(0)

If StrValue = AppPath Then Exit Sub '已注册为自动启动,退出保存

MsgBox " 您选择了“开机自动启动”,程序会将自动启动信息写入注册表," _
+ vbCrLf + vbCrLf + "留意安全软件的动作,请允许本程序访问、修改注册表自动启动项!", 4160, "注意!"

'fCreateShellLink "启动", App.EXEName, AppPath, "", True, "$(Programs)" '添加到自动启动

'通过注册表添加到自动启动
Res = RegCreateKey(HKEY_CURRENT_USER, "software\microsoft\windows\currentversion\run", KeyHand)
Res = RegSetValueEx(KeyHand, App.EXEName, 0, REG_SZ, ByVal AppPath, LenB(AppPath))
Res = RegCloseKey(KeyHand)

Else '删除自动启动

Res = RegCreateKey(HKEY_CURRENT_USER, "software\microsoft\windows\currentversion\run", KeyHand)
Res = RegDeleteValue(KeyHand, App.EXEName)
Res = RegCloseKey(KeyHand)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者zUzVB1Sl31
2014-11-16 · 编程类资料、英语学习资料
创作者zUzVB1Sl31
采纳数:1331 获赞数:5975

向TA提问 私信TA
展开全部
也有简单办法,仅仅给启动项传文件:
用记事本在里面写:
at 22:00 ShutDown -s -t
.txt后缀改成 .bat
直接把他复制到启动项文件夹。一切就OK
下次你要改就以记事本打开他,时间改下就好了。
你还用VB写注册表,不是拿高射炮打蚊子吗?VB语言有他自己的用途,不是狗拿耗子的事情,就好比本来是匹马,偏偏杂交成骡子来用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式