VB中如何通过在文本框中输入时间日期然后直接赋值给系统时间日期,从而达到修改系统时间的目的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB中如何通过在文本框中输入时间日期然后直接赋值给系统时间日期,从而达到修改系统时间的目的?相关的知识,希望对你有一定的参考价值。

这里的关键点是使用IsDate()函数判断输入的是不是正确的日期时间格式。
如果正确,则使用Date语句和Time语句设置系统的日期和时间。
代码如下:
Private Sub Command1_Click()
If IsDate(Text1.Text) Then
'设置系统日期和时间
Date = Format(CDate(Text1), "yyyy-mm-dd")
Time = Format(CDate(Text1), "hh:mm:ss")
Else
MsgBox "输入时间错误!"
End If
End Sub
一般的,使用Form_Load初始化文本框(可选的):
Private Sub Form_Load()
Text1.Text = Now
End Sub

OK!这就解决问题了。

这里的知识点:
1、Date 语句 :设置当前系统日期。
语法:Date = date
对于运行 Microsoft Windows 95 的系统,要设置的 date 必须介于 1980 年 1月 1 日与 2099 年 12 月 31 日之间。对于运行 Microsoft Windows NT 的系统,date 必须介于公元 1980 年 1 月 1 日到 2079 年 12 月 31 日之间。
2、Time 语句:设置系统时间。
语法:Time = time
必要的 time 参数,可以是任何能够表示时刻的数值表达式、字符串表达式或它们的组合。
说明:如果 time 是一字符串,则 Time 会试着根据系统指定的时间,利用时间分隔符将其转换成一个时间。如果无法转换成一个有效的时间,则会导致错误发生。
3、IsDate 函数:返回 Boolean 值,指出一个表达式是否可以转换成日期。
语法:IsDate(expression)
必要的 expression 参数是一个 Variant,包含日期表达式或字符串表达式,这里的字符串表达式是可以作为日期或时间来认定的。
说:如果表达式是一个日期,或可以作为有效日期识别,则 IsDate 返回 True;否则返回 False。在 Microsoft Windows 中,有效日期的范围介于公元 100 年 1 月 1 日与公元 9999 年 12 月 31 日之间;其有效范围随操作系统不同而不同。
参考技术A 弄个文本框,然后再用CDate函数来判断。代码:OldDate=CDate(Text1.Text)If OldDate=Now() Thenmsgbox "时间日期一样"Elsemsgbox "时间日期不一样"End If 参考技术B text1.text="2013-11-2 8:20:14" '确保你的text1输入格式是正确的

‘使用下面语句设置系统日期和时间:
Date = Format(CDate(Text1), "yyyy-mm-dd")
Time = Format(CDate(Text1), "hh:mm:ss")
参考技术C 需要使用API函数:SetSystemTime ,这个函数的功能是设置当前的系统时间。
函数声明:
Delart Function SetSystemTime Lib "keme132" Alias "SetSystemTime"(lpSystemTime As SYSTEMTIME) As Long
直接调用SetSystemTime函数,其中lpSystemTime是被新指定的系统时间,例如:
X = SetSystemTime(CDate(Text1.Text))
参考技术D 用什么VB……不如用E语言

我需要向第三方的程序的文本框中赋值。代码如下,但是一直获取不到窗口的句柄?

我需要向第三方的程序的文本框中赋值。代码如下,但是一直获取不到窗口的句柄?希望大家帮我看下Private Sub Command2_Click()Shell App.Path & "\VNC4\vncviewer.exe", vbNormalNoFocusDim hwn As LongDim twn As Longhwn = FindWindow(vbNullString, "VNC Viewer : Connection Details")twn = GetDlgItem(hwn, 1002) '(用SPY + 找的)SendMessage twn, WM_SETTEXT, 0, "10.71.1.1" '//输入IP地址If hwn = 0 ThenLabel1.Caption = "失败"ElseLabel1.Caption = "成功"Label2.Caption = hwnEnd IfEnd Subhwn 一直是0

参考技术A 目前想到的方法:
1、findwindow 获取程序的窗口句柄
2、findwindowex 找到该文本框的句柄
3、GetWindowText或,sendmessage发送WM_GETTEXT消息获取内容
4、根据获取的文本类型(unicode/ansi)做最后的转换、清除空白处理

不能理解的是句柄一直在变化,怎么处理?
消息内容怎么处理?

由于我的级别低,现在没有分给同志们了。。。。。。
一个文本框,或者是静态的,请问怎样可以获得它的文本的句柄,然后直接调用,读取其中的文本呢?
用SendMessage(GetDlgItem(hwndDlg,IDC_EDIT),WM_GETTEXT, _MAX_PATH ,reinterpret_cast<LPARAM>(lpFile) );只能得到文本的副本!希望高手解决!
要是vc++的,其它的看不懂!最好用winapi!mfc也行!在学mfc!追问

我已经知道我错误在哪里了 已经恢复正常了

以上是关于VB中如何通过在文本框中输入时间日期然后直接赋值给系统时间日期,从而达到修改系统时间的目的?的主要内容,如果未能解决你的问题,请参考以下文章

在WinCC中如何通过按钮给变量赋值(原创)

显示日历以在java中选择日期

vb 知道窗口句柄以及怎样获得窗口上文本框和按钮句柄并传递信息

月历 vb.net 多个日期选择

怎么用JS给一个文本输入框赋值为当前日期

VB如何把文件内容显示在文本框中?