PDA

View Full Version : بدست آوردن سریال نامبرها و سایر مشخصات سخت افزاری سیستم



mansoor_csharp
یک شنبه 26 مهر 1383, 10:11 صبح
سلام
من می خواهم در برنامه ام شماره سریال فلاپی که در داخل درایو قرار دارد را هر چند ثانیه چک کنم ، کسی می دونه چطور با سی شارپ می شه این کار را کرد؟
لطفاً راهنمایی بفرمایید.
متشکرم

Vahid_Nasiri
یک شنبه 26 مهر 1383, 18:19 عصر
با استفاده از تابع GetVolumeInformation مربوط به API ویندوز (چهارمین آرگومان آن ، مقدار شماره سریال فلاپی را بر می گرداند و اولین آرگومان آن نام درایوی است که باید انتخاب شود)

مطهر
یک شنبه 09 مرداد 1384, 00:16 صبح
با سلام
چطور میشه اطلاعاتی از سخت افزار نظیر
شماره سریال هارد
مادر بورد
بایوس
.....
بدست آورد؟
اطلاعاتی از سیستم (نرم افزاری؟)(System Info)
با سپاس

بابک زواری
یک شنبه 09 مرداد 1384, 16:02 عصر
فکر کنم با VB.Net باشه ؛ که به راحتی میتونی تو سی شارپ اجراش کنی

مطهر
یک شنبه 09 مرداد 1384, 20:05 عصر
ممنون
در مورد سخت افزارهای دیگه اطلاعی ندارید؟
فکر کنم شما در قسمت وی بی برنامه ای داشتید که سریالی ترکیبی از سخت افزار می ساخت.
در این زمینه توضیح میدید؟

بابک زواری
یک شنبه 09 مرداد 1384, 22:06 عصر
در همه موارد از Wmi استفاده میشه البته ما در اونجا از دسترسی مستقیم به حافظه استفاده کرده بودیم

once4ever
دوشنبه 06 شهریور 1385, 20:06 عصر
میخوام لیستی از پارتیشنهای موجود سیستم بدست بیارم
مثلا c , d , e , و همینطور اگه وسیله های جانبی مثل cooldisk flashdisk یا memorystick و ... وصل بودند پیدا کنه و لیست کنه!

M.GhanaatPisheh
دوشنبه 06 شهریور 1385, 20:14 عصر
کلید حل این معما در WMI نهفته هست.
Application زیر رو ببینید:
http://rapidshare.de/files/31088011/Framework_-_Using_WMI.rar

once4ever
سه شنبه 07 شهریور 1385, 00:08 صبح
ممنون
انگار خیلی کار داره!

احمد سامعی
چهارشنبه 17 آبان 1385, 00:14 صبح
کلید حل این معما در WMI نهفته هست.
Application زیر رو ببینید:
http://rapidshare.de/files/31088011/Framework_-_Using_WMI.rar

ببخشید استاد من یکم بیسوادم
می شه در دو سه خط توضیح بدید این WMI چیه ؟

و چطوری اطلاعات سخت افزار رو می گیره ؟
آیا یک فایل اطلاعاتی داره ( که با عقل جور در نمی یاد)
آیا قابل اعتماد ( برای ساخت رجیستری) ؟؟؟
در ضمن این لینکتون هم باز نشد

Amir Oveisi
چهارشنبه 17 آبان 1385, 11:35 صبح
WMI (Windows Manegment Instrument) یک Database هست که ویندوز اطلاعات سخت افزاری و نرم افزاری سیستم رو تو اون نگهداری میکنه و اگر اشتباه نکنم بر اساس SQL هستش و میشه با استفاده از System.Manegment و استفاده از Query های SQL اطلاعاتی رو در مورد سخت افزار و نرم افزارهای سیستم بدست آورد
تو MSDN میتونین اطلاعات کاملتری بدست بیارین
موفق باشین

majid325
جمعه 19 آبان 1385, 11:56 صبح
شاید این به دردت بخوره !

For Each drv As DriveInfo In My.Computer.FileSystem.Drives
If drv.IsReady Then
MsgBox(" " & drv.Name & " = " & drv.TotalSize & " " & drv.DriveFormat & " ")

End If
Next
این به زبان vb است اگر خواستی برات به C# هم میزارم.

Amir Oveisi
دوشنبه 22 آبان 1385, 14:31 عصر
بهترین و کاملترین راه با استفاده از WMI هست :

using System;
using System.Management;
using System.Windows.Forms;

