Итак, я написал этот быстрый пример, чтобы проверить, каково это сохранение данных в настройках приложения, но кажется, что существуют некоторые проблемы с сохранением реальных данных, потому что когда я отлаживаю их и запускаю на своем ПК, они сохраняют данные и он действует как следует, но если я отправляю EXE своему другу после того, как уже выполнил его (то есть, в нем уже должна быть строка, сохраненная в настройках), он действует так, как будто там ничего нет, и сразу переходит к Lock
Почему он так себя ведет? Нужно ли мне отправить с ним какой-нибудь конфигурационный файл?
if (HWID.HasKey())
{
if (HWID.CompareKey())
{
InitializeComponent();
return;
}
MessageBox.Show("Sorry, you're not authorized to use this app.");
Close();
return;
}
MessageBox.Show("Software has been registered.");
HWID.Lock();
И HWID класс
class HWID
{
public static bool HasKey()
{
if (!String.IsNullOrEmpty(Settings.Default.ID))
{
return true;
}
return false;
}
public static void Lock()
{
if (String.IsNullOrEmpty(Settings.Default.ID))
{
ManagementClass managClass = new ManagementClass("win32_processor");
ManagementObjectCollection managCollec = managClass.GetInstances();
foreach (ManagementObject managObj in managCollec)
{
var cpuInfo = managObj.Properties["processorID"].Value.ToString();
Settings.Default.ID = cpuInfo;
Settings.Default.Save();
Settings.Default.Reload();
break;
}
}
}
public static bool CompareKey()
{
var managClass = new ManagementClass("win32_processor");
var managCollec = managClass.GetInstances();
foreach (var managObj in managCollec)
{
var cpuInfo = managObj.Properties["processorID"].Value.ToString();
if (cpuInfo == Settings.Default.ID)
{
return true;
}
}
return false;
}
}