PDA

View Full Version : استفاده از این dll



مهدی رحیم زاده
پنج شنبه 28 تیر 1386, 21:32 عصر
سلام
من می خوام از این dll استفاده کنم ، اما نمیشه ...
نمی دونم چرا ...
اونو Add refrence کردمش ، اما نمی تونم تو برنامه از اون استفاده کنم ...
میشه کمکم کنید و بگید چطوری این کارو بکنم ....

Alireza_Salehi
جمعه 29 تیر 1386, 00:56 صبح
وقتی این DLL رو اضافه کنید یک NameSpace به نام IOEx به پروژه اضافه میشه که شامل 2 کلاس DriveInfoEx و DriveListEx هست که می تونید باهاش کار کنید.

اگر مشکل خاصی هست توضیح بدید!
البته اکثر قابلیت های این DLL در خود دات نت موجوده (System.Management و System.IO)!

hdv212
جمعه 29 تیر 1386, 01:36 صبح
همون طور که arsp_2004 عزیز گفت میتونی ازش استفاده کنی ولی نمیدونم چرا وقتی یه آبجکت از کلاس DriveInfoEx میسازی، دیگه برنامه نمیتونه کامپایل بشه، یعنی ویژوال استودیو error میده، مال شما هم همینطوره ؟

Alireza_Salehi
جمعه 29 تیر 1386, 01:57 صبح
همون طور که arsp_2004 عزیز گفت میتونی ازش استفاده کنی ولی نمیدونم چرا وقتی یه آبجکت از کلاس DriveInfoEx میسازی، دیگه برنامه نمیتونه کامپایل بشه، یعنی ویژوال استودیو error میده، مال شما هم همینطوره ؟

مال من هم این خطا رو میده ، ظاهرا اگر این کتابخانه چیزی پیدا نکنه خطا تولید میکنه ، البته یه جا هم گفته بود این باگه!

مهدی رحیم زاده
جمعه 29 تیر 1386, 09:35 صبح
من از کلاس DrivelistEX استفاده کردم و اطلاعات اونو توی یک datagridview نمایش دادم با این کد :

IOEx.DriveListEx m = new IOEx.DriveListEx();
m.Load();
dataGridView1.DataSource = m;
حالا می خوام که فیلد SerialNumber رو توی یک متغییر ذخیره کنم و یا توی یک textbox نمایش بدم ...
برای این کار باید چکار کنم ...

مهدی رحیم زاده
شنبه 30 تیر 1386, 01:03 صبح
کسی نمی دونه که من باید چکار کنم ...

__H2__
شنبه 30 تیر 1386, 12:10 عصر
سلام

کسی نمی دونه که من باید چکار کنم ...



البته اکثر قابلیت های این DLL در خود دات نت موجوده (System.Management و System.IO)!

دوست عزیز همانطور که کاربر arsp_2004 گفتند اینها جزء قابلیتهای خود دات نت است، برای اطلاعات راجب یک درایو میتوانید از کلاسس داخلی System.IO.DriveInfo استفاده کنید


System.IO.DriveInfo X = new System.IO.DriveInfo("C:\\")
//X.VolumeLabel
//X.DriveType
//X.IsReady
//X.AvailableFreeSpace
...


فقط کافیست سری به فضای نام IO بزنید!

مهدی رحیم زاده
شنبه 30 تیر 1386, 14:29 عصر
من اطلاعات مربوط به یک درایو رو نمی خوام بلکه اطلاعات کل هارد رو می خوام مثل شماره سریال و ...

__H2__
شنبه 30 تیر 1386, 16:58 عصر
سلام

شماره سریال و ...

شماره سریال هارد را یادم نمی آید ....
ولی شماره سریال درایوها را میتوانید با دستورات زیر به دست بیاورید.
C#.Net


using System.Runtime.InteropServices;

[DllImport("Kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true, ExactSpelling = true)]
private static extern int GetVolumeInformationW(string lpRootPathName, string lpVolumeNameBuffer, int nVolumeNameSize, ref int lpVolumeSerialNumber, ref int lpMaximumComponentLength, ref int lpFileSystemFlags, string lpFileSystemNameBuffer, int nFileSystemNameSize);

//...
//...
//...

int sn=0;
int zero = 0;
GetVolumeInformationW("C:\\", null, 0,ref sn,ref zero,ref zero, null, 0);


VB.Net


Public Declare Unicode Function GetVolumeInformationW Lib "Kernel32.dll" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, ByRef lpVolumeSerialNumber As Integer, ByRef lpMaximumComponentLength As Integer, ByRef lpFileSystemFlags As Integer, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Integer) As Integer

'...
'...
'...

Dim sn As Integer
GetVolumeInformationW("C:\", Nothing, 0, sn, 0, 0, Nothing, 0)

سورس VB را هم بیشتر برای این گذاشتم که ترسیدم اشتباه تبدیل کرده باشم.!

مهدی رحیم زاده
شنبه 30 تیر 1386, 19:03 عصر
من شماره سریال یکی از سخت افزار ا رو لازم دارم حالا هر چی که شد ...
اگر کسی بتونه و زحمتش رو برای من بکشه خیلی لطف بزرگی به من کرده ...