namespace WMISample
{
public class MyWMIQuery
{
public static void Main()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_DiskDrive");

foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Win32_DiskDrive instance");
Console.WriteLine("-----------------------------------");
Console.WriteLine("Partitions: {0}", queryObj["Partitions"]);
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}
}
}
}

amirsadeghi
دوشنبه 06 آذر 1385, 15:45 عصر
سلام دوست عزیز این کد در سیستم من جواب نمیدهد
آیا راه دیگری هم هست؟
خیلی ممنون میشم اگه توضیح بدید.

Amir Oveisi
سه شنبه 07 آذر 1385, 13:35 عصر
مشخصات سیستمتون چیه؟

shuriken
چهارشنبه 08 آذر 1385, 11:06 صبح
یه راه دیگه هم هست که بوسیله اون میتونی لیست درایواتو در بیاری . فکر کنم این کد کمکت کنه.

System.Io.Directory.GetLogicalDrive
این کد لیست درایواتو بصورت آرایه String بر میگردونه . البته ممکنه یمقدار ناقص باشه ولی از هیچی بهتره.

مهدی رحیم زاده
دوشنبه 07 خرداد 1386, 15:10 عصر
چطوری می تونم شماره سریال یک هارد دیسک رو بخونم ....

Sorenaa_s
دوشنبه 07 خرداد 1386, 15:45 عصر
این کد کمکت می کنه فکر کنم:




using System;
using System.Collections;
using System.Management;
namespace MyNameSpace
{
class HDDInfo
{
publicstring Model = null;
publicstring Type = null;
publicstring SerialNo = null;
}
publicclass Class1
{
public ArrayList GetHDDInfo(string[] args)
{
ArrayList arHDD = new ArrayList();
System.Management.ManagementObjectSearcher mngOject = new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach(ManagementObject wmi_HD in mngOject.Get())
{
HDDInfo hd = new HDDInfo();
hd.Model = wmi_HD["Model"].ToString();
hd.Type = wmi_HD["InterfaceType"].ToString();
arHDD.Add(hd);
}
mngOject = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
int i = 0;
foreach(ManagementObject wmi_HD in mngOject.Get())
{
HDDInfo hd = (HDDInfo)arHDD[i];

if (wmi_HD["SerialNumber"] == null)
hd.SerialNo = "None";
else
hd.SerialNo = wmi_HD["SerialNumber"].ToString();
++i;
}
return arHDD;
}
}
}

مهدی رحیم زاده
دوشنبه 07 خرداد 1386, 19:37 عصر
میشه در مورد نحوه استفاده از این کد هم یه توضیح برام بزارین ...

kiani.mehdi
سه شنبه 08 خرداد 1386, 00:16 صبح
کدی که sorenaa_s نوشته در واقع یکی از توابع یک مقاله کامل هستش که در سایت codeproject به آدرس
www.codeproject.com (http://www.codeproject.com)
با یک جستجوی ساده میتونید پیداش کنید
اونجا همه چیز را توضیح داده
اگه نتونشتی پیداش کنی بگو تا خودم بگردم و لینکش را برات بذارم
موفق باشید
مهدی کیانی

Sorenaa_s
سه شنبه 08 خرداد 1386, 08:25 صبح
www.codeproject.com/csharp/hard_disk_serialno.asp (http://www.codeproject.com/csharp/hard_disk_serialno.asp)

مهدی رحیم زاده
چهارشنبه 09 خرداد 1386, 06:43 صبح
دوست عزیز من این کدو پیدا کردم ....
http://www.codeproject.com/useritems/DriveInfoEx/DriveInfoEx.zip
اما این سورس اجرا نمیشه ...
ولی exe اون اجرا میشه ...
http://www.codeproject.com/useritems/DriveInfoEx/release.zip
میشه دلیل اجرا نشدن این سورس رو بگین ....

Sorenaa_s
چهارشنبه 09 خرداد 1386, 10:01 صبح
این کد با C++ نوشته شده، احتمالا شما هم مثل من C++ رو نصب نکردید :)

مهدی رحیم زاده
جمعه 11 خرداد 1386, 08:42 صبح
ببینید دوستان عزیز من کدی با C#.net می خوام که بتونه شماره سرال هارد رو به صورت یک رشته بده ...
البته تو یک فرم ویندوزی ...

essa_61
جمعه 11 خرداد 1386, 10:39 صبح
من قبلا از تئی همین سایت search کردم و برنامه ای پیدا کردم که یکی از بچه ها زحمتش رو کشیده بود می تونم امشب این برنامه رو بزارم روی سایت

ضمنا من اون موقع ئنبال قفل کردن برنامه ام بودم می تونید این رو سرچ کنید
امیدوارم کمکی کرده باشم

مهدی رحیم زاده
جمعه 11 خرداد 1386, 16:28 عصر
ممنون می شم اگر که لطف کنید و برام بزاریدش ....

ghafoori
جمعه 11 خرداد 1386, 17:43 عصر
دوست عزیز مثال سایت codeproject اینه اتفاقا مال یک ایرانی است مشخصات همه سخت افزارها را بر می گرداند
8832

مهدی رحیم زاده
شنبه 12 خرداد 1386, 07:11 صبح
سلام خدمت دوست عزیزم ...
باید اول از شما تشکر کنم اما من خودم این کدو پیدا کرده بودم و گفتم من کدی می خوام که فقط یک رشه که حاوی شماره سریال هارد رو برگردونه ، همین ...

Amir Oveisi
دوشنبه 14 خرداد 1386, 01:35 صبح
تو همین تاپیک ها هست بسرچ!

alireza_tavakol
سه شنبه 03 مهر 1386, 01:34 صبح
می بخوام یه برنامه شناسایی قطعات سخت افزاری بنویسم
نمیدونم چطوری تشخیص بدم:
1-چند تا RAM داره این سیستمی که داره برنامه ام روش اجرا میشه
2-هارد دیسک IDE یا SATS
3-یک عدد کارت گرافیک داره یا SLI
4-چند تا هارد دیسک داره
5-چیپست برد اصلی چیه

در ضمن نمی خوام از DLL یا OCX استفاده کنم

MShirzadi
سه شنبه 03 مهر 1386, 03:31 صبح
من یه کلاس دارم کا اطلاعاتی در مورد هارد دیسک میده
اطلاعاتی مثل :
1)تعداد هارد ها
2) نوع هاردها
3)شماره سریال هارد
4)مدل هارد

