ServiceManagerInstaller.cs
3.1 KB
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
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;
using System.Diagnostics;
using System.IO;
using System.Management;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace App
{
[RunInstaller(true)]
public partial class ServiceManagerInstaller : Installer
{
// 获取硬盘物理序列号
[DllImport("DiskSerialNo.dll")]
private static extern string GetDiskSerialNo();
// 获取网卡序列号
[DllImport("DiskSerialNo.dll")]
private static extern string GetMacAddr();
public ServiceManagerInstaller()
{
// 该调用是设计器所必需的。
InitializeComponent();
}
public override void Install(IDictionary mySavedState)
{
base.Install(mySavedState); // 安装
//try
//{
// GetDiskSerial();
//}
//catch (Exception ex)
//{
// //throw new Exception(ex.Message);
// MessageBox.Show(ex.Message.ToString());
//}
}
#region GetDiskSerial
private void GetDiskSerial()
{
try
{ //安装后弹出校验码的提示文本,以便用户进行注册获取许可证文件//wuxiangrong 2005.10.26
String infos = @"请使用该校验码:" + GetDiskID() + @",到相应的网站上注册,获取许可证文件!";
FileStream fs = new FileStream("ReadMe.txt", FileMode.OpenOrCreate);
StreamWriter sw = new StreamWriter(fs);
sw.Write(infos);
sw.Close();
Process.Start("ReadMe.txt");
//MessageBox.Show("安装结束后请重新启动计算机","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
// xfpan [5/17/2004]
/// <summary>
/// 获取机器唯一标志
/// </summary>
/// <returns>机器唯一标志</returns>
private string GetDiskID()
{
string DiskID = "";
DiskID = GetMAC().Trim();
if (!String.IsNullOrEmpty(DiskID))
{
DiskID = "MA-" + DiskID;
return DiskID;
}
try
{
DiskID = GetDiskSerialNo().Trim();
if (!String.IsNullOrEmpty(DiskID))
{
DiskID = "HD" + DiskID;
return DiskID;
}
}
catch{}
DiskID = GetCPUId();
if (!String.IsNullOrEmpty(DiskID))
{
DiskID = "CP" + DiskID;
return DiskID;
}
return "";
}
private string GetCPUId()
{
String HDid = "";
ManagementClass cimobject = new ManagementClass("Win32_Processor");
try
{
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
HDid = mo["UniqueId"].ToString();
if (!String.IsNullOrEmpty(HDid))
break;
}
}
catch
{
HDid = "";
}
return HDid.Trim();
}
private string GetMAC()
{
string strMac = "";
try
{
strMac = GetMacAddr();
}
catch
{
strMac = "";
}
return strMac.Trim();
}
// xfpan [5/17/2004]
#endregion
}
}