应用程序的授权验证以及防止重复打开
License授权加密功能实现
不希望客户免费无限制地使用开发的应用程序。希望应用程序验证当前客户端对应的License是否有效,如果有效再打开应用程序。
实现方法
思路:在程序主窗口打开前让程序首先去验证对应的License文件。

- 首先使用加密工具在项目的运行目录下生成对应的License文件。

2.在项目中引用第三方Dll(License.Library.dll)。使用其提供的LicenceHelper.ValidLicense()。验证当前Dll文件,根据返回值判断验证是否通过。
应用防止重复打开
不希望应用程序能被打开多个,影响正常的处理逻辑。
主要有下面两种思路
- 应用程序打开后,就直接去读一个文件给它加一把写锁,应用程序关闭时再去释放。如果期间有其他程序打开,由于写锁的存在没法正常写文件,说明程序重复打开。
- 使用互斥体
Mutex,程序每次打开都去请求同一个互斥体,显然,只有第一个打开的程序能够收到其响应。
点击查看代码
class Program
{
// 第一个程序
const string name = "aaaa";
private static Mutex m;
static void Main(string[] args)
{
// 本程序是否是 Mutex 的拥有者
bool firstInstance;
m = new Mutex(false,name,out firstInstance);
if (!firstInstance)
{
Console.WriteLine("程序已在运行!按下回车键退出!");
Console.ReadKey();
return;
}
Console.WriteLine("程序已经启动");
Console.WriteLine("按下回车键退出运行");
Console.ReadKey();
m.ReleaseMutex();
m.Close();
return;
}
}

浙公网安备 33010602011771号