تنها مشکل اینجاست که به زبان ویژوال بیسیک است
اگه خواستی بگو برات میزارم

hassan razavi
سه شنبه 03 مهر 1386, 09:48 صبح
به لینک زیر یه سری بزنید شاید بکارتون بیاد

http://www.codeproject.com/cs/system/GetHardwareInformation.asp

combo_ci
سه شنبه 03 مهر 1386, 10:05 صبح
یه کار دیگه هم میتونی انجام بدی
با این نرم افزار هایی که سورس .net رو باز میکنن مثل reflector , یکی از نرم افزار هایی که با .net نوشته شده و این کارو انجام میده مثل winxp manager رو باز کن ....راحت میتونی یه همچین کاری انجام بدی !!!
من یه کار اینتوری جوونیام انجام دادم ...اینم برنامش:

behzadk
سه شنبه 03 مهر 1386, 14:58 عصر
از توابع wmi از کلاس win32 و زیر کلاس hardware هم میتونی استفاده کنید

alireza_tavakol
سه شنبه 03 مهر 1386, 16:56 عصر
از توابع wmi از کلاس win32 و زیر کلاس hardware هم میتونی استفاده کنید
با تشکر از توجه جناب عالی
میتونید یه کم بیشتر توضیح بدین یا یک نمونه برنامه واسم بزارین:خجالت:

alireza_tavakol
سه شنبه 03 مهر 1386, 17:03 عصر
یه کار دیگه هم میتونی انجام بدی
با این نرم افزار هایی که سورس .net رو باز میکنن مثل reflector , یکی از نرم افزار هایی که با .net نوشته شده و این کارو انجام میده مثل winxp manager رو باز کن ....راحت میتونی یه همچین کاری انجام بدی !!!
من یه کار اینتوری جوونیام انجام دادم ...اینم برنامش:

لینک دانلود برای برنامه reflector را میتونی بهم بدی:متفکر:

PC2st
سه شنبه 03 مهر 1386, 17:46 عصر
میتونید یه کم بیشتر توضیح بدین یا یک نمونه برنامه واسم بزارین
سومین پست از همین تاپیک، یک نمونه برنامه جامعی رو لینک داده که این نمونه برنامه از WMI استفاده کرده.

bpzone
چهارشنبه 02 آبان 1386, 20:09 عصر
سلام به همگی دوستان
چطوری می تونم شماره سریال CPU و یا Matherboard یک سیستم رو پیدا کنم ؟!؟!؟

hassan razavi
چهارشنبه 02 آبان 1386, 20:12 عصر
یه جستجو کنید کلی جواب توی همین فروم میبینید

