Public Module Settings Public Sub OpenRegistry() GetTFTPdirectory() Dim objRegkey As Microsoft.Win32.RegistryKey 'Check for registry key if this is first time 'It's OK if the key doesn't exist; we'll write it later On Error GoTo NoRegKeyFirst 'Reading Registry without permission throws error. Ignore. objRegkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\AnywhereTS\ts-config") If (objRegkey Is Nothing) Then #If PRO Then #Else Globals.bolDhcpNotInst = True ' The first time we run the app. #End If Globals.bolCheckForUpdates = True Else If objRegkey.GetValue("CheckUpdate") = 0 Then Globals.bolCheckForUpdates = False Else Globals.bolCheckForUpdates = True End If End If NoRegKeyFirst: On Error GoTo NoRegKeySecond objRegkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\AnywhereTS\ts-config") If Not (objRegkey Is Nothing) Then If Not (objRegkey.GetValue("CheckUpdate") Is Nothing) Then If objRegkey.GetValue("CheckUpdate") = 0 Then Globals.bolCheckForUpdates = False Else Globals.bolCheckForUpdates = True End If Else Globals.bolCheckForUpdates = True 'if reg key "ts-config" exists, but regkey "CheckUpdate" is missing End If If Not (objRegkey.GetValue("appdir") Is Nothing) Then Globals.strAppdir = objRegkey.GetValue("appdir") End If If (objRegkey.GetValue("dhcp_check") = 0) Then #If PRO Then #Else Globals.bolDhcpNotInst = True ' The first time we run the app. #End If End If End If NoRegKeySecond: On Error GoTo 0 If Globals.strAppdir Is Nothing Then Globals.strAppdir = System.IO.Path.GetDirectoryName(Application.ExecutablePath) End If End Sub 'Check for the TFTPD path in registry. Public Function GetTFTPdirectory() As String Dim objRegkey As Microsoft.Win32.RegistryKey 'Check for registry key for TFTP directory Globals.strTFTPdir = Nothing On Error GoTo NoRegKey1 'Reading registry without permission throws error. Ignore. 'Check for MS TFTP first objRegkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\AnywhereTS\ts-config") If Not (objRegkey Is Nothing) Then If Not (objRegkey.GetValue("TFTP_root") Is Nothing) Then Globals.strTFTPdir = objRegkey.GetValue("TFTP_root").ToString Console.WriteLine("HKLM=" + Globals.strTFTPdir) End If End If NoRegKey1: On Error GoTo NoRegKey2 'Check current user If Globals.strTFTPdir Is Nothing Then objRegkey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\AnywhereTS\ts-config") If Not (objRegkey Is Nothing) Then If Not (objRegkey.GetValue("TFTP_root") Is Nothing) Then Globals.strTFTPdir = objRegkey.GetValue("TFTP_root").ToString Console.WriteLine("CURRENT_USER=" + Globals.strTFTPdir) End If End If End If NoRegKey2: On Error GoTo -1 If Globals.strTFTPdir Is Nothing Then Globals.strTFTPdir = strAppdir + "\TFTP_root" Console.WriteLine("tftpdir=" + Globals.strTFTPdir) End If Return Globals.strTFTPdir End Function 'Set the registry keys for TFTPD32. If bolDHCP then enable DHCP, otherwise just TFTP Public Sub SetTFTPD32Regkeys(ByVal bolDHCP As Boolean) Dim objRegkey As Microsoft.Win32.RegistryKey On Error GoTo ErrTFTPD32 objRegkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\TFTPD32", True) If (objRegkey Is Nothing) Then objRegkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\TFTPD32") End If If (objRegkey Is Nothing) Then GoTo ErrTFTPD32 objRegkey.SetValue("LastWindowPos", "60 49 860 642 ") objRegkey.SetValue("BaseDirectory", Globals.strTFTPdir) objRegkey.SetValue("TftpPort", 69) objRegkey.SetValue("Hide", 0) objRegkey.SetValue("WinSize", 0) objRegkey.SetValue("Negociate", 1) objRegkey.SetValue("PXECompatibility", 0) objRegkey.SetValue("DirText", 0) objRegkey.SetValue("ShowProgressBar", 0) objRegkey.SetValue("Timeout", 3) objRegkey.SetValue("MaxRetransmit", 6) objRegkey.SetValue("SecurityLevel", 1) objRegkey.SetValue("UnixStrings", 1) objRegkey.SetValue("Beep", 0) objRegkey.SetValue("VirtualRoot", 1) If Globals.intNoOfValidAdapters = 1 Then objRegkey.SetValue("LocalIP", AtsDhcp.strTftpd32IP) Else objRegkey.SetValue("LocalIP", AtsDhcp.strTftpd32IP) End If If bolDHCP Then objRegkey.SetValue("Services", 5) 'DHCP + TFTP Else objRegkey.SetValue("Services", 1) 'TFTP only End If objRegkey.SetValue("TftpLogFile", "") objRegkey.SetValue("SaveSyslogFile", "") objRegkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\TFTPD32\DHCP", True) If (objRegkey Is Nothing) Then objRegkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\TFTPD32\DHCP") End If If (objRegkey Is Nothing) Then GoTo ErrTFTPD32 objRegkey.SetValue("IP_Pool", &H1400DF0A) objRegkey.SetValue("PoolSize", &HC8) objRegkey.SetValue("BootFile", "client.zpxe") objRegkey.SetValue("DNS", &H100DF0A) objRegkey.SetValue("Mask", &HFFFF) objRegkey.SetValue("Gateway", &H100DF0A) objRegkey.SetValue("DomainName", "") objRegkey.SetValue("AddOptionNumber1", 0) objRegkey.SetValue("AddOptionValue1", "") objRegkey.SetValue("AddOptionNumber2", 0) objRegkey.SetValue("AddOptionValue2", "") Return ErrTFTPD32: On Error GoTo -1 MessageBox.Show("Failed to write to registry. Aborting.", "AnywhereTS", MessageBoxButtons.OK, MessageBoxIcon.Asterisk) Application.Exit() End Sub 'Set the dhcp_check registry key to the intDHCPcheck global variable value Public Sub WriteDHCPRegkey(ByVal intDHCPvalue As Integer) Dim objRegkey As Microsoft.Win32.RegistryKey On Error GoTo NoRegWrite objRegkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\AnywhereTS\ts-config", True) If (objRegkey Is Nothing) Then objRegkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\AnywhereTS\ts-config") End If If (objRegkey Is Nothing) Then GoTo NoRegWrite objRegkey.SetValue("dhcp_check", intDHCPvalue) Return NoRegWrite: On Error GoTo -1 MessageBox.Show("Failed to write to registry. Aborting.", "AnywhereTS", MessageBoxButtons.OK, MessageBoxIcon.Asterisk) Application.Exit() End Sub 'Set the CheckUpdate registry key to the intCheckForUpdates global variable value Public Sub WriteCheckUpdatesRegkey() Dim objRegkey As Microsoft.Win32.RegistryKey On Error GoTo NoRegWrite objRegkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\AnywhereTS\ts-config", True) If (objRegkey Is Nothing) Then objRegkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\AnywhereTS\ts-config") End If If (objRegkey Is Nothing) Then GoTo NoRegWrite If Globals.bolCheckForUpdates = False Then objRegkey.SetValue("CheckUpdate", 0) Else objRegkey.SetValue("CheckUpdate", 1) End If Return NoRegWrite: On Error GoTo -1 MessageBox.Show("Failed to write to registry. Aborting.", "AnywhereTS", MessageBoxButtons.OK, MessageBoxIcon.Asterisk) Application.Exit() End Sub End Module