Javad_raouf
دوشنبه 11 فروردین 1393, 12:43 عصر
سلام بعضیا مثل من برای رجیستر نرم افزارشون از سریال هارد استفاده می کنن
مشکلی که پیش میاد اینه که دزد ها می تونن نرم افزار رو روی Virtual Machine نصب کنن و سریال هارد رو دستی وارد نمایند:عصبانی++:
به نظرم راه حل اینه که ما تشخیص بدیم آیا نرم افزار روی Virtual Machine نصب شده؟؟؟ و در این صورت به کاربر خطایی صادر کنیم.
یک سرچی زدم چنین به یک همچین چیزی رسیدم:
این تابع اگر True باشه یعنی کامپیوتر مجازی است:
public bool IsVirtualMachine()
{
try
{
using (var searcher = new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem"))
{
using (var items = searcher.Get())
{
foreach (var item in items)
{
string manufacturer = item["Manufacturer"].ToString().ToLower();
string strModels = item["Model"].ToString().ToLower();
string[] strVirtual = { "microsoft corporation", "vmware", "virtualbox" };
foreach (string x in strVirtual)
if (manufacturer.Contains(x) || strModels.Contains(x))
return true;
}
}
}
}
catch (Exception)
{
MessageBox.Show("کامپیوتر شما مشکل نرم افزاری یا سخت افزاری دارد." + Environment.NewLine + "ممکن است در حین کار اطلاعات از بین برود.", "اخطار", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return false;
}
قبل از استفاده از این کد، از منوی Project، گزینه Add Reference رو زده و System.Managment رو Add کنید.
مشکلی که پیش میاد اینه که دزد ها می تونن نرم افزار رو روی Virtual Machine نصب کنن و سریال هارد رو دستی وارد نمایند:عصبانی++:
به نظرم راه حل اینه که ما تشخیص بدیم آیا نرم افزار روی Virtual Machine نصب شده؟؟؟ و در این صورت به کاربر خطایی صادر کنیم.
یک سرچی زدم چنین به یک همچین چیزی رسیدم:
این تابع اگر True باشه یعنی کامپیوتر مجازی است:
public bool IsVirtualMachine()
{
try
{
using (var searcher = new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem"))
{
using (var items = searcher.Get())
{
foreach (var item in items)
{
string manufacturer = item["Manufacturer"].ToString().ToLower();
string strModels = item["Model"].ToString().ToLower();
string[] strVirtual = { "microsoft corporation", "vmware", "virtualbox" };
foreach (string x in strVirtual)
if (manufacturer.Contains(x) || strModels.Contains(x))
return true;
}
}
}
}
catch (Exception)
{
MessageBox.Show("کامپیوتر شما مشکل نرم افزاری یا سخت افزاری دارد." + Environment.NewLine + "ممکن است در حین کار اطلاعات از بین برود.", "اخطار", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return false;
}
قبل از استفاده از این کد، از منوی Project، گزینه Add Reference رو زده و System.Managment رو Add کنید.