smt_414
جمعه 18 آبان 1386, 22:59 عصر
سلام
اون قطعه کدی که برای گرفتن سریال هارد تو این تایپیک قرار دادین
تو ویندوز ویستا جواب نمیده
آیا برای این راه حلی وجود داره؟؟
تشکر

amir_pro
جمعه 23 آذر 1386, 01:05 صبح
چه طور میشه شماره سریال اصلی قطعات را به دست آورد؟ البته قبلا جست جو کردم ولی مطلب جالبی نتونستم پیدا کنم.

sinpin
جمعه 23 آذر 1386, 01:39 صبح
چه طور میشه شماره سریال اصلی قطعات را به دست آورد؟ البته قبلا جست جو کردم ولی مطلب جالبی نتونستم پیدا کنم.

اینکار برای اکثر قطعات ممکن نیست، چون گاهی روی چند سیستم مقدار ثابت برمیگردونن. و تقریبا روی سریال HDD و MAC میشه حساب کرد.
http://barnamenevis.org/forum/showthread.php?t=14958

اما از طرفی هیچکدوم امنیت دلخواه رو ندارند. ببینید :
http://barnamenevis.org/forum/showthread.php?t=72004

mohammad272005
جمعه 23 آذر 1386, 02:58 صبح
یه نگاهی به این سورس بنداز شاید کمک کنه: http://www.wikiupload.com/download_page.php?id=27716
(راستش uploader خوب سراغ نداشتم. تو Live پیداش کردم.)

amir_pro
جمعه 23 آذر 1386, 15:11 عصر
ممنون جناب mohammad272005 از راهنماییتون - ولی من نتونستم از اون سایت دانلود کنم. میشه لینک مستقیم بدید.
با تشکر

Payman62
چهارشنبه 05 دی 1386, 11:45 صبح
سلام.
من میخوام همه مشخصات سخت افزاری سیستم رو بکشم بیرون. از CPU و مادر برد گرفته تا مانیتور و کیبورد و موس.
کلاس managment کمی کارمو راه میندازه ولی همه مشخصات رو نمیده.
HWInfo.ocx این فایل رو هم دارم ولی اینم همه مشخصات رو نمیده.
لطفا راهنمایی کنید.

behzadk
چهارشنبه 05 دی 1386, 12:55 عصر
یه جستجو بکن پیدا می کنی

Payman62
چهارشنبه 05 دی 1386, 16:34 عصر
سلام.
جستجو کردم ولی مشخصات کل سخت افزار ها رو پیدا نکردم. managment و اون کامپوننت رو تو سرچ پیدا کردم.

behzadk
پنج شنبه 06 دی 1386, 10:14 صبح
یه نمونه گذاشتم که pnpdeviceid هارد دیسک رو بدست میاره
در ضمن برای کار با توابع wmi حتما از msdn کمک بگیرید و در انتخاب کلاس ها دقت کنید

behzadk
پنج شنبه 06 دی 1386, 10:17 صبح
در ضمن از کلاس cim_logicaldevice از توابع wmi استفاده کن این کل device ها بدست میده اما باید خودتون تفکیک کنید یا می توانید مثل من دونه دونه از کلاس win32_hardware استفاده کنین

Payman62
پنج شنبه 06 دی 1386, 20:07 عصر
سلام.
لیست کلاس های managment رو چطور به دست بیارم؟ دارمشون ها. ولی اگه نداشتم چطور میشه پیداشون کرد؟

alirzn
جمعه 07 دی 1386, 11:45 صبح
این برنامه تمام مشخصات سخت افزاری و نرم افزاری را بهت میده

Payman62
جمعه 07 دی 1386, 13:25 عصر
سلام.
البته این برنامه که علی آقا گذاشت رو تو همین تاپیک پیدا کرده بودم که که کارمو خیلی راه انداخته بود.
ولی من میخوام بدونم اگه این برنامه رو نداشتم لیست کلاس های managment رو چطور میتونستم پیدا کنم.

Payman62
چهارشنبه 12 دی 1386, 18:26 عصر
سلام.
چطور میتونم مشخصات مانیتور و رم و پاور رو به دست بیارم. تو کلاس managment کلاسی برای این کار ندیدم.

behzadk
چهارشنبه 12 دی 1386, 18:48 عصر
من یه نمونه برنامه می زارم البته از msdn برداشتم و با vb.net است
کل کلاس ها رو میده

Payman62
یک شنبه 16 دی 1386, 00:38 صبح
سلام.
مطمنی مانتیور و رم و پاور جز این کلاس ها هستن؟

