الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كود منع الدخول الى مجلد او ملف ايضا

مغلق
بدأه Siner في 30 أغسطس 2005 · 19 رد · 1,822 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

هذا مثال بسيط لمنع الدخول الى مجلد بواسطه API , وهو مثال بسيط جدا

ضع الكود الآتى فى قسم قسم الأعلانات بموديل:

Option Explicit
Private Const FILE_LIST_DIRECTORY = &H1
Private Const FILE_SHARE_READ = &H1&
Private Const FILE_SHARE_DELETE = &H4&
Private Const OPEN_EXISTING = 3
Private Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal PassZero As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal PassZero As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Dim File_Share_Flag As Long
Dim hDir As Long

ثم استخد الكود التالى لقفل المجلد او منع الدخول اليه (ويعمل ايضا مع الملفات)

 Dim PathDir As String
    PathDir = "M:\Temp"
  hDir = CreateFile(PathDir, FILE_LIST_DIRECTORY, File_Share_Flag,ByVal 0&, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, ByVal 0&)

وطبعا تغير "M:\Temp" الى مسار المجلد (او الملف ) المطلوب ..

ولأعاده الوضع الى ما كان عليه تقوم باستدعاء الداله CloseHandel :

هكذا . .

CloseHandle hDir

حيث ان hDir هو مقبض المجلد (الهاندل) ..

وارجو ان يفيد هذا اى احد فى هذا المنتدى

لآ إله إلا الله محمد رسول الله

#2

فعلاً فكره كانت تحير الجميع

شكرا لك على هذه الفكره العظيمه

هل يمكنك شرح الخطوات التى يعمل بها هذا الكود؟

شكرا :rolleyes:

#3

مذهل

والله رائع

البرنامج يتعامل مع مفاتيح الرجسترى

بس كيف ؟

ممكن توضيحة

رُب ( وامعتصماه ) إنطلقت *** ملْء أفـواه الصبايا اليُتـم

لامـسـت أسْـماعـهـم لاكـنهـا *** لمْ تلامس نخْوة المعتصم

#4

السلام عليكم

هو يقوم بكل بساطه باستخدام داله من دوال API وهى CreateFile ليمنع الدخول الى مجلد ما (او ملف)

ولا يستخدم اى شئ او دوال اخرى لها علاقه بالريجسترى او مفاتيحه :)

الكود الذى وضعته فى المشاركه الأولى به فقط اعلان الداله CreateFile والداله CloseHandel وبعض الثوابت ومتغيرين

وبتمرير مسار المجلد او الملف الذى تريد منع الدخول اليه او منع فتحه الى الداله الأولى يقوم نظام التشغيل بمنع الدخول اليه

ولكن طالما ان برنامجك الذى يستخدم هذا الكود شغال وليس دائما (ولكن لو ارد ان تمنع الدخول اليه دائما يجب ان يكون خيالك واسعا B)

فمن الممكن ان تجعل برنامجك عباره عن سيرفيس تعمل مع نظام التشغيل ,او ان تضعه فى بدايه تشغيل النظام فهناك طرق كثيره جدا لذلك)

ولكن ما اردت ان اضيفه هنا فقط هو كيف منع فتح المجلد او الملف بAPI وليس بأى شئ اخر

و لقد ارفقت مثال لعمل ذلك

وكل ما عليك سوى ان تحدد له مسار المجلد او الملف فى مربع النص(بدلا من "C:\Temp") وتضغط على Lock لمنع الدخول للمجلد الذى حددته , وهو هنا فى المثال يقوم بمنع الدخول الى مجلد اسمه temp فى الوحده C ويمكنك تغييره بالطبع..

ثم حاول ان تدخل الى المجلد المذكور ستظر لك رساله من النظام تفيد ان الدخول قد رفض (Access Denied)

وللسماح بالدخول اضغط Unlock ليتم السماح باستخدام المسار(المجلد او الملف) مره ثانيه

ارجو ان تستفيدوا

وشكرا لردودكم

Lock.rar

تم تعديل هذه المشاركة بواسطة Siner في 31 أغسطس 2005 في 00:22

لآ إله إلا الله محمد رسول الله

#5

مشكور أخوي Siner على الفكره الجميله

essam.gif

منتديات كوكب الكمبيوتر

لكل جديد في عالم تكنولوجيا المعلومات والكمبيوتر والأخبار العلمية

http://www.planetss.com/vb

#6

الفكرة ببساطة هى فتح ملف و عدم أغلاقة و هذا يتطلب أن يكون البرنامج مفتوح لانه أذا تم أغلاقة سوف يقوم النظام بغلقة

