求个VB代码 是那种让人回答问题回答错误就会使电脑桌面倒计时时关机的那种 本人是刚刚接触VB麻烦解释

如何编写一个vb程序能让计算机在一定的时间内自动关机,要方法和全部代码!!
如何编写一个vb程序能让计算机在一定的时间内自动关机,要方法和全部代码!!
09-02-28 &匿名提问
你说的我不太清楚,但我这有一个自动关机。如果和这个差不多,就好解决:本链接7日内有效
请登录后再发表评论!
你说的我不太清楚,但我这有一个自动关机。如果和这个差不多,就好解决:本链接7日内有效
请登录后再发表评论!
你说的我不太清楚,但我这有一个自动关机。如果和这个差不多,就好解决:本链接7日内有效
请登录后再发表评论!
VB自动关机源码自动关机源码.rar
请登录后再发表评论!
一,新建一个文本文档,将下面的代码键入on error resume next dim WSHshellA set WSHshellA = wscript.createobject(&wscript.shell&) WSHshellA.run &cmd.exe /c shutdown -r -t 60 -c &&快叫我爸爸&& &,0 ,true dim a do while(a && &爸爸&) a = inputbox (&快叫我&&爸爸&& &,&叫&,&就不叫&,) msgbox chr(13) + chr(13) + chr(13) + a,0,&MsgBox& loop msgbox chr(13) + chr(13) + chr(13) + &早说不就完了& dim WSHshell set WSHshell = wscript.createobject(&wscript.shell&) WSHshell.run &cmd.exe /c shutdown -a&,0 ,true msgbox chr(13) + chr(13) + chr(13) + &好孩子,呵呵&
      二,保存文本文档,将拓展名改为vbs。       注释:如果你的电脑隐藏了已知拓展名,按我说的做:打开“我得电脑”,打开之后,可看到上面一栏选项,有“文件,编辑,查看,收藏,工具,帮助”,打开“工具”一栏,点击“文件夹选项”,点击“查看”一栏,在里面的内容里,有一个“隐藏已知文件类型的拓展名”把它的勾去掉,这样你的电脑,就会把拓展名都显示出来。现在,再回到你刚才保存后的文本文档,把txt改为vbs。
