是做网站编辑还是做平面设计,管理外贸网站模板下载,外贸平台哪个网站好做,泰通建设集团网站【 声明#xff1a;版权所有#xff0c;欢迎转载#xff0c;请勿用于商业用途。 联系信箱#xff1a;feixiaoxing 163.com】 上位机软件如果是和硬件模块搭配开发#xff0c;这个时候大部分上位机基本上都是白送的#xff0c;不会收取相关的费用。但是#xff0c;如果上…【 声明版权所有欢迎转载请勿用于商业用途。 联系信箱feixiaoxing 163.com】 上位机软件如果是和硬件模块搭配开发这个时候大部分上位机基本上都是白送的不会收取相关的费用。但是如果上位机软件是为特定行业、特定项目开发的这个时候上位机收费就是一个必然的选项。已经自己也投入了一定的经历和时间合理的回报肯定是也是对这份劳动最起码的尊重。 不过商业社会是复杂的总有一些人或者公司希望通过低价或者免费的方式得到别人开发的软件作品这种情况下我们就要想办法做出一些措施来保护自己的软件开发成果。目前来说很多方式都可以做到这一点具体哪种比较好大家可以根据自己的情况灵活来选择。 1、试用软件进行功能裁剪 很多时候客户使用部分软件功能这是不可避免的或者说是很正常的一个商业行为。这个时候我们发布出去的软件最好是一个功能简略版或者只开发一部分功能是比较合适的。这样客户后续即使不付费也没有办法使用完整的功能。 2、mac绑定法 有一些场景我们希望软件和特定的pc电脑进行绑定。那么这种情况下可以通过在软件中加入特定信息bind的方法来进行确认和验证常用的方法就是mac地址绑定。不过这种方法客户如果需要更换电脑那么也要先将原来的软件进行mac解绑然后和新的pc进行重新绑定这样是比较合适的。 3、次数设定 次数限定也是比较容易想得到的方法。假设我们软件只能使用100次那么在客户使用101次的时候就要弹出对话告警。当然同样这种方法也有一些弊端比如说用户可能卸载软件后重新安装软件这样可能又有100次试用机会。这就很多软件每次只能使用15天如果自己不想付费只能不停试用是一样的。 4、日期限制 日期限制也是不错的一种方式比如说软件允许使用1年后面的每一年只能付费后才能继续使用这种方式其实也可以的。我们可以写一个c# wpf程序来说明下
Window x:ClassWpfApp.MainWindowxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006xmlns:sysclr-namespace:System;assemblymscorlibxmlns:localclr-namespace:WpfAppmc:IgnorabledTitleMainWindow Height450 Width600GridStackPanelDatePicker x:NameexpirationDatePicker Width200 Height30 Margin10,120,0,0 SelectedDate{x:Static sys:DateTime.Now} /Button ContentCheck Expiration Width200 Height80 ClickCheckExpiration_Click HorizontalAlignmentCenter VerticalAlignmentTop Margin197,50,196.6,0//StackPanel/Grid
/Window首先设计一个界面界面上面有一个周期选择框一个按钮。完了之后继续编写代码
using System;
using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using System.Windows;namespace WpfApp
{/// summary/// MainWindow.xaml 的交互逻辑/// /summarypublic partial class MainWindow : Window{public MainWindow(){InitializeComponent();}private void CheckExpiration_Click(object sender, RoutedEventArgs e){DateTime expirationDate expirationDatePicker.SelectedDate ?? DateTime.MinValue;DateTime currentDate DateTime.Now;if (currentDate expirationDate){MessageBox.Show(软件在有效期内。);}else{MessageBox.Show(软件已过期。);}}}
}代码部分就比较简单首先选择一个时间接着单击按钮。如果选择的时间比当前时间早那说明已经过了有效期反之则含在有效期之内。 5、usb加密法 这种硬件加密其实是最好的它首先对程序进行加密。接着软件起来的时候它会首先检查usb加密u盘有没有插入如果没有插入或者读取的数据不对那么软件就无法正常启动。这种方法其实蛮不错的缺点就是需要额外的硬件以及如果客户环境是虚拟机环境那么可能就无法正常使用这种方法。 目前很多电商平台都有这种usb加密u盘大家可以去测试下。 6、小提示 一般来说对于特定的小范围软件使用日期法或者mac法其实就可以了。只有软件价值很大的时候推荐使用usb加密法。当然不管是哪种方法最好软件后台有一个联网机制坦率来说一旦有了联网机制就算客户能够暂时破解也会很快被后台检测到的。这也是目前很多国内、国际大公司的常规做法。 除了联网机制另外一个需要注意的就是如果有日期或者次数的限制这部分内容需要用aes或者rsa加密一下千万不要变成明文放在程序中不然很容易被work around过去的。