فوائد متنوعة لكافة مبرمجي الفيجوال بيسك (2)
كيفية ابطال عمل مفاتيح CTRL+ALT+DEL
ويهدف هذا الإجراء إلى منع المستخدم من إغلاق برنامجك أثناء التنفيذ حيث أن الضغط على هذه المفاتيح يمكنه من إنهاء البرنامج أو إنهاء ويندوز بكاملها
ويتم ذلك باستخدام الأسطر التالية
ضع التعريفين التاليين في قسم التعريفات Declarations
Private Declare Function SystemParametersInfo Lib _
\'user32\' Alias \'SystemParametersInfoA\' (ByVal uAction _
As Long, ByVal uParam As Long, ByVal lpvParam As Any, _
ByVal fuWinIni As Long) As Long
Sub DisableCtrlAltDelete(bDisabled As Boolean)
Dim X As Long
X = SystemParametersInfo(97, bDisabled, CStr(1), 0)
End Sub |
لإبطال عمل المفاتيح ضع السطر التالي في المكان المناسب
Call DisableCtrlAltDelete(True) |
لإعادة عمل المفاتيح ضع السطر التالي في المكان المناسب
Call DisableCtrlAltDelete(False) |
--------------------------------------------------------------------------------
هـل الملف موجود أم لا ؟
قد يحتاج برنامجك في بعض الأحيان أن يعرف عن أحد الملفات كونه موجوداً على القرص أم لا ، يمكن عمل ذلك باستخدام الأسطر التالية :
If Dir(myfilename, vbNormal or vbReadOnly or vbHidden or vbSystem or vbArchive) = \'\' then
Msgbox \'الملف غير موجود\'
Else
Msgbox \'الملف موجود\'
End If |
عدل السطور السابقة حسب احتياج برنامجك
--------------------------------------------------------------------------------
تخصيص مفتاح HotKey لصندوق نص
يمكنك تخصيص مفتاح ساخن HotKey لصندوق نص TextBox بالطريقة التالية : أنشيء أداة من نوع Label و ضع لها المفتاح الساخن الذي تريده لصندوق النص ثم عدل خاصية TabIndex لها لتكون أقل بواحد من قيمة نفس الخاصية في صندوق النص ( مثال : إذا كانت قيمة TabIndex لصندوق النص هي 4 فاجعل قيمتها للأداة من نوع Label الرقم 3 )
--------------------------------------------------------------------------------
كيف تجعل النص يظهر بشكل عمودي في الأداة Labelيمكن عمل ذلك باستخدام الرمز vbCrLf ، حيث يوضع بعد كل حرف في محتوى الأداة Label كما يلي :
Private Sub Form_Activate()
Dim s As String
For i = 1 To Len(Label1)
s = s & Mid$(Label1, i, 1) & vbCrLf
Next
Label1 = s
End Sub |
--------------------------------------------------------------------------------
كيفية إغلاق ويندوز من داخل البرنامج أو إعادة تشغيل ويندوز
قد تحتاج في بعض البرامج أن تقوم بإعادة تشغيل ويندوز بعد قيام المستخدم بتعديل بعض الخيارات أو لدواع أمنية أو غير ذلك
لعمل ذلك ألصق الأسطر التالية في قسم التعريفات من برنامجك
Public Const EWX_LOGOFF = 0
Public Const EWX_SHUTDOWN = 1
Public Const EWX_REBOOT = 2
Public Const EWX_FORCE = 4
Declare Function ExitWindowsEx Lib \'user32\' Alias _
\'ExitWindowsEx\' (ByVal uFlags As Long, ByVal dwReserved _
As Long) As Long |
وفي المكان المناسب ، ضع السطر التالي و الذي يقوم بإغلاق ويندوز
t& = ExitWindowsEx(EWX_REBOOT, 0) |
و يلاحظ أنه يمكن وضع أي من المتغيرات الموجودة أعلاه بدلاً من EWX_REBOOT
--------------------------------------------------------------------------------
تحديد النص في صندوق النص ذاتياً عند الضغط على زر مثلاً
تلاحظ في بعض البرامج عند انتقال التركيز من أداة ما على النافذة إلى صندوق نص يحتوي على نص فإنه يتم تحديد النص ذاتياً ، للحصول على ذلك في برنامجك قم بكتابة النص التالي في المكان المناسب ليتم تحديد النص
Text1.SelStart = 0
Text1.SelLength = Len(Text1)
Text1.SetFocus |
--------------------------------------------------------------------------------
إخفاء مؤشر الفأرة في تطبيق فيجوال بيسك
تستطيع إخفاء مؤشر الفأرة في موضع معين من برنامجك باستخدام الدالة ShowCursor و التي يتم تعريفها في قسم التعريفات أعلى البرنامج لأنها من دوال واجهة برمجة التطبيقات API على النحو التالي :
Private Declare Function ShowCursor Lib \'user32\' _
(ByVal bShow As Long) As Long |
ومن ثم تستطيع اخفاء المؤشر بتنفيذ الدالة بالشكل التالي
و تستطيع إعادة إظهار المؤشر بتنفيذ الدالة بالشكل التالي
--------------------------------------------------------------------------------
هل يحتوي مشغل الأقراص المدمجة على قرص أم لا ؟؟
تستطيع من خلال إضافة السطور التالية إلى برنامجك تحديد ما إذا كان مشغل الأقراص المدمجة يحتوي على قرص أم لا
Dim FSO As FileSystemObject
Dim aDrive As Drive
Set FSO = New FileSystemObject
For Each aDrive In FSO.Drives
If aDrive.DriveType = CDRom And aDrive.IsReady = False Then
MsgBox \'لا يوجد قرص في المشغل\'
Exit For
ElseIf aDrive.DriveType = CDRom Then
MsgBox aDrive.VolumeName
Exit For
End If
Next
Set FSO = Nothing |
--------------------------------------------------------------------------------
تحديد ما إذا كان تاريخان في نفس الشهر أم لا
تستطيع أن تحدد في برنامجك ما إذا كان تاريخان مدخلان يقعان في نفس الشهر أم لا باستخدام الدالة DateDiff
المثال التالي يوضح كيفية ذلك
Date1 = \'01/02/1999\'
Date2 = \'15/02/1999\'
If DateDiff(\'m\', Date1, Date2) Then
MsgBox \'التاريخان في شهرين مختلفين\'
Else
MsgBox \'التاريخان في نفس الشهر\'
End If |
--------------------------------------------------------------------------------
تحديد دقة عرض الشاشة في جهاز المستخدم
تستطيع من خلال أسطر بسيطة تضيفها إلى برنامجك أن تحدد دقة عرض الشاشة في جهاز المستخدم وذلك كما يلي
Dim x,y As Integer
x = Screen.Width / 15
y = Screen.Height / 15
If x = 640 And y = 480 Then MsgBox (\'640 * 480\')
If x = 800 And y = 600 Then MsgBox (\'800 * 600\')
If x = 1024 And y = 768 Then MsgBox (\'1024 * 768\') |
وتمنياتي للجميع بالتوفيق