CheckForDotNetVersion

This commit is contained in:
2dust 2022-07-29 20:59:07 +08:00
parent ad8afa0d3d
commit a5e9edb2e5
5 changed files with 24 additions and 3 deletions

View file

@ -87,6 +87,12 @@ namespace v2rayN.Forms
MainFormHandler.Instance.RegisterGlobalHotkey(config, OnHotkeyHandler, UpdateTaskHandler); MainFormHandler.Instance.RegisterGlobalHotkey(config, OnHotkeyHandler, UpdateTaskHandler);
_ = LoadV2ray(); _ = LoadV2ray();
if (!Utils.CheckForDotNetVersion())
{
UI.ShowWarning(ResUI.NetFrameworkRequirementsTip);
AppendText(false, ResUI.NetFrameworkRequirementsTip);
}
} }
private void MainForm_FormClosing(object sender, FormClosingEventArgs e) private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
@ -340,7 +346,7 @@ namespace v2rayN.Forms
if (index >= 0 && index < lvServers.Items.Count && lvServers.Items.Count > 0) if (index >= 0 && index < lvServers.Items.Count && lvServers.Items.Count > 0)
{ {
lvServers.Items[index].Selected = true; lvServers.Items[index].Selected = true;
lvServers.EnsureVisible(index); // workaround lvServers.SetScrollPosition(index);
} }
} }
@ -1139,7 +1145,7 @@ namespace v2rayN.Forms
if (index >= 0 && index < lvServers.Items.Count && lvServers.Items.Count > 0) if (index >= 0 && index < lvServers.Items.Count && lvServers.Items.Count > 0)
{ {
lvServers.Items[index].Selected = true; lvServers.Items[index].Selected = true;
lvServers.EnsureVisible(index); // workaround lvServers.SetScrollPosition(index);
} }
SetVisibleCore(true); SetVisibleCore(true);

View file

@ -708,6 +708,15 @@ namespace v2rayN.Resx {
} }
} }
/// <summary>
/// 查找类似 Normal use of this version requires .NET Framework 4.8 的本地化字符串。
/// </summary>
internal static string NetFrameworkRequirementsTip {
get {
return ResourceManager.GetString("NetFrameworkRequirementsTip", resourceCulture);
}
}
/// <summary> /// <summary>
/// 查找类似 Non-VMess or ss protocol 的本地化字符串。 /// 查找类似 Non-VMess or ss protocol 的本地化字符串。
/// </summary> /// </summary>

View file

@ -472,4 +472,7 @@
<data name="MsgServerTitle" xml:space="preserve"> <data name="MsgServerTitle" xml:space="preserve">
<value>Servers (Filter : {0})</value> <value>Servers (Filter : {0})</value>
</data> </data>
<data name="NetFrameworkRequirementsTip" xml:space="preserve">
<value>Normal use of this version requires .NET Framework 4.8</value>
</data>
</root> </root>

View file

@ -472,4 +472,7 @@
<data name="MsgServerTitle" xml:space="preserve"> <data name="MsgServerTitle" xml:space="preserve">
<value>服务器 (过滤器 : {0})</value> <value>服务器 (过滤器 : {0})</value>
</data> </data>
<data name="NetFrameworkRequirementsTip" xml:space="preserve">
<value>正常使用此版本需要.NET Framework 4.8,请更新后重启</value>
</data>
</root> </root>

View file

@ -694,7 +694,7 @@ namespace v2rayN
/// </summary> /// </summary>
/// <param name="release">需要的版本4.6.2=394802;4.8=528040</param> /// <param name="release">需要的版本4.6.2=394802;4.8=528040</param>
/// <returns></returns> /// <returns></returns>
public static bool GetDotNetRelease(int release) public static bool CheckForDotNetVersion(int release = 528040)
{ {
const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\"; const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey)) using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey))