السلام عليكــم ورحمـة الله وبركاتــه ،،
أريد كود يمنع من نسخ المجلدات والملفات من مسار معين؟
كود يقوم بإغلاق برنامج موجود في مسار معين؟
السلام عليكــم ورحمـة الله وبركاتــه ،،
أريد كود يمنع من نسخ المجلدات والملفات من مسار معين؟
كود يقوم بإغلاق برنامج موجود في مسار معين؟
السلام عليكــم ورحمـة الله وبركاتــه ،،
هذه مشاركة لى فى قسم السى شارب تبين كيفية منع المستخدم من فتح/نسخ/تعديل/حذف ملف أو مجلد أو حتى مشغل
إذا وجدت صعوبة فى تحويل الكود إلى VB فأخبرنى
إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال
إذا كان بالإمكان تحويل الكود مع الشرح مع الشكر الجزيل لك
السلام عليكــم ورحمـة الله وبركاتــه ،،
الكود بعد التحويل
Imports System.Runtime.InteropServices
Public Class Form1
<DllImport("kernel32.dll")> _
Public Shared Function CreateFile(ByVal lpFileName As String, _
ByVal dwDesiredAccess As Integer, _
ByVal dwShareMode As Integer, _
ByVal lpSecurityAttributes As Integer, _
ByVal dwCreationDisposition As Integer, _
ByVal dwFlagsAndAttributes As Integer, _
ByVal hTemplateFile As Integer) As Integer
End Function
<DllImport("kernel32.dll")> _
Public Shared Function CloseHandle(ByVal hObject As Integer) As Integer
End Function
'dwDesiredAccess
Const GENERIC_READ As Integer = -2147483648
Const GENERIC_WRITE As Integer = 1073741824
'dwShareMode
Const FILE_SHARE_NONE As Integer = 0
Const FILE_SHARE_READ As Integer = 1
Const FILE_SHARE_WRITE As Integer = 2
'dwCreationDisposition
Const CREATE_NEW As Integer = 1
Const CREATE_ALWAYS As Integer = 2
Const OPEN_EXISTING As Integer = 3
Const OPEN_ALWAYS As Integer = 4
Const TRUNCATE_EXISTING As Integer = 5
'dwFlagsAndAttributes Attributes
Const FILE_ATTRIBUTE_ARCHIVE As Integer = &H20
Const FILE_ATTRIBUTE_COMPRESSED As Integer = &H800
Const FILE_ATTRIBUTE_DIRECTORY As Integer = &H10
Const FILE_ATTRIBUTE_HIDDEN As Integer = &H2
Const FILE_ATTRIBUTE_NORMAL As Integer = &H80
Const FILE_ATTRIBUTE_READONLY As Integer = &H1
Const FILE_ATTRIBUTE_SYSTEM As Integer = &H4
Const FILE_ATTRIBUTE_TEMPORARY As Integer = &H100
'dwFlagsAndAttributes Flags
Const FILE_FLAG_BACKUP_SEMANTICS As Integer = &H2000000
Const FILE_FLAG_NO_BUFFERING As Integer = &H20000000
Const FILE_FLAG_DELETE_ON_CLOSE As Integer = &H4000000
Const FILE_FLAG_OVERLAPPED As Integer = &H40000000
Const FILE_FLAG_POSIX_SEMANTICS As Integer = &H1000000
Const FILE_FLAG_RANDOM_ACCESS As Integer = &H10000000
Const FILE_FLAG_SEQUENTIAL_SCAN As Integer = &H8000000
Const FILE_FLAG_WRITE_THROUGH As Integer = &H80000000
Dim fileHandle As Integer
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
CloseHandle(fileHandle)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
fileHandle = CreateFile("C:\test.txt", GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_NONE, 0, OPEN_EXISTING, 0, 0)
End Sub
End Classالكود باختصار يعتمد على إحدى دوال الـAPI وهى CreateFile والتى تستخدم لإنشاء/فتح الملفات والمجلدات والقيمة الناتجة منها هى مقبض الملف/المجلد الذى تم فتحه أو إنشاؤه
معاملات الدالة:
1- lpFileName : الملف/المجلد/المشغل الذى سيتم تنفيذ العملية عليه
2- dwDesiredAccess : يحدد الغرض من فتح الملف هل هو للقراءة أم للكتابة أم للإثنين معا
3- dwShareMode : هذا هو المعامل المسئول عن عملية الإغلاق فهو يحدد كيف يمكن لباقى العمليات مشاركة الملف الذى يتم العمل عليه وفى حالتنا قمنا بإلغاء المشاركة عن طريق القيمة FILE_SHARE_NONE ويمكنك مشاركة الملف للقراءة أو للكتابة عن طريق القيم FILE_SHARE_READ للقراءة و FILE_SHARE_WRITE للكتابة ومعنى مشاركة الملف أى يمكن إجراء العملية المحددة من قبل باقى العمليات فعند مشاركة الملف للقراءة يمكن لباقى العمليات قراءة الملف لكن لا يمكنها التعديل عليه والعكس بالنسبة لمشاركة الكتابة
4- lpSecurityAttributes : لن يفيدك فى شئ فهو خاص بتحديد إمكانية وراثة المقبض
(شئ خاص بألـKernel Mode) ,, اجعله دائما صفر
5- dwCreationDisposition : يحدد العملية التى سيقوم بها البرنامج عند إنشاء/فتح الملف وفى حالتنا استخدمنا القيمة OPEN_EXISTING لأننا سنفتح ملفا موجودا بالفعل
6- dwFlagsAndAttributes : يحدد خصائص الملف ,, اجعله صفر أو راجع MSDN لمعرفة كيفية استخدام القيم الموضحة
7- hTemplateFile : راجعه على MSDN
عند تطبيق هذه الدالة كما قلنا ستكون القيمة الناتجة هى مقبض الملف ولفتح الملف لباقى العمليات مرة أخرى يجب أن يتم إغلاق هذا المقبض وهذا ما تقوم به الدالة CloseHandle
------------------------
قمت بإدراج جميع قيم المعاملات التى أعرفها فى الكود حتى تتمكن من البحث عنها إن أردت
وفى هذه المشاركة تجد روابط قد تفيدك
إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال
وجدت هذه المشاركة المتميزة من المشرف المتميز وجدى قد تفيدك أيضا
إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…