The settings come from what the user's locale settings are, not any attached keyboard. In the user's local settings they specify what the decimal separator (and other values) are to use. Again, this is completely independent of any keyboard characters.
To get the current UI settings (based upon the user's settings) then you use CultureInfo.CurrentUICulture. This is the system settings overridden with any user-customized settings. There is a related property CultureInfo.CurrentCulture which is the non-UI variant. Honestly I don't know why you'd ever need it.
Once you have the CultureInfo
for the UI then NumberFormat.CurrentDecimalSeparator is what you want.
' Get current user's decimal separator
Dim separator = System.Globalization.CultureInfo.CurrentUICulture.NumberFormat.CurrentDecimalSeparator
Note that most UIs automatically handle using the UI culture so you don't need to do anything special. You'd only need it if you wanted to do custom parsing but also note that the framework can handle this as well.
Dim text = "1.234"
Dim result As Double
If (Double.TryParse(text, NumberStyles.Any., CultureInfo.CurrentUICulture, [ByRef] result))
# Valid double
End If
You can customize NumberStyles to limit the options.
Alternatively consider using a MaskedTextBox if your UI framework supports it.