-
C#教程之C#获取程序文件相关信息的方法
本文实例讲述了C#获取程序文件相关信息的方法,分享给大家供大家参考。
具体实现方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
using System.Reflection; using System.Runtime.CompilerServices; // // 有关程序集的常规信息是通过下列 // 属性集控制的。更改这些属性值可修改与程序集 // 关联的信息。 // [assembly: AssemblyTitle( "" )] [assembly: AssemblyDescription( "" )] [assembly: AssemblyConfiguration( "" )] [assembly: AssemblyCompany( "" )] [assembly: AssemblyProduct( "" )] [assembly: AssemblyCopyright( "" )] [assembly: AssemblyTrademark( "" )] [assembly: AssemblyCulture( "" )] // // 程序集的版本信息由下列 4 个值组成: // // 主版本 // 次版本 // 内部版本号 // 修订号 // // 您可以指定所有这些值,也可以使用“修订号”和“内部版本号”的默认值,方法是按 // 如下所示使用 '*': [assembly: AssemblyVersion( "1.0.*" )] // // 要对程序集进行签名,必须指定要使用的密钥。有关程序集签名的更多信息,请参考 // Microsoft .NET Framework 文档。 // // 使用下面的属性控制用于签名的密钥。 // // 注意: // (*) 如果未指定密钥,则程序集不会被签名。 // (*) KeyName 是指已经安装在计算机上的 // 加密服务提供程序(CSP)中的密钥。KeyFile 是指包含 // 密钥的文件。 // (*) 如果 KeyFile 和 KeyName 值都已指定,则 // 发生下列处理: // (1) 如果在 CSP 中可以找到 KeyName,则使用该密钥。 // (2) 如果 KeyName 不存在而 KeyFile 存在,则 // KeyFile 中的密钥安装到 CSP 中并且使用该密钥。 // (*) 要创建 KeyFile,可以使用 sn.exe(强名称)实用工具。 // 在指定 KeyFile 时,KeyFile 的位置应该相对于 // 项目输出目录,即 // %Project Directory%obj<configuration>。例如,如果 KeyFile 位于 // 该项目目录,应将 AssemblyKeyFile // 属性指定为 [assembly: AssemblyKeyFile("..\..\mykey.snk")] // (*) “延迟签名”是一个高级选项 - 有关它的更多信息,请参阅 Microsoft .NET Framework // 文档。 // [assembly: AssemblyDelaySign( false )] [assembly: AssemblyKeyFile( "" )] [assembly: AssemblyKeyName( "" )] |
forms1.frm文件这里是核心程序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
|
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.IO; using System.Diagnostics; namespace MyFile { /// <summary> /// Form1 的摘要说明。 /// </summary> public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Button button1; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.OpenFileDialog openFileDialog1; private System.Windows.Forms.Button button2; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label5; private System.Windows.Forms.Label label6; private System.Windows.Forms.Button button3; /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.Container components = null ; public Form1() { // // Windows 窗体设计器支持所必需的 // InitializeComponent(); // // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 // } /// <summary> /// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) { if ( disposing ) { if (components != null ) { components.Dispose(); } } base .Dispose( disposing ); } #region Windows 窗体设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this .button1 = new System.Windows.Forms.Button(); this .textBox1 = new System.Windows.Forms.TextBox(); this .groupBox1 = new System.Windows.Forms.GroupBox(); this .openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); this .button2 = new System.Windows.Forms.Button(); this .label1 = new System.Windows.Forms.Label(); this .label2 = new System.Windows.Forms.Label(); this .label3 = new System.Windows.Forms.Label(); this .label4 = new System.Windows.Forms.Label(); this .label5 = new System.Windows.Forms.Label(); this .label6 = new System.Windows.Forms.Label(); this .button3 = new System.Windows.Forms.Button(); this .groupBox1.SuspendLayout(); this .SuspendLayout(); // // button1 // this .button1.Location = new System.Drawing.Point(8, 192); this .button1.Name = "button1" ; this .button1.Size = new System.Drawing.Size(112, 23); this .button1.TabIndex = 1; this .button1.Text = "浏览程序文件" ; this .button1.Click += new System.EventHandler( this .button1_Click); // // textBox1 // this .textBox1.BackColor = System.Drawing.SystemColors.Control; this .textBox1.Location = new System.Drawing.Point(104, 8); this .textBox1.Name = "textBox1" ; this .textBox1.ReadOnly = true ; this .textBox1.Size = new System.Drawing.Size(256, 21); this .textBox1.TabIndex = 2; this .textBox1.Text = "" ; // // groupBox1 // this .groupBox1.Controls.Add( this .label5); this .groupBox1.Controls.Add( this .label4); thi(www.jb51.net)s.groupBox1.Controls.Add( this .label3); this .groupBox1.Controls.Add( this .label2); this .groupBox1.Controls.Add( this .label1); this .groupBox1.Location = new System.Drawing.Point(8, 40); this .groupBox1.Name = "groupBox1" ; this .groupBox1.Size = new System.Drawing.Size(352, 144); this .groupBox1.TabIndex = 3; this .groupBox1.TabStop = false ; this .groupBox1.Text = "程序文件信息" ; // // openFileDialog1 // this .openFileDialog1.Filter = "程序文件(*.exe)|*.exe|All files (*.*)|*.*" ; // // button2 // this .button2.Location = new System.Drawing.Point(120, 192); this .button2.Name = "button2" ; this .button2.Size = new System.Drawing.Size(112, 23); this .button2.TabIndex = 11; this .button2.Text = "获取程序文件信息" ; this .button2.Click += new System.EventHandler( this .button2_Click); // // label1 // this .label1.Location = new System.Drawing.Point(16, 24); this .label1.Name = "label1" ; this .label1.Size = new System.Drawing.Size(320, 16); this .label1.TabIndex = 0; this .label1.Text = "公司名称:" ; // // label2 // this .label2.Location = new System.Drawing.Point(16, 48); this .label2.Name = "label2" ; this .label2.Size = new System.Drawing.Size(320, 16); this .label2.TabIndex = 1; this .label2.Text = "产品名称:" ; // // label3 // this .label3.Location = new System.Drawing.Point(16, 72); this .label3.Name = "label3" ; this .label3.Size = new System.Drawing.Size(320, 16); this .label3.TabIndex = 2; this .label3.Text = "语言标志:" ; // // label4 // this .label4.Location = new System.Drawing.Point(16, 96); this .label4.Name = "label4" ; this .label4.Size = new System.Drawing.Size(320, 16); this .label4.TabIndex = 3; this .label4.Text = "版本号:" ; // // label5 // this .label5.Location = new System.Drawing.Point(16, 120); this .label5.Name = "label5" ; this .label5.Size = new System.Drawing.Size(320, 16); this .label5.TabIndex = 4; this .label5.Text = "版权声明:" ; // // label6 // this .label6.Location = new System.Drawing.Point(8, 16); this .label6.Name = "label6" ; this .label6.Size = new System.Drawing.Size(96, 16); this .label6.TabIndex = 12; this .label6.Text = "程序文件名称:" ; // // button3 // this .button3.Location = new System.Drawing.Point(232, 192); this .button3.Name = "button3" ; this .button3.Size = new System.Drawing.Size(128, 23); this .button3.TabIndex = 13; this .button3.Text = "获取本程序文件信息" ; this .button3.Click += new System.EventHandler( this .button3_Click); // // Form1 // this .AutoScaleBaseSize = new System.Drawing.Size(6, 14); this .ClientSize = new System.Drawing.Size(368, 222); this .Controls.Add( this .button3); this .Controls.Add( this .label6); this .Controls.Add( this .groupBox1); this .Controls.Add( this .textBox1); this .Controls.Add( this .button1); this .Controls.Add( this .button2); this .MaximizeBox = false ; this .Name = "Form1" ; this .StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this .Text = "演示获取程序文件信息" ; this .groupBox1.ResumeLayout( false ); this .ResumeLayout( false ); } #endregion /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.Run( new Form1()); } private void button1_Click( object sender, System.EventArgs e) { //浏览程序文件 if ( this .openFileDialog1.ShowDialog()==DialogResult.OK) { this .textBox1.Text= this .openFileDialog1.FileName; } } private void button2_Click( object sender, System.EventArgs e) { //获取程序文件信息 string MyFileName= this .textBox1.Text; if (MyFileName.Length<1) return ; string ShortName=MyFileName.Substring(MyFileName.LastIndexOf("\")+1); this .groupBox1.Text=ShortName+ "程序文件信息" ; FileVersionInfo MyInfo=FileVersionInfo.GetVersionInfo(MyFileName); this .label1.Text= "公司名称:" +MyInfo.CompanyName; this .label2.Text= "产品名称:" +MyInfo.ProductName; this .label3.Text= "语言标志:" +MyInfo.Language; this .label4.Text= "版本号:" +MyInfo.FileVersion; this .label5.Text= "版权声明:" +MyInfo.LegalCopyright; } private void button3_Click( object sender, System.EventArgs e) { //获取当前程序文件信息 this .groupBox1.Text= "显示本程序文件信息" ; this .label1.Text= "公司名称:" +Application.CompanyName; this .label2.Text= "区域信息:" +Application.CurrentCulture; this .label3.Text= "语言标志:" +Application.CurrentInputLanguage; this .label4.Text= "产品名称:" +Application.ProductName; this .label5.Text= "产品版本:" +Application.ProductVersion; } } } |
希望本文所述对大家的C#程序设计有所帮助。
栏目列表
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比