PDA

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



M.KH-SH
چهارشنبه 06 مهر 1390, 14:58 عصر
سلام
میخواستم یک کلاس تعریف کنم که مثلا فلش مموری به کامپیوتر وصل شد بهم خبر بده و هروقت هم جدا شد بهم خبر بده.
برای این کار میشه از تایمر تو برنامه استفاده کرد اما نمی خوام از تایمر استفاده کنم.
دوستان اگه اطلاعاتی در این باره دارن ممنون میشم که کمک کنن مرسی.

omid-vbAuto
چهارشنبه 06 مهر 1390, 15:32 عصر
سلام
میخواستم یک کلاس تعریف کنم که مثلا فلش مموری به کامپیوتر وصل شد بهم خبر بده و هروقت هم جدا شد بهم خبر بده.
برای این کار میشه از تایمر تو برنامه استفاده کرد اما نمی خوام از تایمر استفاده کنم.
دوستان اگه اطلاعاتی در این باره دارن ممنون میشم که کمک کنن مرسی.


باید از رخداد ها استفاده کنی.مثلا رخداد تغییر تعداد درایو ها. ولی ریزشو نمی دونم.

M.KH-SH
چهارشنبه 06 مهر 1390, 15:50 عصر
میشه از win32_diskdrive استفاده کرد که بهم خبر بده ولی این روش رو باید بر روی یک دکمه یا لود و... نوشت
ولی میخوام به صورت آنلاین آماده باشه که هم اتصال برقرار شد (هر مقدار) بهم خبر بده و بگه چند تعداد و با چه نام هایی اتصال دارن و به هنگام کشیده شدن فلش ها هم بهم خبر بده.
نمی خوام از تایمر استفاده کنم چون به فلش آسیب میزنه

ArashRoshan
جمعه 08 مهر 1390, 13:32 عصر
با سلام
باید از WM_DriveChange استفاده کنی . ولی راستش به همین راحتی هم نیست (البته به نظر من) :لبخندساده: !!!
ولی جواب سوالت توی این سایته :
http://www.codeproject.com/KB/system/DriveDetector.aspx

بازم البته زبانش #C هستش و باید خودت زحمت تبدیلش رو بکشی (البته تبدیل #C به VB.net زیاد هم سخت نیست ) :لبخندساده: !!!

sanay_esh
جمعه 08 مهر 1390, 13:41 عصر
از این کد میتونی استفاده کنی

Imports System.Reflection

Imports System.IO

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

' Find the first removable storage device and make this the initial

' directory if it exists

Dim allDrives() As IO.DriveInfo = IO.DriveInfo.GetDrives()

Dim d As IO.DriveInfo

For Each d In allDrives

If d.IsReady = True AndAlso d.DriveType = IO.DriveType.Removable Then

ListBox1.Items.Add(d.VolumeLabel).ToString()

If IO.DriveType.Removable Then

TextBox1.Text = d.AvailableFreeSpace

End If

Else

If d.IsReady = True And Not d.DriveType = DriveType.Removable Then

ListBox1.Items.Add(d.RootDirectory).ToString()

TextBox1.Text = d.AvailableFreeSpace

End If

End If

Next

End Sub

End Class

ArashRoshan
جمعه 08 مهر 1390, 13:51 عصر
شما که این کد رو داخل Button1_Click نوشتید ، نمیشه که هر لحظه روی Button1 کلیک رد !!؟؟؟

باید وضیفه ی چک کردن رو به عهده ی سیستم قرار بدیم ، نه که خودمون !!!! که این کار رو WM_ChangeDrive انجام میده ، من اون لینک پست بالا رو دانلود کردم ، همون بود که آقای M.KH-SH می خواستند . فقط باید وقت بذارن و کد نوشته شده رو با دقت تحلیل کنن ببینن چه اتفاقی داره می افته .

hossein-khoshseyar
شنبه 09 مهر 1390, 13:26 عصر
دوست عزیز این پروژه جواب سئوال شماست
نه تایمر می خواد نه چز دیگه ای