منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] فتح فورم عندما توصل ساعة الجهاز الى وحدة مساء - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175)
+--- قسم : قسم اسئلة C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=176)
+--- الموضوع : [سؤال] فتح فورم عندما توصل ساعة الجهاز الى وحدة مساء (/showthread.php?tid=11106)



فتح فورم عندما توصل ساعة الجهاز الى وحدة مساء - ديو05 - 07-01-15

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

اسعد الله مساكم بالخير والسرور

جزى الله خير كل القائمين على هذا المنتدى الاكثر من رائع

سوالي:

هو كيفية فتح فورم عندما توصل ساعة الجهاز الساعة (1:00م) وتعطيل الماوس والكيبورد
وعندما توصل ساعة الجهاز الساعة (1:30م) يختفي الفورم ويفعل الماوس والكيبورد





RE: فتح فورم عندما توصل ساعة الجهاز الى وحدة مساء - الشاكي لله - 07-01-15

السلام عليكم

كل ماعليك فعله هو اضافة Timer للـ Form

ثم لصق الكود التالي :-


فقط قم بتعديل اول سطرين
السطر الاول لتحديد وقت اقفال الماوس والكيبورد + اظهار الفورم
السطر الثاني لتحديد وقت تشغيل الماوس والكيبورد + اخفاء الفورم


PHP كود :
Public Partial Class Form1


    
'كل ماعليك هو تحديد الوقت بالاسفل'

    
Private LockerTime As TimeSpan TimeSpan.Parse("13:00:00")
    Private 
UnLockerTime As TimeSpan TimeSpan.Parse("13:30:00")


    <
DllImport("user32.dll")> _
    
Private Shared Function BlockInput(fBlockIt As Boolean) As Boolean
    End 
Function

    
'------------------------------------------------------------------------------------------------'




    
Private Sub Form1_Load(sender As ObjectAs EventArgsHandles Form1.Load
        Timer1
.Interval 1000
        Timer1
.Start()
    
End Sub

    
Private Sub Timer1_Tick(sender As ObjectAs EventArgsHandles Timer1.Click
        Dim currentTime 
As TimeSpan TimeSpan.Parse(DateTime.Now.ToString("HH:mm:ss"))
        
Dim t As Integer currentTime.CompareTo(LockerTime)

        If 
currentTime.CompareTo(LockerTime) = 0 Then
            Me
.Show()            'اظهار الفورم'
            
BlockInput(False)        'تجميد الماوس والكيبورد'
        
ElseIf currentTime.CompareTo(UnLockerTime) = 0 Then
            Me
.Hide()               'اخفاء الفورم'
            
BlockInput(False)    'تفعيل الماوس والكيبورد'
            
        
End If
    
End Sub
End 
Class 



RE: فتح فورم عندما توصل ساعة الجهاز الى وحدة مساء - ديو05 - 07-01-15

جزاك الله خير يالغالي على تكرمك بزيارة الموضوع والرد عليه
الاكواد الي انت طرحتها هي بلغة الفيجوال وانا ابغاها بلغة السي شارب
وابي منك ياليت توضحلي كيف pm مساء Am صباحا


RE: فتح فورم عندما توصل ساعة الجهاز الى وحدة مساء - الشاكي لله - 08-01-15

PHP كود :
   public partial class Form1 Form
    
{
 
       public Form1()
 
       {
 
           InitializeComponent();
 
       }

 
       //كل ماعليك هو تحديد الوقت بالاسفل

 
       TimeSpan LockerTime TimeSpan.Parse("17:59:57");
 
       TimeSpan UnLockerTime TimeSpan.Parse("17:59:50");
 
       


        
//------------------------------------------------------------------------------------------------


 
       [DllImport("user32.dll")]
 
       static extern bool BlockInput(bool fBlockIt);

 
       private void Form1_Load(object senderEventArgs e)
 
       {
 
           timer1.Interval 1000;
 
           timer1.Start();
 
       }

 
       private void timer1_Tick(object senderEventArgs e)
 
       {
 
           TimeSpan currentTime TimeSpan.Parse(DateTime.Now.ToString("HH:mm:ss"));

 
           if (currentTime.CompareTo(LockerTime) == 0)
 
           {
 
               this.Show(); //اظهار الفورم
 
               BlockInput(false); //تجميد الماوس والكيبورد
 
           }
 
           else if (currentTime.CompareTo(UnLockerTime) == 0)
 
           {
 
               this.Hide(); //اخفاء الفورم
 
               BlockInput(false); //تفعيل الماوس والكيبورد
 
           }
 
       }

 
   


هذا هو الكود بالسي شارب
طبعا هو يتعامل مع الوقت على اساس نظام ال24 ساعة

نظام الam والpm شغلته مملة شوي لان timespan ماتقبل عمل parse له بسهولة
لازمه بعض التحويلات بين datetime والtimespan
وكذلك قد تحدث اخطاء بسبب اختلاف لغات الوندوز - يعني في بعض الاجهزة تشوف الوقت مثلا ينكتب(  10:00AM )
بينما في اجهزة اخرى التي تستعمل نظام تشغيل عربي تنكتب( 10:00 صباحا)

فكما ترى هذا قد يسبب مشكلة في المقارنة (الجملة الشرطية) - (رغم انه توجد حلول لتفادي هذا الامر) .
لكن لاتتعب نفسك وتسوي لك شغلات انت في غنى عنها قافضل شيئ انك دائما تتعامل على نظام ال24 ساعة