如何使c#可执行文件PC专用



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

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

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

但是我真的搞不懂。是否有任何函数/代码行直接获得用户pc的名称并检查它是否与我出售给的pc相匹配?谢谢& lt; 3

编辑:当我指的是用户名时,我指的是这台PC>属性

下的"计算机名"

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

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

环境。MachineName

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

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

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

最新更新