如何制作 C# 可执行文件 PC 专用
How to make C# executable file PC Specific
我正在制作一个普通的 c# 程序并希望它不可共享。我想解决这个问题的方法是,我听说过可以定位并找到用户电脑名称的代码。我有我朋友电脑的名字,希望只有他运行的时候才工作。
我分发它的人不可避免地会尝试以另一个价格复制和共享它,但我想每次都为他们制作一个特定的程序,只指定我的买家的桌面用户名。
经过一些研究,我已经链接到这里:
https://msdn.microsoft.com/en-us/library/aa394554(v=vs.85).aspx
但我真的无法理解它。有没有 function/line 的代码直接获取用户电脑的名称并检查它是否与我卖给的电脑相匹配?谢谢 <3
Edit: When I am referring to the username, I am talking about the "Computer Name" under This PC > properties
您可以使用以下方式轻松验证计算机名称:
if(Environment.MachineName != "ComputerName")
{
Environment.Exit(-1);
}
您可以使用带有 Environment.MachineName 的计算机名称。
问题在于任何具有相同计算机名称的人都可以 运行 该程序。
用于唯一标识机器的一种方法是获取网卡 MAC 地址:
var macAddr =
NetworkInterface.GetAllNetworkInterfaces()
.Where(nic => nic.OperationalStatus == OperationalStatus.Up)
.Select(nic => nic.GetPhysicalAddress().ToString())
.FirstOrDefault();
您还应该对没有 NIC 的可能性采取故障保护措施。
我正在制作一个普通的 c# 程序并希望它不可共享。我想解决这个问题的方法是,我听说过可以定位并找到用户电脑名称的代码。我有我朋友电脑的名字,希望只有他运行的时候才工作。
我分发它的人不可避免地会尝试以另一个价格复制和共享它,但我想每次都为他们制作一个特定的程序,只指定我的买家的桌面用户名。
经过一些研究,我已经链接到这里: https://msdn.microsoft.com/en-us/library/aa394554(v=vs.85).aspx
但我真的无法理解它。有没有 function/line 的代码直接获取用户电脑的名称并检查它是否与我卖给的电脑相匹配?谢谢 <3
Edit: When I am referring to the username, I am talking about the "Computer Name" under This PC > properties
您可以使用以下方式轻松验证计算机名称:
if(Environment.MachineName != "ComputerName")
{
Environment.Exit(-1);
}
您可以使用带有 Environment.MachineName 的计算机名称。 问题在于任何具有相同计算机名称的人都可以 运行 该程序。 用于唯一标识机器的一种方法是获取网卡 MAC 地址:
var macAddr =
NetworkInterface.GetAllNetworkInterfaces()
.Where(nic => nic.OperationalStatus == OperationalStatus.Up)
.Select(nic => nic.GetPhysicalAddress().ToString())
.FirstOrDefault();
您还应该对没有 NIC 的可能性采取故障保护措施。