siavashr
دوشنبه 15 بهمن 1386, 00:36 صبح
دورود
دوستان برای کنترل کاربران در سیستم مسنجری که دارم مینویسم احتیاج دارم که یک سری اطلاعات در مورد سخت افزار سیستم کاربر بدست بیارم .
اطلاعاتی از قبیل :
IP adress
Mac adress
H.D.D sireal number
, ....
هر چیز دیگه ای هم در مورد سخت افزار بشه بهتر.
میخواستم ببینم از دوستان کسی چیزی میشناسه و یا تجربه ای در این زمینه داشته؟
با سپاس

mohammad272005
دوشنبه 15 بهمن 1386, 00:41 صبح
من برای اینجور کارا همیشه از WMI استفاده می‏کنم. تقریبا همه اونچه رو که میخوام داره. بگو چیا میخوای تا شاید بتونم کمکت کنم.

siavashr
دوشنبه 15 بهمن 1386, 00:54 صبح
دورود
ممنونم از توجهتون .
راستش من فعلا فکر کنم همین لیست بالا کارم رو راه میندازه اما راستش من هیچ آشنائی با WMI ندارم اگر لطف کنید و یه جوری توضیح بدین که من هم بفهمم باقی رو خودم در صورت نیاز پیدا میکنم حتی اگر فقط 1 دونه رو توضیح بدین باقی رو خودم ردیف میکنم.
با سپاس

mohammad272005
دوشنبه 15 بهمن 1386, 01:09 صبح
برای کار با WMI حتما System.Management رو Add Reference کن.
بدست آوردن MAC:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Management;
namespace WMISample
{
public class MyQuerySample : System.Windows.Forms.Form
{
private System.Windows.Forms.Label userNameLabel;
private System.Windows.Forms.TextBox userNameBox;
private System.Windows.Forms.TextBox passwordBox;
private System.Windows.Forms.Label passwordLabel;
private System.Windows.Forms.Button OKButton;
private System.Windows.Forms.Button cancelButton;

private System.ComponentModel.Container components = null;
public MyQuerySample()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
private void InitializeComponent()
{
this.userNameLabel = new System.Windows.Forms.Label();
this.userNameBox = new System.Windows.Forms.TextBox();
this.passwordBox = new System.Windows.Forms.TextBox();
this.passwordLabel = new System.Windows.Forms.Label();
this.OKButton = new System.Windows.Forms.Button();
this.cancelButton = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// userNameLabel
//
this.userNameLabel.Location = new System.Drawing.Point(16, 8);
this.userNameLabel.Name = "userNameLabel";
this.userNameLabel.Size = new System.Drawing.Size(160, 32);
this.userNameLabel.TabIndex = 0;
this.userNameLabel.Text = "Enter the user name for the remote computer:";
//
// userNameBox
//
this.userNameBox.Location = new System.Drawing.Point(160, 16);
this.userNameBox.Name = "userNameBox";
this.userNameBox.Size = new System.Drawing.Size(192, 20);
this.userNameBox.TabIndex = 1;
this.userNameBox.Text = "";
//
// passwordBox
//
this.passwordBox.Location = new System.Drawing.Point(160, 48);
this.passwordBox.Name = "passwordBox";
this.passwordBox.PasswordChar = '*';
this.passwordBox.Size = new System.Drawing.Size(192, 20);
this.passwordBox.TabIndex = 3;
this.passwordBox.Text = "";
//
// passwordLabel
//
this.passwordLabel.Location = new System.Drawing.Point(16, 48);
this.passwordLabel.Name = "passwordLabel";
this.passwordLabel.Size = new System.Drawing.Size(160, 32);
this.passwordLabel.TabIndex = 2;
this.passwordLabel.Text = "Enter the password for the remote computer:";
//
// OKButton
//
this.OKButton.Location = new System.Drawing.Point(40, 88);
this.OKButton.Name = "OKButton";
this.OKButton.Size = new System.Drawing.Size(128, 23);
this.OKButton.TabIndex = 4;
this.OKButton.Text = "OK";
this.OKButton.Click += new System.EventHandler(this.OKButton_Click);
//
// cancelButton
//
this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.cancelButton.Location = new System.Drawing.Point(200, 88);
this.cancelButton.Name = "cancelButton";
this.cancelButton.Size = new System.Drawing.Size(128, 23);
this.cancelButton.TabIndex = 5;
this.cancelButton.Text = "Cancel";
this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click);
//
// MyQuerySample
//
this.AcceptButton = this.OKButton;
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.CancelButton = this.cancelButton;
this.ClientSize = new System.Drawing.Size(368, 130);
this.ControlBox = false;
this.Controls.Add(this.cancelButton);
this.Controls.Add(this.OKButton);
this.Controls.Add(this.passwordBox);
this.Controls.Add(this.passwordLabel);
this.Controls.Add(this.userNameBox);
this.Controls.Add(this.userNameLabel);
this.Name = "MyQuerySample";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScree n;
this.Text = "Remote Connection";
this.ResumeLayout(false);
}
[STAThread]
static void Main()
{
Application.Run(new MyQuerySample());
}
private void OKButton_Click(object sender, System.EventArgs e)
{
try
{
ConnectionOptions connection = new ConnectionOptions();
connection.Username = userNameBox.Text;
connection.Password = passwordBox.Text;
connection.Authority = "ntlmdomain:DomainName";
ManagementScope scope = new ManagementScope(
"\\\\ClientName\\root\\CIMV2", connection);
scope.Connect();
ObjectQuery query= new ObjectQuery(
"SELECT * FROM Win32_NetworkAdapter");
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(scope, query);
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Win32_NetworkAdapter instance");
Console.WriteLine("-----------------------------------");
Console.WriteLine("MACAddress: {0}", queryObj["MACAddress"]);
}
Close();
}
catch(ManagementException err)
{
MessageBox.Show("An error occurred while querying for WMI data: " + err.Message);
}
catch(System.UnauthorizedAccessException unauthorizedErr)
{
MessageBox.Show("Connection error (user name or password might be incorrect): " + unauthorizedErr.Message);
}
}
private void cancelButton_Click(object sender, System.EventArgs e)
{
Close();
}
}
}