يمكنك أيضا عمل هذا مع ملف بالطريقة Open

Public Sub Form_Load()
            open "C:\FileName.txt" for Binary as #FreeFile
End Sub

سوف يقوم بعمل نفس الفكرة و عند أنهاء البرنامج سوف يتم تحرير الملف

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#7

لقد نسيت اخ نيو اضافة الكلمة المحجوزة Lock لاغلاق الملف والا فلن يحدث شئ للملف كما انك لا تستطيع اسناد رقم الملف بالدالة FreeFile مباشرة وانما يجب وضع قيمتها فى متغير اولاً ثم اسناد قيمة المتغير الى رقم الملف

تعديل الكود

Dim N%
Public Sub Form_Load()
N = FreeFile
Open "C:\FileName.txt" For Binary Lock Read Write As #N
End Sub

ولتحرير الملف

Private Sub Command1_Click()
Close #N
End Sub

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#8
Siner كتب:
السلام عليكم ورحمة الله

هذا مثال بسيط لمنع الدخول الى مجلد بواسطه API , وهو مثال بسيط جدا

لقد اوضحت اخوانى فى بدايه اول مشاركه انه باستخدام API فقط

وطبعا هناك العديد والكثير من الطرق المختلفه لعمل ذلك

وشكرا لردودكم احبائى :rolleyes:

لآ إله إلا الله محمد رسول الله

#9

أخي siner العزيز شكراً على الفكرة لكنها لا يعتمد عليها بلحماية على ما أظن

#10
اقتباس
أخي siner العزيز شكراً على الفكرة لكنها لا يعتمد عليها بلحماية على ما أظن

فى رأيى الشخصى هذه أفضل طريقة للحماية بالنسبة للويندوز وأظن أنها نفس الطريقة التى يستخدمها برنامج IProtect لكن الحماية بالنسبة للدوس فحتى الان لم اجد لها حل :wacko:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#11

والله اساتذة في الفجوال

من تواضع لله رفعه

#12

أخي الشبح ما ذا تقصد بالنسبة لحماية الدوس لم أجد لها حل

#13

و بالنسيو للحماية ما تذال برأي غير فعالة كفاية

يعني يمكنك أن تقوم بغلقها بكل بساطة

و كيف و أنتم خبراء فيمكنكم عمل ذلك بسهولة

الأمر بسيط جداً...........................................

#14
اقتباس
أخي الشبح ما ذا تقصد بالنسبة لحماية الدوس لم أجد لها حل

اقصد انه حتى الان لا توجد طريقة لحماية الملفات او المجلدات من الحذف عن طريق الدوس ولو لاقيت مش هاتنفع على الويندوز :rolleyes:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#15

ألأخ الشبح أن بالأول كنت بأظن ذلك أنو في طريقة ما تخلي الملف أو المجلد ينحذف

لكن بعد ما قرأت في المنتدى من تعليقات على ذلك أقتنعت أو تيقنت أنو ما في طريقة تمنع الحذف

لطالما في unicode لأ ظن سنجد

#16

اعتقد انى قرأت فى موضوع اجنبى انه يمكن ان تعبث قليلا بنظام الملفات وتغير بعض القيم بالهكس بجدول مواقع الملفات للوحده (FAT) والذى يمكنك ان تخفى ذلك المجلد عن العيون تماما (حتى من الدوس او من على نظام التشغيل)

لآ إله إلا الله محمد رسول الله

#17

أخي siner العزيز

فكرة ذكية

بس صديقي العزيز : هل يا ترى يبقى الملف المخفي مخفي في غير نظام ؟

طريقة التي قرأتها تذكرني بعمل كراك للألعاب.

#18

نعم يختفى الملف تماما ولن تراه من اى نظام وكأنه تم مسحه نهائيا (مثل طريقه الحذف النهائى لملف بتغيير بتات معينه بجدول مواقع الملفات لنظام الملفات المستخدم ويمكنك الأطلاع اكثر على ذلك الموضوع بالبحث فى قسم الأسمبلى ,فقد تناوله اخى JASS بشرح مستفيض وجيد)

لآ إله إلا الله محمد رسول الله

#19

شكراً أخي

تم تعديل هذه المشاركة بواسطة غسان الجزار في 4 سبتمبر 2005 في 00:47

#20

لكن هل ينطبق الأمر على نظام ملفات ntfs

و أيضا لدي محرر ستاعشري هل ينفع لمثل هذه العملية

تم تعديل هذه المشاركة بواسطة غسان الجزار في 4 سبتمبر 2005 في 00:48

هذا الموضوع مغلق.

مواضيع مشابهة