PDA

View Full Version : آگاهی از هر گونه عملیات در سیستم



omid-vbAuto
شنبه 01 مرداد 1390, 17:51 عصر
با سلام خدمت اساتید محترم و برنامه نویسان محترم

سوالی که چند وقتی ذهنم را به خود مشغول کرده اینه که ما چطوری می تونیم از فعالیت هائی مانند کپی کردن و یا دلت کردن فایل ها و پوشه ها اگاهی پیدا کنیم.

یعنی یه برنامه بنویسیم و ران کنیم و در هین ران بودن برناممون هر گونه کپی و یا دلت انجام شده در سیستم را تشخیص داده و به ما اعلام کنه.

لطفا بنده رو در این مورد راهنمائی کنید.
با تشکر

juza66
شنبه 01 مرداد 1390, 18:26 عصر
سلام دوست من

توی برنامه نویسی نمیدونم چطوریه ولی،


من قبلا توی نرم افزار wise installer 9 این قابلیت رو دیدم که میاد اول سیستم رو چک میکنه تمامی درایوها و ریجستری و بعد در اخر از ما میپرسه فایل اجرایی تون رو ران کنید و بعد از اتمام کار با فایل اجرایی میاد دوباره اسکن انجام میده و تمام فعالیتهای که یک exe رو داشته براتون قشنگ نشون میده

نرم افزار wise installer رو بگیر توی یکی از منوهاش هستش

omid-vbAuto
شنبه 01 مرداد 1390, 20:56 عصر
سلام دوست من

توی برنامه نویسی نمیدونم چطوریه ولی،


من قبلا توی نرم افزار wise installer 9 این قابلیت رو دیدم که میاد اول سیستم رو چک میکنه تمامی درایوها و ریجستری و بعد در اخر از ما میپرسه فایل اجرایی تون رو ران کنید و بعد از اتمام کار با فایل اجرایی میاد دوباره اسکن انجام میده و تمام فعالیتهای که یک exe رو داشته براتون قشنگ نشون میده

نرم افزار wise installer رو بگیر توی یکی از منوهاش هستش



با تشکر از راهنمائی مفیدتون.

در کل من فکر می کنم این کاری که من دنبالش هستم همون کاری که آنتی ویروس ها انجام می دن.

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

Saman_12
شنبه 01 مرداد 1390, 23:58 عصر
برای این کار شما باید از هوک استفاده کنید یعنی توابع مربوطه را هوک کنید و به اون ها گوش بدید.(بهتره از اساتید سایت کمک بگیرید.)

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

Alirezanet
یک شنبه 02 مرداد 1390, 23:19 عصر
یک راه اینه که FileSystemWatcher استفاده کنید (همونطور که دوستمون گفت ) که طریقه استفادش رو اینجا گفته :
http://visualbasic.about.com/od/quicktips/qt/filwtcher.htm
و راه دوم که فقط زمان کپی و کات شدن فایل بهش دسترسی دارید اینه که از Clipboard استفاده کنید ! و برنامتون اون رو تحت نظر داشته باشه (مثلا با 1 timer) ....

ولی راهه اول اصولی تره :


Public Class Form1
Private WithEvents f As New IO.FileSystemWatcher("d:/")
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub
Sub test(ByVal Sender As Object, ByVal e As IO.FileSystemEventArgs) Handles f.Changed
' e.ChangeType
' e.FullPath
' e.Name
End Sub
End Class

omid-vbAuto
یک شنبه 02 مرداد 1390, 23:35 عصر
یک راه اینه که FileSystemWatcher استفاده کنید (همونطور که دوستمون گفت ) که طریقه استفادش رو اینجا گفته :
http://visualbasic.about.com/od/quicktips/qt/filwtcher.htm
و راه دوم که فقط زمان کپی و کات شدن فایل بهش دسترسی دارید اینه که از Clipboard استفاده کنید ! و برنامتون اون رو تحت نظر داشته باشه (مثلا با 1 timer) ....

ولی راهه اول اصولی تره :


Public Class Form1
Private WithEvents f As New IO.FileSystemWatcher("d:/")
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub
Sub test(ByVal Sender As Object, ByVal e As IO.FileSystemEventArgs) Handles f.Changed
' e.ChangeType
' e.FullPath
' e.Name
End Sub
End Class



با تشکر از راهنمائیتون

مهندس جان ممکنه روش اول رو بیشتر شرح بدین با یه نمونه کد؟ چون تو اون رفرنسی که دادین کدها رو پخش و پلا نوشته .

Alirezanet
یک شنبه 02 مرداد 1390, 23:55 عصر
این همون راهه اوله ....
یه پروژه جدید بسازید و این کد رو توی Codebehind پیست کنید :
این کامل تره :
Imports System.IO

Public Class Form1
Private WithEvents f As FileSystemWatcher
'Private changeStruct As WaitForChangedResult
Sub New()

' This call is required by the designer.
InitializeComponent()

' Add any initialization after the InitializeComponent() call.
f = New FileSystemWatcher("D:\")
f.EnableRaisingEvents = True
End Sub

Sub test(ByVal Sender As Object, ByVal e As IO.FileSystemEventArgs) Handles f.Changed, f.Created,f.Renamed
MsgBox(e.FullPath)
' e.FullPath
' e.Name
'e.ChangeType
End Sub

End Class


changeType نوع تغییر رو بهتون میده مثلا (Delete - Rename - ... )
FullPath آدرس کامل رو بهتون میده
Name هم نام فایل رو برمیگردونه !
بهمین سادگی
اگه نوع خاصی هم از فایلها رو خواستید در نظر بگیره این خط رو اینجوری تعریف کنید :
f = New FileSystemWatcher("D:\", "*.txt")

Alirezanet
چهارشنبه 05 مرداد 1390, 16:38 عصر
72977

دانلود نمونه برنامه :