mohammad272005
دوشنبه 15 بهمن 1386, 01:14 صبح
IP:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Management;
namespace WMISample
{
public class MyQuerySample : System.Windows.Forms.Form
{
private System.Windows.Forms.Label userNameLabel;
private System.Windows.Forms.TextBox userNameBox;
private System.Windows.Forms.TextBox passwordBox;
private System.Windows.Forms.Label passwordLabel;
private System.Windows.Forms.Button OKButton;
private System.Windows.Forms.Button cancelButton;

private System.ComponentModel.Container components = null;
public MyQuerySample()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
private void InitializeComponent()
{
this.userNameLabel = new System.Windows.Forms.Label();
this.userNameBox = new System.Windows.Forms.TextBox();
this.passwordBox = new System.Windows.Forms.TextBox();
this.passwordLabel = new System.Windows.Forms.Label();
this.OKButton = new System.Windows.Forms.Button();
this.cancelButton = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// userNameLabel
//
this.userNameLabel.Location = new System.Drawing.Point(16, 8);
this.userNameLabel.Name = "userNameLabel";
this.userNameLabel.Size = new System.Drawing.Size(160, 32);
this.userNameLabel.TabIndex = 0;
this.userNameLabel.Text = "Enter the user name for the remote computer:";
//
// userNameBox
//
this.userNameBox.Location = new System.Drawing.Point(160, 16);
this.userNameBox.Name = "userNameBox";
this.userNameBox.Size = new System.Drawing.Size(192, 20);
this.userNameBox.TabIndex = 1;
this.userNameBox.Text = "";
//
// passwordBox
//
this.passwordBox.Location = new System.Drawing.Point(160, 48);
this.passwordBox.Name = "passwordBox";
this.passwordBox.PasswordChar = '*';
this.passwordBox.Size = new System.Drawing.Size(192, 20);
this.passwordBox.TabIndex = 3;
this.passwordBox.Text = "";
//
// passwordLabel
//
this.passwordLabel.Location = new System.Drawing.Point(16, 48);
this.passwordLabel.Name = "passwordLabel";
this.passwordLabel.Size = new System.Drawing.Size(160, 32);
this.passwordLabel.TabIndex = 2;
this.passwordLabel.Text = "Enter the password for the remote computer:";
//
// OKButton
//
this.OKButton.Location = new System.Drawing.Point(40, 88);
this.OKButton.Name = "OKButton";
this.OKButton.Size = new System.Drawing.Size(128, 23);
this.OKButton.TabIndex = 4;
this.OKButton.Text = "OK";
this.OKButton.Click += new System.EventHandler(this.OKButton_Click);
//
// cancelButton
//
this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.cancelButton.Location = new System.Drawing.Point(200, 88);
this.cancelButton.Name = "cancelButton";
this.cancelButton.Size = new System.Drawing.Size(128, 23);
this.cancelButton.TabIndex = 5;
this.cancelButton.Text = "Cancel";
this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click);
//
// MyQuerySample
//
this.AcceptButton = this.OKButton;
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.CancelButton = this.cancelButton;
this.ClientSize = new System.Drawing.Size(368, 130);
this.ControlBox = false;
this.Controls.Add(this.cancelButton);
this.Controls.Add(this.OKButton);
this.Controls.Add(this.passwordBox);
this.Controls.Add(this.passwordLabel);
this.Controls.Add(this.userNameBox);
this.Controls.Add(this.userNameLabel);
this.Name = "MyQuerySample";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScree n;
this.Text = "Remote Connection";
this.ResumeLayout(false);
}
[STAThread]
static void Main()
{
Application.Run(new MyQuerySample());
}
private void OKButton_Click(object sender, System.EventArgs e)
{
try
{
ConnectionOptions connection = new ConnectionOptions();
connection.Username = userNameBox.Text;
connection.Password = passwordBox.Text;
connection.Authority = "ntlmdomain:DomainName";
ManagementScope scope = new ManagementScope(
"\\\\ClientName\\root\\CIMV2", connection);
scope.Connect();
ObjectQuery query= new ObjectQuery(
"SELECT * FROM Win32_NetworkAdapter");
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(scope, query);
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Win32_NetworkAdapter instance");
Console.WriteLine("-----------------------------------");
if(queryObj["NetworkAddresses"] == null)
Console.WriteLine("NetworkAddresses: {0}", queryObj["NetworkAddresses"]);
else
{
String[] arrNetworkAddresses = (String[])(queryObj["NetworkAddresses"]);
foreach (String arrValue in arrNetworkAddresses)
{
Console.WriteLine("NetworkAddresses: {0}", arrValue);
}
}
}
Close();
}
catch(ManagementException err)
{
MessageBox.Show("An error occurred while querying for WMI data: " + err.Message);
}
catch(System.UnauthorizedAccessException unauthorizedErr)
{
MessageBox.Show("Connection error (user name or password might be incorrect): " + unauthorizedErr.Message);
}
}
private void cancelButton_Click(object sender, System.EventArgs e)
{
Close();
}
}
}

