Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
F
Ftt_Common
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Ftt_Common
Commits
02fce21a
Commit
02fce21a
authored
Nov 14, 2024
by
罗显健
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【编号:16392】增加系统检测工具
parent
73c5f1f1
Changes
17
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
829 additions
and
179 deletions
+829
-179
.gitignore
.gitignore
+2
-0
DotNetVersionChecker.exe.config
AppHome/DotNetVersionChecker.exe.config
+3
-0
List`1.json
AppHome/config/List`1.json
+0
-1
links.xml
AppHome/config/links.xml
+0
-177
DotNetVersionChecker.csproj
DotNetVersionChecker/DotNetVersionChecker.csproj
+100
-0
FrmVersion.Designer.cs
DotNetVersionChecker/FrmVersion.Designer.cs
+144
-0
FrmVersion.cs
DotNetVersionChecker/FrmVersion.cs
+197
-0
FrmVersion.resx
DotNetVersionChecker/FrmVersion.resx
+120
-0
Program.cs
DotNetVersionChecker/Program.cs
+22
-0
AssemblyInfo.cs
DotNetVersionChecker/Properties/AssemblyInfo.cs
+36
-0
Resources.Designer.cs
DotNetVersionChecker/Properties/Resources.Designer.cs
+63
-0
Resources.resx
DotNetVersionChecker/Properties/Resources.resx
+117
-0
app.config
DotNetVersionChecker/app.config
+3
-0
Ftt_Common.sln
Ftt_Common.sln
+14
-0
Tools.csproj
Tools/Tools.csproj
+4
-0
wLogViewer.cs
Tools/UI/wLogViewer.cs
+3
-1
wExtend.cs
Tools/wExtend.cs
+1
-0
No files found.
.gitignore
View file @
02fce21a
...
@@ -55,3 +55,5 @@ bin
...
@@ -55,3 +55,5 @@ bin
/AppHome/Package
/AppHome/Package
/AppHome/caches/default
/AppHome/caches/default
/AppHome/WebKit/caches/default
/AppHome/WebKit/caches/default
/AppHome/config/links.xml
/AppHome/config/List`1.json
AppHome/DotNetVersionChecker.exe.config
0 → 100644
View file @
02fce21a
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
configuration
>
<
startup
><
supportedRuntime
version
=
"v4.0"
sku
=
".NETFramework,Version=v4.5"
/></
startup
></
configuration
>
AppHome/config/List`1.json
deleted
100644 → 0
View file @
73c5f1f1
[
"D:
\\
source
\\
PDM_LN
\\
ExportPath
\\
Logs
\\
Debug"
,
"D:
\\
source
\\
PDM_LN
\\
ExportPath
\\
Logs
\\
Info"
,
"D:
\\
source
\\
FTT_PDM
\\
ExportPath
\\
Logs
\\
Info"
]
\ No newline at end of file
AppHome/config/links.xml
deleted
100644 → 0
View file @
73c5f1f1
<?xml version="1.0" standalone="yes"?>
<DocumentElement>
<links>
<Link>
192.168.1.202
</Link>
<DbName>
FTT_MES
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
<links>
<Link>
192.168.1.204
</Link>
<DbName>
FTT_PDM
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
<links>
<Link>
.
</Link>
<DbName>
Temp
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
<links>
<Link>
192.168.1.204
</Link>
<DbName>
FTT
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
<links>
<Link>
192.168.1.204
</Link>
<DbName>
FTT_MES
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
<links>
<Link>
59.58.142.170,1800
</Link>
<DbName>
FTT
</DbName>
<UserId>
sa
</UserId>
<Pwd>
a*1
</Pwd>
</links>
<links>
<Link>
192.168.1.204
</Link>
<DbName>
FTT_Work
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
<links>
<Link>
192.168.1.202
</Link>
<DbName>
FTT_PDM_210317
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
<links>
<Link>
.
</Link>
<DbName>
PDM_LN
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
<links>
<Link>
192.168.1.202
</Link>
<DbName>
FTT_LN
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
<links>
<Link>
192.168.1.202
</Link>
<DbName>
FTT_LN_210709
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
<links>
<Link>
27.154.225.54,49296
</Link>
<DbName>
FTT_U6_0813
</DbName>
<UserId>
sa
</UserId>
<Pwd>
a*1
</Pwd>
</links>
<links>
<Link>
120.192.78.70,5088
</Link>
<DbName>
JHD_HY
</DbName>
<UserId>
sa
</UserId>
<Pwd>
a*1
</Pwd>
</links>
<links>
<Link>
120.33.205.26,1800
</Link>
<DbName>
FTT_PDM
</DbName>
<UserId>
sa
</UserId>
<Pwd>
a*1
</Pwd>
</links>
<links>
<Link>
192.168.1.202
</Link>
<DbName>
FTT_LN_210716
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
<links>
<Link>
27.154.225.54,49296
</Link>
<DbName>
FTT_U6
</DbName>
<UserId>
sa
</UserId>
<Pwd>
a*1
</Pwd>
</links>
<links>
<Link>
192.168.1.31
</Link>
<DbName>
FTT_PDM
</DbName>
<UserId>
sa
</UserId>
<Pwd>
a*1
</Pwd>
</links>
<links>
<Link>
122.226.244.210,1800
</Link>
<DbName>
FTT_U6
</DbName>
<UserId>
sa
</UserId>
<Pwd>
a*1
</Pwd>
</links>
<links>
<Link>
120.192.78.70,5088
</Link>
<DbName>
JHD_HY_210911
</DbName>
<UserId>
sa
</UserId>
<Pwd>
a*1
</Pwd>
</links>
<links>
<Link>
192.168.1.204
</Link>
<DbName>
FTT_GuBang
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
<links>
<Link>
192.168.1.204
</Link>
<DbName>
FTT_GeErRui
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
<links>
<Link>
192.168.1.202
</Link>
<DbName>
FTT_CJ211123
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
<links>
<Link>
192.168.1.202
</Link>
<DbName>
LY_U6_211102
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
<links>
<Link>
192.168.1.204
</Link>
<DbName>
FTT_LuYao
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
<links>
<Link>
119.190.10.248,1800
</Link>
<DbName>
FTT_U6
</DbName>
<UserId>
sa
</UserId>
<Pwd>
a*1
</Pwd>
</links>
<links>
<Link>
192.168.1.202
</Link>
<DbName>
JHD_HY_210719
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
<links>
<Link>
192.168.18.253
</Link>
<DbName>
JHD_HY
</DbName>
<UserId>
sa
</UserId>
<Pwd>
a*1
</Pwd>
</links>
<links>
<Link>
192.168.18.253
</Link>
<DbName>
FTT
</DbName>
<UserId>
sa
</UserId>
<Pwd>
a*1
</Pwd>
</links>
<links>
<Link>
192.168.1.204
</Link>
<DbName>
ln_pdm20230822
</DbName>
<UserId>
sa
</UserId>
<Pwd>
sa
</Pwd>
</links>
</DocumentElement>
\ No newline at end of file
DotNetVersionChecker/DotNetVersionChecker.csproj
0 → 100644
View file @
02fce21a
<?xml version="1.0" encoding="utf-8"?>
<Project
ToolsVersion=
"15.0"
xmlns=
"http://schemas.microsoft.com/developer/msbuild/2003"
>
<Import
Project=
"$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props"
Condition=
"Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')"
/>
<PropertyGroup>
<Configuration
Condition=
" '$(Configuration)' == '' "
>
Debug
</Configuration>
<Platform
Condition=
" '$(Platform)' == '' "
>
AnyCPU
</Platform>
<ProjectGuid>
{3AA9B489-83C4-4530-8B38-833726D203E7}
</ProjectGuid>
<OutputType>
WinExe
</OutputType>
<RootNamespace>
DotNetVersionChecker
</RootNamespace>
<AssemblyName>
DotNetVersionChecker
</AssemblyName>
<TargetFrameworkVersion>
v4.5
</TargetFrameworkVersion>
<FileAlignment>
512
</FileAlignment>
<Deterministic>
false
</Deterministic>
<PublishUrl>
publish\
</PublishUrl>
<Install>
true
</Install>
<InstallFrom>
Disk
</InstallFrom>
<UpdateEnabled>
false
</UpdateEnabled>
<UpdateMode>
Foreground
</UpdateMode>
<UpdateInterval>
7
</UpdateInterval>
<UpdateIntervalUnits>
Days
</UpdateIntervalUnits>
<UpdatePeriodically>
false
</UpdatePeriodically>
<UpdateRequired>
false
</UpdateRequired>
<MapFileExtensions>
true
</MapFileExtensions>
<ApplicationRevision>
0
</ApplicationRevision>
<ApplicationVersion>
1.0.0.%2a
</ApplicationVersion>
<IsWebBootstrapper>
false
</IsWebBootstrapper>
<UseApplicationTrust>
false
</UseApplicationTrust>
<BootstrapperEnabled>
true
</BootstrapperEnabled>
<TargetFrameworkProfile
/>
</PropertyGroup>
<PropertyGroup
Condition=
" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "
>
<PlatformTarget>
AnyCPU
</PlatformTarget>
<DebugSymbols>
true
</DebugSymbols>
<DebugType>
full
</DebugType>
<Optimize>
false
</Optimize>
<OutputPath>
bin\Debug\
</OutputPath>
<DefineConstants>
DEBUG;TRACE
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
<Prefer32Bit>
false
</Prefer32Bit>
</PropertyGroup>
<PropertyGroup
Condition=
" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "
>
<PlatformTarget>
AnyCPU
</PlatformTarget>
<DebugType>
pdbonly
</DebugType>
<Optimize>
true
</Optimize>
<OutputPath>
bin\Release\
</OutputPath>
<DefineConstants>
TRACE
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
<Prefer32Bit>
false
</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference
Include=
"System"
/>
<Reference
Include=
"System.Core"
/>
<Reference
Include=
"System.Management"
/>
<Reference
Include=
"System.Xml.Linq"
/>
<Reference
Include=
"System.Data.DataSetExtensions"
/>
<Reference
Include=
"Microsoft.CSharp"
/>
<Reference
Include=
"System.Data"
/>
<Reference
Include=
"System.Deployment"
/>
<Reference
Include=
"System.Drawing"
/>
<Reference
Include=
"System.Net.Http"
/>
<Reference
Include=
"System.Windows.Forms"
/>
<Reference
Include=
"System.Xml"
/>
</ItemGroup>
<ItemGroup>
<Compile
Include=
"FrmVersion.cs"
>
<SubType>
Form
</SubType>
</Compile>
<Compile
Include=
"FrmVersion.Designer.cs"
>
<DependentUpon>
FrmVersion.cs
</DependentUpon>
</Compile>
<Compile
Include=
"Program.cs"
/>
<Compile
Include=
"Properties\AssemblyInfo.cs"
/>
<EmbeddedResource
Include=
"FrmVersion.resx"
>
<DependentUpon>
FrmVersion.cs
</DependentUpon>
</EmbeddedResource>
<EmbeddedResource
Include=
"Properties\Resources.resx"
>
<Generator>
ResXFileCodeGenerator
</Generator>
<LastGenOutput>
Resources.Designer.cs
</LastGenOutput>
<SubType>
Designer
</SubType>
</EmbeddedResource>
<Compile
Include=
"Properties\Resources.Designer.cs"
>
<AutoGen>
True
</AutoGen>
<DependentUpon>
Resources.resx
</DependentUpon>
<DesignTime>
True
</DesignTime>
</Compile>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage
Include=
"Microsoft.Net.Framework.3.5.SP1"
>
<Visible>
False
</Visible>
<ProductName>
.NET Framework 3.5 SP1
</ProductName>
<Install>
false
</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<None
Include=
"app.config"
/>
</ItemGroup>
<Import
Project=
"$(MSBuildToolsPath)\Microsoft.CSharp.targets"
/>
</Project>
\ No newline at end of file
DotNetVersionChecker/FrmVersion.Designer.cs
0 → 100644
View file @
02fce21a
namespace
DotNetVersionChecker
{
partial
class
FrmVersion
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private
System
.
ComponentModel
.
IContainer
components
=
null
;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected
override
void
Dispose
(
bool
disposing
)
{
if
(
disposing
&&
(
components
!=
null
))
{
components
.
Dispose
();
}
base
.
Dispose
(
disposing
);
}
#
region
Windows
窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private
void
InitializeComponent
()
{
this
.
lblVersion
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
groupBox1
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
groupBox2
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
lblCpuCore
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
lblOsMemory
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
lblOsCpu
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
lblOsName
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
groupBox1
.
SuspendLayout
();
this
.
groupBox2
.
SuspendLayout
();
this
.
SuspendLayout
();
//
// lblVersion
//
this
.
lblVersion
.
AutoSize
=
true
;
this
.
lblVersion
.
Location
=
new
System
.
Drawing
.
Point
(
8
,
27
);
this
.
lblVersion
.
Name
=
"lblVersion"
;
this
.
lblVersion
.
Size
=
new
System
.
Drawing
.
Size
(
59
,
12
);
this
.
lblVersion
.
TabIndex
=
1
;
this
.
lblVersion
.
Text
=
"Version:"
;
//
// groupBox1
//
this
.
groupBox1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
groupBox1
.
Controls
.
Add
(
this
.
lblVersion
);
this
.
groupBox1
.
Location
=
new
System
.
Drawing
.
Point
(
12
,
124
);
this
.
groupBox1
.
Name
=
"groupBox1"
;
this
.
groupBox1
.
Size
=
new
System
.
Drawing
.
Size
(
429
,
57
);
this
.
groupBox1
.
TabIndex
=
2
;
this
.
groupBox1
.
TabStop
=
false
;
this
.
groupBox1
.
Text
=
"Net 版本信息"
;
//
// groupBox2
//
this
.
groupBox2
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
groupBox2
.
Controls
.
Add
(
this
.
lblCpuCore
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
lblOsMemory
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
lblOsCpu
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
lblOsName
);
this
.
groupBox2
.
Location
=
new
System
.
Drawing
.
Point
(
12
,
12
);
this
.
groupBox2
.
Name
=
"groupBox2"
;
this
.
groupBox2
.
Size
=
new
System
.
Drawing
.
Size
(
429
,
97
);
this
.
groupBox2
.
TabIndex
=
3
;
this
.
groupBox2
.
TabStop
=
false
;
this
.
groupBox2
.
Text
=
"操作系统信息"
;
//
// lblCpuCore
//
this
.
lblCpuCore
.
AutoSize
=
true
;
this
.
lblCpuCore
.
Location
=
new
System
.
Drawing
.
Point
(
8
,
72
);
this
.
lblCpuCore
.
Name
=
"lblCpuCore"
;
this
.
lblCpuCore
.
Size
=
new
System
.
Drawing
.
Size
(
59
,
12
);
this
.
lblCpuCore
.
TabIndex
=
4
;
this
.
lblCpuCore
.
Text
=
"Cpu核心:"
;
//
// lblOsMemory
//
this
.
lblOsMemory
.
AutoSize
=
true
;
this
.
lblOsMemory
.
Location
=
new
System
.
Drawing
.
Point
(
207
,
72
);
this
.
lblOsMemory
.
Name
=
"lblOsMemory"
;
this
.
lblOsMemory
.
Size
=
new
System
.
Drawing
.
Size
(
41
,
12
);
this
.
lblOsMemory
.
TabIndex
=
3
;
this
.
lblOsMemory
.
Text
=
"内存:"
;
//
// lblOsCpu
//
this
.
lblOsCpu
.
AutoSize
=
true
;
this
.
lblOsCpu
.
Location
=
new
System
.
Drawing
.
Point
(
8
,
48
);
this
.
lblOsCpu
.
Name
=
"lblOsCpu"
;
this
.
lblOsCpu
.
Size
=
new
System
.
Drawing
.
Size
(
35
,
12
);
this
.
lblOsCpu
.
TabIndex
=
2
;
this
.
lblOsCpu
.
Text
=
"Cpu:"
;
//
// lblOsName
//
this
.
lblOsName
.
AutoSize
=
true
;
this
.
lblOsName
.
Location
=
new
System
.
Drawing
.
Point
(
8
,
24
);
this
.
lblOsName
.
Name
=
"lblOsName"
;
this
.
lblOsName
.
Size
=
new
System
.
Drawing
.
Size
(
41
,
12
);
this
.
lblOsName
.
TabIndex
=
0
;
this
.
lblOsName
.
Text
=
"系统:"
;
//
// FrmVersion
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
6F
,
12F
);
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Font
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
459
,
192
);
this
.
Controls
.
Add
(
this
.
groupBox2
);
this
.
Controls
.
Add
(
this
.
groupBox1
);
this
.
MaximizeBox
=
false
;
this
.
MinimizeBox
=
false
;
this
.
Name
=
"FrmVersion"
;
this
.
StartPosition
=
System
.
Windows
.
Forms
.
FormStartPosition
.
CenterScreen
;
this
.
Text
=
"版本信息监测"
;
this
.
groupBox1
.
ResumeLayout
(
false
);
this
.
groupBox1
.
PerformLayout
();
this
.
groupBox2
.
ResumeLayout
(
false
);
this
.
groupBox2
.
PerformLayout
();
this
.
ResumeLayout
(
false
);
}
#
endregion
private
System
.
Windows
.
Forms
.
Label
lblVersion
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox2
;
private
System
.
Windows
.
Forms
.
Label
lblOsName
;
private
System
.
Windows
.
Forms
.
Label
lblOsCpu
;
private
System
.
Windows
.
Forms
.
Label
lblOsMemory
;
private
System
.
Windows
.
Forms
.
Label
lblCpuCore
;
}
}
DotNetVersionChecker/FrmVersion.cs
0 → 100644
View file @
02fce21a
/*----------------------------------------------------------------
Copyright (C) 2024 Feteto All rights reserved.
Author : lxj
Create date : 2024-11-13
Description : 系统版本信息检测
----------------------------------------------------------------*/
using
Microsoft.Win32
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Management
;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
namespace
DotNetVersionChecker
{
public
partial
class
FrmVersion
:
Form
{
public
FrmVersion
()
{
InitializeComponent
();
//异步加载比较耗时的操作,防止界面卡顿
this
.
Load
+=
FrmVersion_Load
;
}
private
async
void
FrmVersion_Load
(
object
sender
,
EventArgs
e
)
{
var
task1
=
Task
.
Run
(()
=>
{
ShowOsVersion
();
});
var
task2
=
Task
.
Run
(()
=>
{
ShowDotNetVersion
();
});
// 同步跑、相互不影响
await
Task
.
WhenAll
(
task1
,
task2
);
}
#
region
显示
DoNet
版本信息
/// <summary>
/// 显示已安装的Net最高版本信息
/// </summary>
public
void
ShowDotNetVersion
()
{
string
release
=
""
,
version
=
""
;
//获取注册表键
const
string
registryKey
=
@"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\"
;
using
(
RegistryKey
key
=
Registry
.
LocalMachine
.
OpenSubKey
(
registryKey
))
{
if
(
key
!=
null
)
{
release
=
key
.
GetValue
(
"Release"
)?.
ToString
();
version
=
key
.
GetValue
(
"Version"
)?.
ToString
();
}
}
if
(!
string
.
IsNullOrEmpty
(
release
)
&&
string
.
IsNullOrEmpty
(
version
))
{
version
=
NetRelease2Version
(
release
);
}
lblVersion
.
Invoke
(
new
MethodInvoker
(()
=>
lblVersion
.
Text
=
$"
{
version
}
(
{
release
}
)"
));
}
/// <summary>
/// Net release 转version 信息
/// </summary>
/// <param name="release"></param>
/// <returns></returns>
private
string
NetRelease2Version
(
string
release
)
{
if
(
int
.
TryParse
(
release
,
out
int
releaseKey
))
{
// 确定.NET Framework版本
if
(
releaseKey
>=
533320
)
return
"4.8.1"
;
if
(
releaseKey
>=
528040
)
return
"4.8"
;
if
(
releaseKey
>=
461808
)
return
"4.7.2"
;
if
(
releaseKey
>=
461308
)
return
"4.7.1"
;
if
(
releaseKey
>=
460798
)
return
"4.7"
;
if
(
releaseKey
>=
394802
)
return
"4.6.2"
;
if
(
releaseKey
>=
394254
)
return
"4.6.1"
;
if
(
releaseKey
>=
393295
)
return
"4.6"
;
if
(
releaseKey
>=
379893
)
return
"4.5.2"
;
if
(
releaseKey
>=
378675
)
return
"4.5.1"
;
if
(
releaseKey
>=
378389
)
return
"4.5"
;
// 不会走到这里的,本程序集4.5+才会被执行
return
""
;
}
return
""
;
}
#
endregion
#
region
操作系统信息
/// <summary>
/// 显示操作系统版本信息
/// </summary>
private
void
ShowOsVersion
()
{
// 操作系统版本
var
osMo
=
GetManagementObject
(
"Win32_OperatingSystem"
).
FirstOrDefault
();
if
(
osMo
!=
null
)
{
lblOsName
.
Invoke
(
new
MethodInvoker
(()
=>
{
lblOsName
.
Text
=
osMo
[
"Caption"
]?.
ToString
()
+
" "
+
osMo
[
"Version"
]?.
ToString
();
}));
}
// 处理器,显示第一颗
var
procMo
=
GetManagementObject
(
"Win32_Processor"
).
First
();
var
procMoVal
=
GetManagementObjectProps
(
procMo
);
procMoVal
.
TryGetValue
(
"Name"
,
out
string
cpuName
);
procMoVal
.
TryGetValue
(
"NumberOfCores"
,
out
string
cpuCores
);
procMoVal
.
TryGetValue
(
"NumberOfLogicalProcessors"
,
out
string
cpuProcessor
);
lblOsCpu
.
Invoke
(
new
MethodInvoker
(()
=>
{
lblOsCpu
.
Text
=
cpuName
;
lblCpuCore
.
Text
=
$"
{
cpuCores
}
核心
{
cpuProcessor
}
线程"
;
}));
//内存,可以有多条
long
totalMemorySize
=
0
,
realSpeed
=
0
;
var
memoMos
=
GetManagementObject
(
"Win32_PhysicalMemory"
);
memoMos
?.
ForEach
(
mo
=>
{
var
memoMoVal
=
GetManagementObjectProps
(
mo
);
if
(
memoMoVal
.
TryGetValue
(
"Capacity"
,
out
string
capacity
)
&&
!
string
.
IsNullOrEmpty
(
capacity
))
totalMemorySize
+=
long
.
Parse
(
capacity
);
if
(
memoMoVal
.
TryGetValue
(
"Speed"
,
out
string
speed
)
&&
!
string
.
IsNullOrEmpty
(
speed
))
{
if
(
realSpeed
==
0
)
realSpeed
=
long
.
Parse
(
speed
);
//第一根的速度
realSpeed
=
Math
.
Min
(
realSpeed
,
long
.
Parse
(
speed
));
//最终速度取最小
}
});
lblOsMemory
.
Invoke
(
new
MethodInvoker
(()
=>
{
lblOsMemory
.
Text
=
(
totalMemorySize
/
1024
/
1024
/
1024
).
ToString
()
+
$"GB
{
realSpeed
}
MHz"
;
}));
}
private
List
<
ManagementObject
>
GetManagementObject
(
string
managementObjectKeyName
)
{
ManagementObjectSearcher
searcher
=
new
ManagementObjectSearcher
(
$"SELECT * FROM
{
managementObjectKeyName
}
"
);
if
(
searcher
!=
null
)
{
return
searcher
.
Get
().
Cast
<
ManagementObject
>().
AsEnumerable
().
ToList
();
}
return
null
;
}
private
Dictionary
<
string
,
string
>
GetManagementObjectProps
(
ManagementObject
managementObject
)
{
var
props
=
new
Dictionary
<
string
,
string
>();
if
(
managementObject
==
null
)
return
props
;
foreach
(
PropertyData
pd
in
managementObject
?.
Properties
)
{
Console
.
WriteLine
(
$"
{
pd
.
Name
}
:
{
pd
.
Value
}
"
);
props
.
Add
(
pd
.
Name
,
pd
.
Value
?.
ToString
());
}
return
props
;
}
#
endregion
}
}
DotNetVersionChecker/FrmVersion.resx
0 → 100644
View file @
02fce21a
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema
id=
"root"
xmlns=
""
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
xmlns:msdata=
"urn:schemas-microsoft-com:xml-msdata"
>
<xsd:import
namespace=
"http://www.w3.org/XML/1998/namespace"
/>
<xsd:element
name=
"root"
msdata:IsDataSet=
"true"
>
<xsd:complexType>
<xsd:choice
maxOccurs=
"unbounded"
>
<xsd:element
name=
"metadata"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
use=
"required"
type=
"xsd:string"
/>
<xsd:attribute
name=
"type"
type=
"xsd:string"
/>
<xsd:attribute
name=
"mimetype"
type=
"xsd:string"
/>
<xsd:attribute
ref=
"xml:space"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"assembly"
>
<xsd:complexType>
<xsd:attribute
name=
"alias"
type=
"xsd:string"
/>
<xsd:attribute
name=
"name"
type=
"xsd:string"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"data"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"1"
/>
<xsd:element
name=
"comment"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"2"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
type=
"xsd:string"
use=
"required"
msdata:Ordinal=
"1"
/>
<xsd:attribute
name=
"type"
type=
"xsd:string"
msdata:Ordinal=
"3"
/>
<xsd:attribute
name=
"mimetype"
type=
"xsd:string"
msdata:Ordinal=
"4"
/>
<xsd:attribute
ref=
"xml:space"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"resheader"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"1"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
type=
"xsd:string"
use=
"required"
/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader
name=
"resmimetype"
>
<value>
text/microsoft-resx
</value>
</resheader>
<resheader
name=
"version"
>
<value>
2.0
</value>
</resheader>
<resheader
name=
"reader"
>
<value>
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
</value>
</resheader>
<resheader
name=
"writer"
>
<value>
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
</value>
</resheader>
</root>
\ No newline at end of file
DotNetVersionChecker/Program.cs
0 → 100644
View file @
02fce21a
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
namespace
DotNetVersionChecker
{
internal
static
class
Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[
STAThread
]
static
void
Main
()
{
Application
.
EnableVisualStyles
();
Application
.
SetCompatibleTextRenderingDefault
(
false
);
Application
.
Run
(
new
FrmVersion
());
}
}
}
DotNetVersionChecker/Properties/AssemblyInfo.cs
0 → 100644
View file @
02fce21a
using
System.Reflection
;
using
System.Runtime.CompilerServices
;
using
System.Runtime.InteropServices
;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("DotNetVersionChecker")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("P R C")]
[assembly: AssemblyProduct("DotNetVersionChecker")]
[assembly: AssemblyCopyright("Copyright © P R C 2024")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("3aa9b489-83c4-4530-8b38-833726d203e7")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.*")]
DotNetVersionChecker/Properties/Resources.Designer.cs
0 → 100644
View file @
02fce21a
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace
DotNetVersionChecker.Properties
{
using
System
;
/// <summary>
/// 一个强类型的资源类,用于查找本地化的字符串等。
/// </summary>
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"System.Resources.Tools.StronglyTypedResourceBuilder"
,
"17.0.0.0"
)]
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
()]
[
global
::
System
.
Runtime
.
CompilerServices
.
CompilerGeneratedAttribute
()]
internal
class
Resources
{
private
static
global
::
System
.
Resources
.
ResourceManager
resourceMan
;
private
static
global
::
System
.
Globalization
.
CultureInfo
resourceCulture
;
[
global
::
System
.
Diagnostics
.
CodeAnalysis
.
SuppressMessageAttribute
(
"Microsoft.Performance"
,
"CA1811:AvoidUncalledPrivateCode"
)]
internal
Resources
()
{
}
/// <summary>
/// 返回此类使用的缓存的 ResourceManager 实例。
/// </summary>
[
global
::
System
.
ComponentModel
.
EditorBrowsableAttribute
(
global
::
System
.
ComponentModel
.
EditorBrowsableState
.
Advanced
)]
internal
static
global
::
System
.
Resources
.
ResourceManager
ResourceManager
{
get
{
if
(
object
.
ReferenceEquals
(
resourceMan
,
null
))
{
global
::
System
.
Resources
.
ResourceManager
temp
=
new
global
::
System
.
Resources
.
ResourceManager
(
"DotNetVersionChecker.Properties.Resources"
,
typeof
(
Resources
).
Assembly
);
resourceMan
=
temp
;
}
return
resourceMan
;
}
}
/// <summary>
/// 重写当前线程的 CurrentUICulture 属性,对
/// 使用此强类型资源类的所有资源查找执行重写。
/// </summary>
[
global
::
System
.
ComponentModel
.
EditorBrowsableAttribute
(
global
::
System
.
ComponentModel
.
EditorBrowsableState
.
Advanced
)]
internal
static
global
::
System
.
Globalization
.
CultureInfo
Culture
{
get
{
return
resourceCulture
;
}
set
{
resourceCulture
=
value
;
}
}
}
}
DotNetVersionChecker/Properties/Resources.resx
0 → 100644
View file @
02fce21a
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema
id=
"root"
xmlns=
""
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
xmlns:msdata=
"urn:schemas-microsoft-com:xml-msdata"
>
<xsd:element
name=
"root"
msdata:IsDataSet=
"true"
>
<xsd:complexType>
<xsd:choice
maxOccurs=
"unbounded"
>
<xsd:element
name=
"metadata"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
type=
"xsd:string"
/>
<xsd:attribute
name=
"type"
type=
"xsd:string"
/>
<xsd:attribute
name=
"mimetype"
type=
"xsd:string"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"assembly"
>
<xsd:complexType>
<xsd:attribute
name=
"alias"
type=
"xsd:string"
/>
<xsd:attribute
name=
"name"
type=
"xsd:string"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"data"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"1"
/>
<xsd:element
name=
"comment"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"2"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
type=
"xsd:string"
msdata:Ordinal=
"1"
/>
<xsd:attribute
name=
"type"
type=
"xsd:string"
msdata:Ordinal=
"3"
/>
<xsd:attribute
name=
"mimetype"
type=
"xsd:string"
msdata:Ordinal=
"4"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"resheader"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"1"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
type=
"xsd:string"
use=
"required"
/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader
name=
"resmimetype"
>
<value>
text/microsoft-resx
</value>
</resheader>
<resheader
name=
"version"
>
<value>
2.0
</value>
</resheader>
<resheader
name=
"reader"
>
<value>
System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
</value>
</resheader>
<resheader
name=
"writer"
>
<value>
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
</value>
</resheader>
</root>
\ No newline at end of file
DotNetVersionChecker/app.config
0 → 100644
View file @
02fce21a
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
configuration
>
<
startup
><
supportedRuntime
version
=
"v4.0"
sku
=
".NETFramework,Version=v4.5"
/></
startup
></
configuration
>
Ftt_Common.sln
View file @
02fce21a
...
@@ -17,6 +17,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pan.DIYForm", "DIYForm\Pan.
...
@@ -17,6 +17,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pan.DIYForm", "DIYForm\Pan.
EndProject
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebKit", "WebKit\WebKit.csproj", "{67D48628-0AA7-4613-96C5-63022D610307}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebKit", "WebKit\WebKit.csproj", "{67D48628-0AA7-4613-96C5-63022D610307}"
EndProject
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetVersionChecker", "DotNetVersionChecker\DotNetVersionChecker.csproj", "{3AA9B489-83C4-4530-8B38-833726D203E7}"
EndProject
Global
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|Any CPU = Debug|Any CPU
...
@@ -111,6 +113,18 @@ Global
...
@@ -111,6 +113,18 @@ Global
{67D48628-0AA7-4613-96C5-63022D610307}.Release|x64.Build.0 = Release|x64
{67D48628-0AA7-4613-96C5-63022D610307}.Release|x64.Build.0 = Release|x64
{67D48628-0AA7-4613-96C5-63022D610307}.Release|x86.ActiveCfg = Release|x86
{67D48628-0AA7-4613-96C5-63022D610307}.Release|x86.ActiveCfg = Release|x86
{67D48628-0AA7-4613-96C5-63022D610307}.Release|x86.Build.0 = Release|x86
{67D48628-0AA7-4613-96C5-63022D610307}.Release|x86.Build.0 = Release|x86
{3AA9B489-83C4-4530-8B38-833726D203E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3AA9B489-83C4-4530-8B38-833726D203E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3AA9B489-83C4-4530-8B38-833726D203E7}.Debug|x64.ActiveCfg = Debug|Any CPU
{3AA9B489-83C4-4530-8B38-833726D203E7}.Debug|x64.Build.0 = Debug|Any CPU
{3AA9B489-83C4-4530-8B38-833726D203E7}.Debug|x86.ActiveCfg = Debug|Any CPU
{3AA9B489-83C4-4530-8B38-833726D203E7}.Debug|x86.Build.0 = Debug|Any CPU
{3AA9B489-83C4-4530-8B38-833726D203E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3AA9B489-83C4-4530-8B38-833726D203E7}.Release|Any CPU.Build.0 = Release|Any CPU
{3AA9B489-83C4-4530-8B38-833726D203E7}.Release|x64.ActiveCfg = Release|Any CPU
{3AA9B489-83C4-4530-8B38-833726D203E7}.Release|x64.Build.0 = Release|Any CPU
{3AA9B489-83C4-4530-8B38-833726D203E7}.Release|x86.ActiveCfg = Release|Any CPU
{3AA9B489-83C4-4530-8B38-833726D203E7}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
HideSolutionNode = FALSE
...
...
Tools/Tools.csproj
View file @
02fce21a
...
@@ -563,6 +563,10 @@
...
@@ -563,6 +563,10 @@
<None
Include=
"Resources\使用说明.png"
/>
<None
Include=
"Resources\使用说明.png"
/>
</ItemGroup>
</ItemGroup>
<ItemGroup>
<ItemGroup>
<ProjectReference
Include=
"..\DotNetVersionChecker\DotNetVersionChecker.csproj"
>
<Project>
{3aa9b489-83c4-4530-8b38-833726d203e7}
</Project>
<Name>
DotNetVersionChecker
</Name>
</ProjectReference>
<ProjectReference
Include=
"..\Ftt.PatchPack\Ftt.PatchPack.csproj"
>
<ProjectReference
Include=
"..\Ftt.PatchPack\Ftt.PatchPack.csproj"
>
<Project>
{42e384c1-cc13-494d-90e2-33c399e13f07}
</Project>
<Project>
{42e384c1-cc13-494d-90e2-33c399e13f07}
</Project>
<Name>
Ftt.PatchPack
</Name>
<Name>
Ftt.PatchPack
</Name>
...
...
Tools/UI/wLogViewer.cs
View file @
02fce21a
...
@@ -122,7 +122,9 @@ namespace Tools.UI
...
@@ -122,7 +122,9 @@ namespace Tools.UI
/// </summary>
/// </summary>
private
void
OpenLogFile
()
private
void
OpenLogFile
()
{
{
var
fileName
=
this
.
listBox1
.
SelectedItem
.
ToString
();
var
fileName
=
this
.
listBox1
.
SelectedItem
?.
ToString
();
if
(
string
.
IsNullOrEmpty
(
fileName
))
return
;
var
encode
=
Encoding
.
Default
;
var
encode
=
Encoding
.
Default
;
if
(!
string
.
IsNullOrEmpty
(
this
.
tscbEncoding
.
Text
))
if
(!
string
.
IsNullOrEmpty
(
this
.
tscbEncoding
.
Text
))
encode
=
Encoding
.
GetEncoding
(
this
.
tscbEncoding
.
Text
);
encode
=
Encoding
.
GetEncoding
(
this
.
tscbEncoding
.
Text
);
...
...
Tools/wExtend.cs
View file @
02fce21a
...
@@ -49,6 +49,7 @@ namespace Tools
...
@@ -49,6 +49,7 @@ namespace Tools
this
.
CreateModule
(
Tools_imp
,
typeof
(
UI
.
wEmptyTable
),
"清空表"
,
"tr:输入主表、自动清空关联表的工具"
),
this
.
CreateModule
(
Tools_imp
,
typeof
(
UI
.
wEmptyTable
),
"清空表"
,
"tr:输入主表、自动清空关联表的工具"
),
this
.
CreateModule
(
Tools_imp
,
typeof
(
UI
.
wExcelExportSetting
),
"Excel导出设置"
,
"tr:Excel导出配置图形化版本"
),
this
.
CreateModule
(
Tools_imp
,
typeof
(
UI
.
wExcelExportSetting
),
"Excel导出设置"
,
"tr:Excel导出配置图形化版本"
),
this
.
CreateModule
(
Tools_imp
,
typeof
(
UI
.
wLogViewer
),
"日志查看器"
,
"tr:可以方便的查看系统日志"
),
this
.
CreateModule
(
Tools_imp
,
typeof
(
UI
.
wLogViewer
),
"日志查看器"
,
"tr:可以方便的查看系统日志"
),
this
.
CreateModule
(
Tools_imp
,
typeof
(
DotNetVersionChecker
.
FrmVersion
),
"系统检测"
,
"lxj:检测操作系统运行环境"
),
//-------------------------------
//-------------------------------
this
.
CreateModule
(
Tools_dev
,
typeof
(
Ftt
.
PatchPack
.
FrmMain
),
"自动打包工具"
,
"lxj:用于CS后端程序自动打包成压缩包"
),
this
.
CreateModule
(
Tools_dev
,
typeof
(
Ftt
.
PatchPack
.
FrmMain
),
"自动打包工具"
,
"lxj:用于CS后端程序自动打包成压缩包"
),
this
.
CreateModule
(
Tools_dev
,
typeof
(
UI
.
wSysModule
),
"功能模块管理"
,
"lxj:管理功能模块和代码窗体的映射"
),
this
.
CreateModule
(
Tools_dev
,
typeof
(
UI
.
wSysModule
),
"功能模块管理"
,
"lxj:管理功能模块和代码窗体的映射"
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment