• فيجوال بيسك
  • 9248
  • 20-3-2008
  • كيفية ابطال عمل مفاتيح 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

    ومن ثم تستطيع اخفاء المؤشر بتنفيذ الدالة بالشكل التالي
    x = ShowCursor(False)

    و تستطيع إعادة إظهار المؤشر بتنفيذ الدالة بالشكل التالي
    x = ShowCursor(True)

    -------------------------------------------------------------------------------- هل يحتوي مشغل الأقراص المدمجة على قرص أم لا ؟؟
    تستطيع من خلال إضافة السطور التالية إلى برنامجك تحديد ما إذا كان مشغل الأقراص المدمجة يحتوي على قرص أم لا
    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\')

    وتمنياتي للجميع بالتوفيق
    كن أول من يقيم الموضوع
    12345