如何制作C#可执行文件PC特定

时间:2016-11-01 15:01:24

标签: c# computer-name

我正在制作一个普通的c#程序,希望它不可共享。我想要解决的方法是,我听说过可以定位并找到用户个人电脑名称的代码。我有我朋友的PC的名字,并希望在他运行它时只能工作。

我分发它的人将不可避免地尝试以另一种价格复制和共享它,但我想每次只指定买方的桌面用户名时为它们制作一个特定的程序。

经过一些研究,我已经联系到这里: https://msdn.microsoft.com/en-us/library/aa394554(v=vs.85).aspx

但我无法理解它。是否有任何函数/代码行直接得到用户的电脑的名称,并检查它是否与我卖的电脑相匹配?谢谢< 3

  

编辑:当我提到用户名时,我说的是这台电脑下的“电脑名称”>特性

2 个答案:

答案 0 :(得分:0)

您可以使用以下方法轻松验证计算机名称:

if(Environment.MachineName != "ComputerName")
{
    Environment.Exit(-1);
}

Environment.MachineName

答案 1 :(得分:0)

您可以将计算机名称与Environment.MachineName一起使用。 问题是具有相同计算机名称的任何人都可以运行该程序。 用于唯一标识计算机的一种方法是获取网卡MAC地址:

var macAddr = 
    NetworkInterface.GetAllNetworkInterfaces()
    .Where(nic => nic.OperationalStatus == OperationalStatus.Up)
    .Select(nic => nic.GetPhysicalAddress().ToString())
    .FirstOrDefault();

您还应该对没有NIC的可能性进行故障保护。