【问题标题】:VB.NET change windows system date timeVB.NET改变windows系统日期时间
【发布时间】:2015-02-18 17:42:15
【问题描述】:

我正在尝试使用下面的代码示例更改 Windows 8 系统日期时间。

Private Structure SYSTEMTIME

    Public year As Short

    Public month As Short

    Public dayOfWeek As Short

    Public day As Short

    Public hour As Short

    Public minute As Short

    Public second As Short

    Public milliseconds As Short

End Structure

<DllImport("Kernel32.dll")> Private Shared Function SetLocalTime(ByRef time As SYSTEMTIME) As Boolean

End Function

Private Sub ChangeDate

            Dim st As SYSTEMTIME
            Dim NewDate As Date = "28-April-1978 22:30:00"
            st.year = NewDate .Year
            st.month = NewDate.Month
            st.dayOfWeek = NewDate.DayOfWeek
            st.day = NewDate.Day
            st.hour = NewDate.Hour
            st.minute = NewDate.Minute
            st.second = NewDate.Second
            st.milliseconds = NewDate.Millisecond

            'Set the new time...
            SetLocalTime(st)
End Sub

当我打印 SetLocalTime 的结果时,它返回 false 并且系统的日期时间没有改变。我也尝试过 SetSystemTime 函数,但它返回 0 并且也没有改变任何东西。我在 Windows 上使用管理员帐户。

我应该修改什么才能使它工作?

【问题讨论】:

标签: vb.net datetime


【解决方案1】:
Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\Control Panel\International", "sShortDate", "dd/MMM/yyyy hh:mm:ss")

【讨论】:

  • 虽然这段代码可以解决问题,但包含解释确实有助于提高帖子的质量。
【解决方案2】:

你不需要任何这些来做你想做的事。您可以使用 Microsoft.VisualBasic 命名空间来完成此操作。这是您需要的简短示例。 这也是经过试验和测试的

Private Sub ChangeDate()
   Dim d As DateTime
   d = "22:30:00"

   Try
      Microsoft.VisualBasic.TimeOfDay = d 'Your time...
      Microsoft.VisualBasic.DateString = New Date(1978, 4, 28) 'The date...
   Catch ex As Exception
      'You might have to run as Administrator...?
   End Try

End Sub

【讨论】:

  • 问题是,如果我在 VS 中运行程序,它将无法工作。我必须以管理员身份运行程序才能使其正常工作,这对我来说没有意义,因为我已经在使用管理员帐户。但是您的解决方案更简单、更短,而且有效!
  • 很抱歉恢复了一些旧线程,但是,绕过@fwan 的问题是以管理员身份运行 Visual Studio。一个快速提示以管理员身份运行 Visual Studio,一直手动,只需转到安装目录,然后属性 > 兼容性 > 以管理员身份运行此程序 > 确定
  • 您的代码错误。 “DateString”必须是字符串,而不是日期。所以“04-28-1978”是有效的,但不是“New Date(...”)。
猜你喜欢
  • 2015-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-26
  • 2010-12-16
  • 2012-03-31
  • 1970-01-01
  • 2017-08-22
相关资源
最近更新 更多