siavashr
دوشنبه 15 بهمن 1386, 02:28 صبح
دورود
ممنون و سپاسگذارم با اجازه من اینها را مطالعه کنم ببینم چیزی میفهمم ازشون یا خیر.
با سپاس

siavashr
جمعه 19 بهمن 1386, 17:32 عصر
دورود
دوست عزیز من mac را تست کردم اما متاسفانه به 3 تا erorr بر خوردم به شرح زیر :


Error 1 'WMISample.Form1.Dispose(bool)': no suitable method found to override

Error 2 Program 'C:\Users\ُُُُsia\Documents\Visual Studio 2005\Projects\Main\Main\obj\Debug\Main.exe' has more than one entry point defined: 'WMISample.MyQuerySample.Main()'


Error 3 Program 'C:\Users\ُُُُsia\Documents\Visual Studio 2005\Projects\Main\Main\obj\Debug\Main.exe' has more than one entry point defined: 'WMISample.MyQuerySample.Main()'


ممنون میشم 1 توضیحی در این مورد بدین
با سپاس

H2K
دوشنبه 22 بهمن 1386, 16:43 عصر
سلام دوست عزیز
من قبلا این کار رو با WMI کردم این کد برای گرفتن مک آدرس است .
امیدوارم که به کارتون بیاد .



publicstring FindMACAddress()
{
ManagementClass mgmt = newManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection objCol = mgmt.GetInstances();
string address = String.Empty;
foreach (ManagementObject obj in objCol)
{
if (address == String.Empty)
{
if ((bool)obj["IPEnabled"] == true) address = obj["MacAddress"].ToString();
}

obj.Dispose();
}
address = address.Replace(":", "");
return address;
}
privatevoid button1_Click(object sender, EventArgs e)
{
string macmac = FindMACAddress();
MessageBox.Show(macmac);
}



البته میدونید که باید using System.Management را نیز به پروژه خودتون اضافه کنید.

موفق باشید

siavashr
دوشنبه 22 بهمن 1386, 17:29 عصر
دورود
آقا دست شما درد نکنه واقعا ممنون دقیقا همون چیزی بود که میخواستم الان دارم روی این کار میکنم که شاید بتونم سریال هارد دیسک و cpu و شاید شماره سریال ویندوز رو از این طریق بدست بیارم .
باز هم ممنون اگر تونستم حتما اینجا میزارم که دوستان دیگه هم استفاده کنند.
با سپاس