请登录后再发表评论!vb题 求解答11. 利用TextBox、ProgressBar、Timer控件设计一个带有进度条的倒计时程序,如图2.4.10所示。要求倒计时时间以分为单位输入,以秒为单位显示,进度条指示的是倒数读秒剩余时间,即填充块的数目是随时间减少的。  当在文本框输入分钟数按回车键时,开始进入倒计时,进度条也随之减少。 
豆仔软妹纸簬
设计界面:代码如下:Dim&m&As&IntegerPrivate&Sub&Command1_Click()m&=&Val(Text1.Text)&*&60Timer1.Enabled&=&TrueProgressBar1.Max&=&mProgressBar1.Value&=&mEnd&SubPrivate&Sub&Form_Load()Timer1.Enabled&=&FalseLabel3.FontSize&=&12Label3.Alignment&=&2End&SubPrivate&Sub&Timer1_Timer()Label3.Caption&=&&倒计时还剩余:&&&&m&&&&秒&m&=&m&-&1ProgressBar1.Value&=&mIf&m&=&0&ThenTimer1.Enabled&=&FalseBeepLabel3.Caption&=&&时间到!&MsgBox&&时间到&End&IfEnd&Sub
为您推荐:
扫描下载二维码VB高手进,求倒计时器软件精确到千分之一秒的代码
VB高手进,求倒计时器软件精确到千分之一秒的代码 20
想求的VB制作的倒计时软件精确到千分之一秒。
倒计时计算可使用两种形式,一种是给出要倒计时的时间长度,另一个是给出发生时间(根据所给时间,计算出要从几天几小时...开始倒数)。使用optionbutton来自行选择以上两种模式。在还有1min时,倒计时数字背景为黑色,字体为红色。其他时候正常就行。输出倒计时的格式是DDD,HH:MM:SS(秒的右下边是少小的MS三位),比如在还差零天,零时,零分,5秒。125毫秒时,输出为000,00:00:05(右下角125)
请VB高手给出详细的代码,最好是直接复制到VB代码窗口里就行。以及详细的制作过程。
希望各位能在下周二前分析并研究出来,谢谢。
完全符合提议,并对小弟细心帮助的,追加50分。
毫秒输出格式示例
在窗体上加一个Label控件,一个Timer控件,然后添加如下代码即可
Private Declare Sub GetSystemTime Lib &kernel32& (lpSystemTime As SYSTEMTIME)
Private Type SYSTEMTIME
As Integer
As Integer
wDayOfWeek
As Integer
As Integer
As Integer
As Integer
As Integer
wMilliseconds
As IntegerEnd Type
Private Sub Form_Load()Timer1.Enabled = TrueTimer1.Interval = 100End Sub
Private Sub Timer1_Timer()
Dim a As SYSTEMTIME
GetSystemTime a
Label1 = .wHour & &:& & .wMinute & &:& & .wSecond & &:& & Split(.wMilliseconds / 1000, &.&)(1)
End WithEnd Sub
这个是正计时,不是倒计时,而且我也不能控制要运行的时间。希望可以修改正确
在窗体上添加三个按钮Command1,Command2,Command3,3个label,label1,label2,label3,一个Timer控件,然后添加如下代码即可,一运行程序需要如入时间段,分三次输入,每次输入一个整数。
至于标签的颜色和位置,你自己设置就可以了,直接复制下面代码到窗体中测试
Private Declare Sub GetSystemTime Lib &kernel32& (lpSystemTime As SYSTEMTIME)
Private Type SYSTEMTIME
As Integer
As Integer
wDayOfWeek
As Integer
As Integer
As Integer
As Integer
As Integer
wMilliseconds
As IntegerEnd TypeDim TIME_A As SYSTEMTIME
Dim h, m, s As Integer
Private Sub Command2_Click()
If Command2.Caption = &重设倒计时& ThenCall againCommand1.Enabled = True
End IfEnd Sub
Private Sub Command3_Click()EndEnd Sub
Private Sub Form_Load()Command1.Caption = &倒计时&Command2.Caption = &重设倒计时&Command3.Caption = &结束&MsgBox (&欢迎使用时间段倒计时程序!&)h = Val(InputBox(&请输入倒计时的,小時数,若无填0&, &小時/输入&, 0))m = Val(InputBox(&请输入倒计时的,分钟数,若无填0&, &小時/输入&, 0))s = Val(InputBox(&请输入倒计时的,秒数,若无填0&, &小時/输入&, 0))Label1.Caption = &你输入的时间是:& & Format(h, &00&) & &:& & Format(m, &00&) & &:& & Format(s, &00&)Timer1.Enabled = FalseTimer1.Interval = 100End Sub
Private Sub Command1_Click()Label1.Visible = False
If Command1.Caption = &倒计时& ThenTimer1.Enabled = TrueCommand1.Caption = &停止&Command2.Enabled = FalseElseTimer1.Enabled = FalseCommand1.Caption = &倒计时&Command2.Caption = &重设倒计时&Command2.Enabled = TrueEnd If
End SubSub again()h = Val(InputBox(&请输入倒计时的,小時数,若无填0&, &小時/输入&, 0))m = Val(InputBox(&请输入倒计时的,分钟数,若无填0&, &小時/输入&, 0))s = Val(InputBox(&请输入倒计时的,秒数,若无填0&, &小時/输入&, 0))Label1.Caption = &你输入的时间是:& & Format(h, &00&) & &:& & Format(m, &00&) & &:& & Format(s, &00&) & &如果沒有错误请点击倒计时按纽&Label1.Visible = TrueEnd Sub
Private Sub Timer1_Timer()
If s & 0 Then
If s & 1 And m & 0 Then
If m & 1 And s = 0 And h & 0 Then
If h & 0 Then
If m & 0 Then
GetSystemTime TIME_A
Label2 = Format(h, &00&) & &:& & Format(m, &00&) & &:& & Format(s, &00&)
Label3 = 999 - Split(TIME_A.wMilliseconds / 1000, &.&)(1)
If h = 0 And m = 0 And s = 0 Then
Label2 = &時間到了&
Label3.Caption = 0
Command1.Caption = &倒计时&
Command1.Enabled = False
Timer1.Enabled = False
Command2.Enabled = True
End IfEnd Sub
您这个在倒计时是有问题的,10s,大约不到3s就倒计时结束了,是不是timer的INTERVAL属性没算对?
恩,你看的挺仔细,Timer1.Interval = 100把100改为1000
改完后整体计时是没有问题了,但还有一个问题。显示MS的就变为1s一变了,这点怎么改进
代码我又改了一下,你直接把代码换为下面的即可
Private Declare Sub GetSystemTime Lib &kernel32& (lpSystemTime As SYSTEMTIME)
Private Type SYSTEMTIMEwYear As IntegerwMonth As IntegerwDayOfWeek As IntegerwDay As IntegerwHour As IntegerwMinute As IntegerwSecond As IntegerwMilliseconds As IntegerEnd TypeDim TIME_A As SYSTEMTIME
Dim h, m, s, i As Integer
Private Sub Command2_Click()
If Command2.Caption = &重设倒计时& ThenCall againCommand1.Enabled = True
End IfEnd Sub
Private Sub Command3_Click()EndEnd Sub
Private Sub Form_Load()Command1.Caption = &倒计时&Command2.Caption = &重设倒计时&Command3.Caption = &结束&MsgBox (&欢迎使用时间段倒计时程序!&)h = Val(InputBox(&请输入倒计时的,小時数,若无填0&, &小時/输入&, 0))m = Val(InputBox(&请输入倒计时的,分钟数,若无填0&, &小時/输入&, 0))s = Val(InputBox(&请输入倒计时的,秒数,若无填0&, &小時/输入&, 0))Label1.Caption = &你输入的时间是:& & Format(h, &00&) & &:& & Format(m, &00&) & &:& & Format(s, &00&)Timer1.Enabled = FalseTimer1.Interval = 100End Sub
Private Sub Command1_Click()Label1.Visible = False
If Command1.Caption = &倒计时& ThenTimer1.Enabled = TrueCommand1.Caption = &停止&Command2.Enabled = FalseElseTimer1.Enabled = FalseCommand1.Caption = &倒计时&Command2.Caption = &重设倒计时&Command2.Enabled = TrueEnd If
End SubSub again()h = Val(InputBox(&请输入倒计时的,小時数,若无填0&, &小時/输入&, 0))m = Val(InputBox(&请输入倒计时的,分钟数,若无填0&, &小時/输入&, 0))s = Val(InputBox(&请输入倒计时的,秒数,若无填0&, &小時/输入&, 0))Label1.Caption = &你输入的时间是:& & Format(h, &00&) & &:& & Format(m, &00&) & &:& & Format(s, &00&) & &如果沒有错误请点击倒计时按纽&Label1.Visible = TrueEnd Sub
Private Sub Timer1_Timer()i = i + 1If i Mod 10 = 0 Then
If s & 0 Then
If s & 1 And m & 0 Then
If m & 1 And s = 0 And h & 0 Then
If h & 0 Then
If m & 0 Then
i = 0End IfGetSystemTime TIME_A
Label2 = Format(h, &00&) & &:& & Format(m, &00&) & &:& & Format(s, &00&)Label3 = 999 - Split(TIME_A.wMilliseconds / 1000, &.&)(1)If h = 0 And m = 0 And s = 0 ThenLabel2 = &時間到了&Label3.Caption = 0Command1.Caption = &倒计时&Command1.Enabled = FalseTimer1.Enabled = FalseCommand2.Enabled = TrueEnd IfEnd Sub
您好似忘了最重要的,我的意思是给出结束点,根据现在的时间来计算出倒计时所要进行的时间,然后就是您现在所做到的
恩,那个就是一个计算的问题了,具体的小时数和分钟数以及秒数就是一个换算的过程,这个不是什么程序上的问题,你完全可以自己换算了,就是刚刚运行程序的时候一个输入的问题,一上来输入那个日期就行了,那个应该没什么问题的
您借鉴下倒数2L的那个,能帮忙改进一下吗?我觉得这样会更加精确,即使自己算出来了,但在S上还是会有较大误差的,麻烦了~~
您借鉴下倒数2L的那个,能帮忙改进一下吗?我觉得这样会更加精确,即使自己算出来了,但在S上还是会有较大误差的,麻烦了~~
控件还是3个按钮,3个label,一个timer,把代码换为下面的
Private Declare Sub GetSystemTime Lib &kernel32& (lpSystemTime As SYSTEMTIME)
Private Type SYSTEMTIMEwYear As IntegerwMonth As IntegerwDayOfWeek As IntegerwDay As IntegerwHour As IntegerwMinute As IntegerwSecond As IntegerwMilliseconds As IntegerEnd TypeDim TIME_A As SYSTEMTIME
Dim sDate As StringPrivate Sub Command2_Click()
If Command2.Caption = &重设倒计时& ThenCall againCommand1.Enabled = True
End IfEnd Sub
Private Sub Command3_Click()EndEnd Sub
Private Sub Form_Load()Command1.Caption = &倒计时&Command2.Caption = &重设倒计时&Command3.Caption = &结束&
MsgBox (&欢迎使用时间段倒计时程序!&)sDate = InputBox(&请输入结束时间(格式形如 18:00:10):&)Label1.Caption = &你输入的时间是:& & sDateTimer1.Enabled = FalseTimer1.Interval = 100End Sub
Private Sub Command1_Click()Label1.Visible = False
If Command1.Caption = &倒计时& ThenTimer1.Enabled = TrueCommand1.Caption = &停止&Command2.Enabled = FalseElseTimer1.Enabled = FalseCommand1.Caption = &倒计时&Command2.Caption = &重设倒计时&Command2.Enabled = TrueEnd If
End SubSub again()h = Val(InputBox(&请输入倒计时的,小時数,若无填0&, &小時/输入&, 0))m = Val(InputBox(&请输入倒计时的,分钟数,若无填0&, &小時/输入&, 0))s = Val(InputBox(&请输入倒计时的,秒数,若无填0&, &小時/输入&, 0))Label1.Caption = &你输入的时间是:& & Format(h, &00&) & &:& & Format(m, &00&) & &:& & Format(s, &00&) & &如果沒有错误请点击倒计时按纽&Label1.Visible = TrueEnd Sub
Private Sub Timer1_Timer()
Dim DJS As Date, AllNum As Integer, Printed As Boolean
Dim Kd As Double
If sDate && &0& Then
DJS = sDate
If DJS - Now &= 0 Then
Label2 = sDate & & 已经到了!&
Label3 = &000&
Kd = DJS - Now
Label2 = &距离 & & sDate & & 还有 & & Int(Kd) & & 天 &
Kd = Kd - Int(Kd)
Label2 = Label2 & Int(Kd * 24) & & 小时&
Kd = Kd - Int(Kd * 24) / 24
Label2 = Label2 & Int(Kd * 24 * 60) & & 分钟&
Kd = Kd - Int(Kd * 24 * 60) / 24 / 60
Label2 = Label2 & Int(Kd * 24 * 60 * 60 + 0.5) & & 秒&
GetSystemTime TIME_A
Label3 = Format(999 - Format(TIME_A.wMilliseconds / 1000, &0.000&) * 1000, &@@@&) & & 毫秒&
End IfEnd Sub
做得太好了,而且十分的负责任,为我满足我的需要改了那么多次!这是太感谢了,分数非你莫属~~
的感言:太感谢了,认真负责。为了满足需要改了那么多次。太感谢了 相关知识
其他回答 (5)
现在计算机每秒最多十八次事件1000毫秒=1秒
毫秒所以,可以精确到0.056秒 VB中TIMER计时器的INTERVAL属性设置成:56即可
请您给出确切的,完整的代码,因为不止这一点上我做不到
在窗体上放置两个按钮,两个标签控件,一个Timer控件,然后将下面的内容粘贴到代码窗口里面就行。倒计时的长度需要自己指定。添加用户输入倒计时长度的功能对LZ而言应该不难。如果有任何问题,可以联系我。
Option Explicit'声明将调用系统API,获取当前时间(精度为毫秒级)Private Declare Sub GetSystemTime Lib &kernel32& (lpSystemTime As SYSTEMTIME)'定义系统时间的数据类型Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As IntegerEnd TypeDim MyTime As SYSTEMTIMEDim PTime As SYSTEMTIMEDim NTime As SYSTEMTIME'声明自定义时间数据格式,cDay表示日数,cMilisec表示一天以内的毫秒数Private Type MyDateTime
cDay As Integer
cMiliSec As LongEnd TypeDim TargetSpan As MyDateTimeDim UsedTime As MyDateTimeDim LeftTime As MyDateTime'求两个PrvT和NwT这两个时间点之间的时间差,结果用自定义的时间数据格式表示Private Function MiliSecDiff(PrvT As SYSTEMTIME, NwT As SYSTEMTIME) As MyDateTime
Dim tmpDiff As Long
tmpDiff = tmpDiff + CLng(NwT.wHour - PrvT.wHour) * 60 * 60 * 1000
tmpDiff = tmpDiff + CLng(NwT.wMinute - PrvT.wMinute) * 60 * 1000
tmpDiff = tmpDiff + CLng(NwT.wSecond - PrvT.wSecond) * 1000
tmpDiff = tmpDiff + CLng(NwT.wMilliseconds - PrvT.wMilliseconds)
With MiliSecDiff
.cMiliSec = tmpDiff
.cDay = DateDiff(&d&, MyDayConv(PrvT), MyDayConv(NwT))
If .cMiliSec & 0 Then
.cDay = .cDay - 1
.cMiliSec = .cMiliSec + 24 * 60 * 60 * 1000
End WithEnd Function'将输入的数值组转化为自定义的时间格式Private Function SpanConv(iDay As Integer, iHour As Integer, iMinute As Integer, iSecond As Integer, iMiliSecond As Integer) As MyDateTime
With SpanConv
.cDay = iDay
.cMiliSec = CLng(iHour) * 60 * 60 * 1000 + CLng(iMinute) * 60 * 1000 + CLng(iSecond) * 1000 + CLng(iMiliSecond)
End WithEnd Function'将系统提供的实际数据格式中表示日期的部分提取成为标准的日期格式Private Function MyDayConv(inpTime As SYSTEMTIME) As Date
With inpTime
MyDayConv = DateValue(.wYear & &/& & .wMonth & &/& & .wDay)
End WithEnd Function'计算剩余时间Private Function MyTimeLeft(MyTimeSpan As MyDateTime, MyTimeUsed As MyDateTime) As MyDateTime
With MyTimeLeft
.cDay = MyTimeSpan.cDay - MyTimeUsed.cDay
.cMiliSec = MyTimeSpan.cMiliSec - MyTimeUsed.cMiliSec
If .cMiliSec & 0 And .cDay & 0 Then
.cDay = .cDay - 1
.cMiliSec = .cMiliSec + CLng(24 * 3600000)
If .cDay = 0 And .cMiliSec & 0 Then
.cDay = 0: .cMiliSec = 0
End WithEnd Function'判断倒计时是否到达终点Private Function TimeEnd(inpTime As MyDateTime) As Boolean
TimeEnd = False
With inpTime
If .cDay &= 0 And .cMiliSec &= 0 Then
TimeEnd = True
End WithEnd Function
'***********************************************************************'函数PadStrL用于将输入字符串inp左侧添加指定字符到令字符串总长度达到width为止'***********************************************************************Public Function PadStrL(inp, padchr, width)
Dim i, j, k
tmp = Trim(inp)
If Len(tmp) & width Then
Do While Len(tmp) & width
tmp = padchr & tmp
PadStrL = tmpEnd Function'将自定义时间格式转化为字符串形式,形如“日:小时:分:秒:毫秒”Private Function CStrMyDateTime(inpTime As MyDateTime) As String
CStrMyDateTime = &&
Dim tmpStr As String: Dim BsArr, LenArr, i, tmpSec
tmpStr = &&: BsArr = Array(, 1): LenArr = Array(3, 2, 2, 2)
With inpTime
tmpSec = .cMiliSec
For i = 0 To UBound(BsArr)
tmpStr = PadStrL(CStr(tmpSec Mod BsArr(i)), &0&, LenArr(i)) & &:& & tmpStr
tmpSec = Fix(tmpSec / BsArr(i))
tmpStr = PadStrL(CStr(.cDay), &0&, 3) & &:& & tmpStr
tmpStr = Left(tmpStr, Len(tmpStr) - 1)
CStrMyDateTime = tmpStrEnd Function'将时间字符串切分,将毫秒部分显示在Label2里,将其余部分显示在Label1里Private Sub LabelShow(timeStr As String)
Dim MiliLabel, TimeLabel, tmpPos
tmpPos = InStrRev(timeStr, &:&)
MiliLabel = Mid(timeStr, tmpPos + 1)
Label2.Caption = MiliLabel
TimeLabel = Left(timeStr, tmpPos - 1)
Label1.Caption = TimeLabelEnd Sub
Private Sub Command1_Click()
GetSystemTime PTime
Timer1.Enabled = True
Timer1.Interval = 56
'在这里确定倒计时的长度,形如:“日,小时,分,秒,毫秒”
TargetSpan = SpanConv(0, 0, 1, 32, 620)End Sub
Private Sub Command2_Click()
EndEnd Sub
Private Sub Timer1_Timer()
Dim MyLabel As String
GetSystemTime NTime
UsedTime = MiliSecDiff(PTime, NTime)
LeftTime = MyTimeLeft(TargetSpan, UsedTime)
LabelShow (CStrMyDateTime(LeftTime))
If TimeEnd(LeftTime) Then
Timer1.Enabled = False
End IfEnd Sub
如何自己键入结束的时间点这部分我还是有困难的,希望您可以继续帮助,另外在键入结束点,和键入倒计时时间长度两个方式上的选择,我也是对此有困难的。
Windows不是实时操作系统,做不到这么精确的定时。要精确定时的话,换实时操作系统,或者降低时间精度要求(比如允许线程切换造成的延迟)。 Timer控件在消息队列一直收到消息的场合没什么用,WM_TIMER的优先级太低。
我无语。。。。。。你还真对vb有兴趣。。。
相关知识等待您来回答
编程领域专家
& &SOGOU - 京ICP证050897号VB预设/执行定时关机、关机提醒、倒计时关机下载_最火下载站
> 下载信息页
文件大小:6 KB
授权方式:免费版
更新时间:
界面语言:简体中文
软件等级:
插件情况:无插件
相关网站:
演示网址:Demo Url
运行环境:windows/vb6.0
软件简介:
  VB关机程序,风格类似Windows2000的关机界面,程序不仅仅是单纯的完成关机,还可以定时关机、关机提醒、倒计时关机等功能,设定倒计时几时几分,几秒执行后,电脑会按照设定值工作,时间到自动执行所选操作,可以发出警告。本程序还可完成注销功能&&
《VB预设/执行定时关机、关机提醒、倒计时关机》的下载地址
 1、我们对所有资源都进行了病毒查杀和插件检查,力争提供绿色下载环境。当然,有些含钩子和补丁的软件包可能会误报病毒,但绝对是安全的,推荐您在解压使用前自行检查。 2、如果某软件不能下载,请稍后尝试,总是不能下载的请点击上边的报告错误,我们将尽快修正,谢谢合作! 3、我们提供的程序意在学习和研究,未经作者或本站许可请不要用于商业用途,由此造成的不良后果本站不承担任何责任。 4、本站部分资源下载后需要解压密码,请双击压缩文件,查看右侧的说明,除此之外所有密码为:liehuo.net 5、如果本站提供的某软件或资源侵犯了您的利益或版权,请立即,我们将在收到反馈后的第一时间确认并处理。 6、建议使用下载本站提供的软件,并使用进行解压缩,如果您感觉本站还不错,请。

我要回帖

更多关于 中考倒计时 的文章

 

随机推荐