PDA

View Full Version : سوال: چگونگی تشخیص اینکه فایلی توسط کاربر باز شده است یا خیر



b_user
یک شنبه 09 فروردین 1388, 16:25 عصر
با توجه به اینکه فایل مشخصی برای برنامه مشخص گشته (بدون توجه به نوع فایل -اجرایی، متنی یا ...) چطور می توان متوجه شد آن فایل توسط کاربر باز شده است

mohsen306
یک شنبه 09 فروردین 1388, 20:43 عصر
با سلام:
اول باید دید میخوای با توجه به نام فایل این کارو انجام بدی یا محتوا.اگر نام فایل میتونی اسم فایلی که باز شده رو تو یک متغییر نگه داری و با شرط بررسی کنی که هست یا نه.
خوب محتوا بحث جدایی داره !

بیشتر توضیح بده تا بهتر کمکت کنیم

b_user
یک شنبه 09 فروردین 1388, 23:38 عصر
اول باید دید میخوای با توجه به نام فایل این کارو انجام بدی یا محتوا.اگر نام فایل میتونی اسم فایلی که باز شده رو تو یک متغییر نگه داری و با شرط بررسی کنی که هست یا نه.
خوب محتوا بحث جدایی داره !



علیک سلام:لبخندساده:
آن چیزی رو که از برنامه می خوام اینه که بصورت (Windows Service یا) Resident در حافظه قرار بگیره و فایلهایی رو که برای برنامه مشخص کردیم مورد بررسی قرار بده (محتوای فایل مهم نیست، بررسی فقط برای اسم فایل اهمیت داره؛ اینکه مشخص بشه آیا کاربر چنین فایلی رو باز کرده یا نه. اگه بشه اقدام کاربر برای باز کردن فایل رو حتی قبل از باز شدن فایل تشخیص داد که خیلی بهتره) چون برنامه باید پس از اقدام کاربر برای باز کردن فایل بلافاصله (On-Demand) پیامی نشون بده و فایل رو پاک کنه.

من تا حالا از C# در حد پروژه های دانشجویی (برنامه هایی برای کار با پایگاه داده) استفاده کردم و به قسمتهای دیگه آشنایی چندانی ندارم. برای این برنامه نیاز دارم فایل(های) مد نظر جهت بررسی، توسط کاربر نرم افزار مشخص گردند؛ که من بلد نیستم چطور میشه از ابزارهای ویندوز جهت این کار استفاده کرد. اگه لطف کنید و بگید که اینطور اطلاعات رو میتونم از کدوم تاپیک ها بدست بیارم ممنون میشم.
Ali_Sarvar2004@yahoo.com

mohsen306
دوشنبه 10 فروردین 1388, 00:30 صبح
خوب حالا که مطرح کردی که فقط با اسم فایل کار داری با دو روش روبرو هستیم یکی اینکه شما OpenDialog استفاده میکنی و دیگری استفاده نمی کنی.:لبخند:
برای مقایسه در حالت یک openDialog رو به پروژه اضافه میکنی و بعد
openFileDialog1.ShowDialog();
x = System.Windows.Forms.DialogResult.OK.ToString();
if ( x=="OK")
{
اگه فایلی باز کرد روبرو اسم متغیر می نویسی(دیتا تایپ اسم متغییره)
Datatype=openFileDialog1.FileName
بعد تو شرط با فایل بعدی و متغییر مقایسه میکنی
}

اما روش دوم

روبرو متغییر کد زیر رو میدی و مثل بالا عمل میکنی

System .IO.Path .GetFileName ("D:\\Users\\Admin\\MyFile.txt"
خوب امیدوارم به کارت بیاد

عیدت مبارک.
:چشمک:

seven7777777
دوشنبه 10 فروردین 1388, 01:09 صبح
دوستان سلام
من فکر می کنم منظور این دوستمون چیز دیگه ای بوده . مثلا یه جور آنتی تروجان که مانع دسترسی تروجان ها به فایل های خاصی میشه .
اینکه طرف از طریق خود برنامه یه فایلو باز کنه که تشخیصش موردی نداره اما اینکه به صورت Resident باز شدن فایلو Handle کنی خوب فکر کنم خیلی مورد داره که منم دوست دارم بدونم !!!
اگه منظورت اینه بگو تا دوستان کمک کنند .

razavi_university
دوشنبه 10 فروردین 1388, 03:03 صبح
اگه درست فهمیده باشم شما باید API های مربوطه رو Hook کنید
یه نمونه برنامه در این زمینه در تاپیک نمونه برنامه ها هست
یه سری به انجمن امنیت نرم افزار بزنید مطالب بیشتری در این زمینه گیرتون میاد

b_user
دوشنبه 10 فروردین 1388, 17:14 عصر
دوستان سلام
من فکر می کنم منظور این دوستمون چیز دیگه ای بوده . مثلا یه جور آنتی تروجان که مانع دسترسی تروجان ها به فایل های خاصی میشه .
اینکه طرف از طریق خود برنامه یه فایلو باز کنه که تشخیصش موردی نداره اما اینکه به صورت Resident باز شدن فایلو Handle کنی خوب فکر کنم خیلی مورد داره که منم دوست دارم بدونم !!!
اگه منظورت اینه بگو تا دوستان کمک کنند .

سلام:لبخندساده:
منظور منم تقریبا همینه. ولی نمی دونم از کجا شروع کنم
لطفا برنامه نویسان حرفه ای انجمن منو دریابند.
حداقل بگید برای شروع چه کارایی باید انجام بدم.
ممنون

13601360
دوشنبه 10 فروردین 1388, 18:03 عصر
دوست عزیز ببین این نمونه برنامه می تونه کمکت کنه
این برنام اطلاعات کاملی از یک فابل رو در اختیارت قرار میده
از قبیل تاریخ ایجاد فایل - آخرین دستیابی به فایل و ....
البته این کار رو به طور خودکار انجام نمی ده



http://www.c-sharpcorner.com/UploadFile/scottlysle/GetFileInfo12282006221354PM/Images/CaptureFile1.gif