H2K
دوشنبه 22 بهمن 1386, 19:05 عصر
دورود
آقا دست شما درد نکنه واقعا ممنون دقیقا همون چیزی بود که میخواستم الان دارم روی این کار میکنم که شاید بتونم سریال هارد دیسک و cpu و شاید شماره سریال ویندوز رو از این طریق بدست بیارم .
باز هم ممنون اگر تونستم حتما اینجا میزارم که دوستان دیگه هم استفاده کنند.
با سپاس


خواهش میکنم ، خوش حالم که به کارتان آمد آخه اینجورى چیزا با serch زیاد درست در نمیاد،و کمى مشکلِ پیدا کردنش.:لبخندساده:

Emad499
شنبه 04 اسفند 1386, 17:20 عصر
قبلا این سئوال رو پرسیدم گفتن جوابش هست ولی هر چی گشتم پیدا نکردم.

شماره سریال CPU رو میخوام برای کد گزاری روی برنامه برای هر کامپیوتر.

Amir Oveisi
شنبه 04 اسفند 1386, 18:24 عصر
http://barnamenevis.org/forum/showthread.php?t=62145&highlight=%D8%B3%D8%B1%DB%8C%D8%A7%D9%84+%D9%87%D8 %A7%D8%B1%D8%AF

Blackk_lightt
سه شنبه 13 فروردین 1387, 16:53 عصر
سلام.
من چه جوری سریال هاردو به دست بیارم ؟
این درسته که سریال هارد یه سریاله یکتاست ؟:متفکر:

مهدی رحیم زاده
سه شنبه 13 فروردین 1387, 21:20 عصر
دوست عزیزم سلام
یه جست و جوی ساده انجام بدین در این باره خیلی توی سایت بحث شده .
من نمونه برانمه برای بدست آوردن شماره سریال CPU رو دارم خواستید بگید که براتون بزارمش .
موفق باشید .

gdevnb
سه شنبه 13 فروردین 1387, 21:27 عصر
دریافت سریال هارد دیسک در شرایط مختلف (http://barnamenevis.org/forum/showthread.php?t=92348&highlight=%D8%B3%D8%B1%DB%8C%D8%A7%D9%84+%D9%87%D8 %A7%D8%B1%D8%AF.)

Amir Oveisi
سه شنبه 13 فروردین 1387, 23:44 عصر
من نمونه برانمه برای بدست آوردن شماره سریال CPU رو دارم خواستید بگید که براتون بزارمش .

دوست عزیز لطفا اگر برنامه ای رو دارید بذارید تا از سوال و جوابهای بیشتر جلوگیری بشه (نیکی و پرسش؟)


دریافت سریال هارد دیسک در شرایط مختلف
دوست عزیز اینجا فروم #C هست و تا زمانی که جواب پرسشی به زبان #C موجوده چرا با جواب دادن به زبانهای دیگه موجب سردرگمی و بی نظمی بشیم؟؟!!

اینم جواب سوال دوستمون به زبان سلیس و شیوای #C :
http://barnamenevis.org/forum/showpost.php?p=445039&postcount=4

موفق باشین

ARA
شنبه 17 فروردین 1387, 09:59 صبح
string gethddserial()
{
string hds = "";
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");

ManagementObjectCollection HardDiskCollection = searcher.Get();
//for (int i = 0; i < HardDiskCollection.Count; i++)
//listBox1.Items.Add(HardDiskCollection.ToString());
foreach (ManagementObject wmi_HD in HardDiskCollection)
{
//listBox1.Items.Add(wmi_HD.ToString());
listBox1.Items.Add(wmi_HD.Options.Context.ToString ());
if (wmi_HD["SerialNumber"] != null)
{
hds = wmi_HD["SerialNumber"].ToString();
break;
}
}
return hds;
}


از سایت http://irankamputer.blogfa.com/cat-34.aspx

ar.shirazi
شنبه 17 فروردین 1387, 14:44 عصر
کلیه اطلاعات سخت افزاری سیستم را میتوانید از اینجا بدست آورید

http://www.codeproject.com/KB/system/GetHardwareInformation.aspx

mahdiazadbar
دوشنبه 03 آبان 1389, 13:33 عصر
سلام یه مشکل کوچیک
من میخواستم اسم پورت و سرعت پرت رو دربیارم با WMI چطور می تونم؟