'C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc /out:test.exe test.vb
Imports System
Imports System.ComponentModel
Imports System.Drawing
Imports System.Windows.Forms
Imports Microsoft.Win32
Public Class Form1
Inherits Form
Private components As System.ComponentModel.IContainer
Friend WithEvents Button1 As New Button
Friend TextBox1 As New TextBox
Friend TextBox2 As New TextBox
Friend Label1 As New Label
Friend Label2 As New Label
Private NtpValue As Integer
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
NtpValue = Registry.GetValue("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\", "SpecialPollInterval", 0)
If NtpValue = 0 Then
MessageBox.Show("設定値の取得に失敗しました。デフォルト値をセットします。")
NtpValue = 604800
End If
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = CStr(CInt(TextBox1.Text))
TextBox2.Text = CStr(CInt(TextBox2.Text))
NtpValue = (CInt(TextBox1.Text) * 86400) + (CInt(TextBox2.Text) * 3600)
If NtpValue < 3600 Then
MessageBox.Show("値が小さすぎます。")
Return
End If
If (MessageBox.Show("更新間隔を " + TextBox1.Text + "日 と " + TextBox2.Text + "時間 " + "(" + CStr(NtpValue) + "秒) おきに設定しますか?", "Question", MessageBoxButtons.YesNo)) = DialogResult.Yes Then
Try
Registry.SetValue("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\", "SpecialPollInterval", NtpValue, RegistryValueKind.DWord)
MessageBox.Show("設定しました!")
Catch
MessageBox.Show("設定に失敗しました。管理者として実行し、もう一度お試しください。")
End Try
End If
End Sub
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
Sub New()
Me.SuspendLayout()
Me.Text = "NTP 更新間隔設定"
Me.Width = 275
Me.Height = 100
Me.FormBorderStyle = FormBorderStyle.Fixed3D
Me.Button1.Text = "設定する"
Me.Button1.Top = 35
Me.Button1.Left = 90
Me.TextBox1.Multiline = False
Me.TextBox1.Left = 10
Me.TextBox1.Top = 10
Me.TextBox1.Width = 80
Me.TextBox1.ScrollBars = ScrollBars.None
Me.TextBox1.Text = CStr(NtpValue / 86400)
Me.TextBox2.Multiline = False
Me.TextBox2.Left = 130
Me.TextBox2.Top = 10
Me.TextBox2.Width = 80
Me.TextBox2.ScrollBars = ScrollBars.None
Me.TextBox2.Text = CStr((NtpValue Mod 86400) / 3600)
Me.Label1.Left = 90
Me.Label1.Top = 15
Me.Label1.Text = "日"
Me.Label2.Left = 210
Me.Label2.Top = 15
Me.Label2.Text = "時間"
Me.ResumeLayout(False)
Me.Controls.Add(Button1)
Me.Controls.Add(TextBox1)
Me.Controls.Add(TextBox2)
Me.Controls.Add(Label1)
Me.Controls.Add(Label2)
End Sub
<STAThread()> Shared Sub Main()
Application.EnableVisualStyles()
Application.Run(New Form1)
End Sub
End Class
Comments