-3

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

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

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

但我无法真正理解它。是否有任何函数/代码行可以直接获取用户电脑的名称并检查它是否与我出售的电脑匹配?谢谢 <3

编辑:当我提到用户名时,我指的是这台电脑>属性下的“计算机名”

4

2 回答 2

0

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

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

Environment.MachineName

于 2016-11-01T15:04:38.250 回答
0

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

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

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

于 2016-11-01T15:09:09.000 回答