تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
عمل تحديث برمجيا
#1
السلام عليكم ورحمة الله وبركاته
اخواني  المبرمجين  كلنا نعرف تشنج الكمبيوتر ومشاكله  Angry  ومن بين تجنب هذا المشكل هي مراقبة الرام وتقليل البرامج الناشطة او مراقبة البروسيسر  Sleepy وكذلك عمل تحديث لسطح المكتب  refresh desktop
لذا فكرة عمل برنامج صغير ههه يحدث سطح المكتب كل 10 ثواني ان صح التقدير

وهذا هو الكود


كود :
' Declaration

Private Declare Function SHChangeNotify Lib "Shell32.dll" (ByVal wEventID As
Int32, ByVal uFlags As Int32, ByVal dwItem1 As Int32, ByVal dwItem2 As Int32) As
Int32

The line below is used to refresh the Desktop:

' Refresh

SHChangeNotify(&H8000000, &H0, 0, 0)

والمشكلة التي وجهتها هي التكرار ..هل من حل؟ بغض النظر عن استعمالي لي طريقة  التايمر والبروقرس بار وعيبها الوحيد هي نهاية العمل
الرد }}}}
تم الشكر بواسطة:
#2
(16-10-14, 03:47 AM)hitman48 كتب : السلام عليكم ورحمة الله وبركاته
اخواني  المبرمجين  كلنا نعرف تشنج الكمبيوتر ومشاكله  Angry  ومن بين تجنب هذا المشكل هي مراقبة الرام وتقليل البرامج الناشطة او مراقبة البروسيسر  Sleepy وكذلك عمل تحديث لسطح المكتب  refresh desktop
لذا فكرة عمل برنامج صغير ههه يحدث سطح المكتب كل 10 ثواني ان صح التقدير

وهذا هو الكود



كود :
' Declaration

Private Declare Function SHChangeNotify Lib "Shell32.dll" (ByVal wEventID As
Int32, ByVal uFlags As Int32, ByVal dwItem1 As Int32, ByVal dwItem2 As Int32) As
Int32

The line below is used to refresh the Desktop:

' Refresh

SHChangeNotify(&H8000000, &H0, 0, 0)

والمشكلة التي وجهتها هي التكرار ..هل من حل؟ بغض النظر عن استعمالي لي طريقة  التايمر والبروقرس بار وعيبها الوحيد هي نهاية العمل

اتوقع ان التايمر هي المسئولة على هذا الشي واحسن شي التايمر | اذا اعتدمت على شي ثاني اتوقع يهنق البرنامج بمعنه يعلق
الرد }}}}
تم الشكر بواسطة:
#3
مشكور على المرور اخي ...تسلم
الرد }}}}
تم الشكر بواسطة:
#4
(16-10-14, 04:24 AM)hitman48 كتب : مشكور على المرور اخي ...تسلم

الله يسلمك وهذا الكود بدل التايمر



PHP كود :
For 0 To 100
            
'   هنا اكتب امر الرفرش    
            '
وهذا كود السليب
            System
.Threading.Thread.Sleep(10000)
 
       Next 

قمنا في هذا الكود عمل امر انه يقوم بعمل 100 مره فانت تقدر تغير


بعدين نحط تحته كود الرفرش تبع الدكس توب

وحطيت لك كود يسوي سليب 10 ثواني ويعيد الكود بس


بس انصحك في التايمر افضل

وشكرا
الرد }}}}
تم الشكر بواسطة: hitman48
#5
.....

جرب التالي (أضف ProgressBar)
كود :
Public Class Form1

    ' API - SHChangeNotify
    <Runtime.InteropServices.DllImport("shell32.dll", CharSet:=Runtime.InteropServices.CharSet.Auto, SetLastError:=True)> _
    Public Shared Sub SHChangeNotify(ByVal wEventId As UInt32, ByVal uFlags As UInt32, ByVal dwItem1 As IntPtr, ByVal dwItem2 As IntPtr)
    End Sub
    'Desktop refresh
    Const SHCNE_ASSOCCHANGED = &H8000000
    Const SHCNF_IDLIST = &H0

    ' إنشاء مهمة مع التعريف بعنوان الاجراء الذي سينفذه
    Private thrd As New Threading.Thread(AddressOf thrdTask)

    'تحديد زمن الانتظار بالثوان
    Dim waitseconds As Integer = 10

    ' تعريفات في بداية التشغيل
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        ' إلغاء فحص تضارب المهام
        Control.CheckForIllegalCrossThreadCalls = False

        ' عمل المخمة في الخلفية
        thrd.IsBackground = True

        ' بدء المهمة
        thrd.Start()

    End Sub

    ' إجراء المهمة
    Private Sub thrdTask()

        ' تحديد قيم البروقرسبار
        Me.ProgressBar1.Maximum = waitseconds
        Me.ProgressBar1.Value = waitseconds

        ' إنشاء مؤقت
        Dim sw As New Stopwatch()

        ' بدء المؤقت
        sw.Start()

        ' حلقة لا تنتهي إلا بإنهاء البرنامج
        Do
            ' متغير يحتوي قيمة الثوان الحالية في المؤقت
            Dim elapsedSeconds As Integer = sw.Elapsed.Seconds

            ' تعيين قيمة مؤشر البروقرسبار
            Me.ProgressBar1.Value = Math.Abs(waitseconds - elapsedSeconds)

            ' عندما ثوان المؤقت للزمن المحدد
            If elapsedSeconds >= waitseconds Then

                ' تحديث سطخ المكتب
                SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, IntPtr.Zero, IntPtr.Zero)

                ' إعادة المؤقت إلى البداية
                sw.Reset()

                ' بدء المؤقت من جديد
                sw.Start()

            End If

            ' تجميد المهمة لبعض الوقت لعدم إشغال المعالج على أن لا تزيد عن 1000
            Threading.Thread.Sleep(300)

        Loop

    End Sub

End Class

.....
الرد }}}}
تم الشكر بواسطة:
#6
Smile 
السلام عليكم ..
أخي الكريم .. كلما جعلت الكود أبسط .. كلما واجهتك مشاكل أقل Smile ..

الآن لديك كود للتحديث .. و تريد تكراره كل 10 ثوان .. و زر لتفعيل و إيقاف التحديث ..
ببساطة .. ما دام لديك كود و تريد تكراره .. إذن تستخدم التايمر ،
بعد إدراج التايمر في الفورم قم بالضغط عليه مرتين و إضافة كود التحديث بداخله ،
قم بتغيير قيمة خاصية interval في خصائص التايمر إلى المدة التي تريد من خلالها تكرار الكود ، لكن تذكر : الوقت في هذه الخاصية بوحدة المللي ثانية ، و الثانية عبارة عن 1000 مللي ثانية ، أي للتحويل من الثانية للمللي ثانية نضرب في 1000
و في هذه الحالة : 10 ثوان * 1000 = 10000 مللي ثانية ، اذن نكتب 10000 في خاصية الـ interval
الآن باقي تفعيل التايمر .. إما أن تغير خاصية enabled إلى true في الفورم ، و عندها عندما تقوم بتشغيل البرنامج يعمل التايمر و عند إيقاف البرنامج يتوقف التايمر ، أو تتكرها false كما هي و تضيف زرّين في الفورم ، واحد للتفعيل و الآخر للإيقاف ، أو تضيف زر واحد يقوم بالخاصيتين عن طريق الدالة if للتحقق من حالة التايمر ثم يقوم بعكسها ، إلّي يعجبك Big Grin
و معلش ع الإطالة بس بحب التفصيل و إعطاء المعلومة كاملة Big Grin
رطّب لسانك و قلبك بذكر الله Smile
سبحان الله و الحمد لله و لا إله إلا الله و الله أكبر
سبحان الله و بحمده .. سبحان الله العظيم
اللهم صل و بارك على محمد صلى الله عليه و سلّم

==============
معاً لإثراء المحتوى العربي

الرد }}}}
تم الشكر بواسطة:
#7
والله نورتوا بالردودو وشكرا لكم على المشاركة واالردود والمساعدة هههههههههههههههههههههه والله مايكفي كيف اشكركم
hassan
AHMED COOL 96
vbnet

تسلمولي كلكم ....دمتم في رعاية الله وحفظه
الرد }}}}
تم الشكر بواسطة:
#8
و لا يهمك أخي الكريم Smile .. الله يسلمك
دعوة بالخير في ظهر الغيب تكفي Smile
رطّب لسانك و قلبك بذكر الله Smile
سبحان الله و الحمد لله و لا إله إلا الله و الله أكبر
سبحان الله و بحمده .. سبحان الله العظيم
اللهم صل و بارك على محمد صلى الله عليه و سلّم

==============
معاً لإثراء المحتوى العربي

الرد }}}}
تم الشكر بواسطة: hitman48
#9
(16-10-14, 05:37 PM)hitman48 كتب : والله نورتوا بالردودو وشكرا لكم على  المشاركة واالردود والمساعدة هههههههههههههههههههههه والله مايكفي كيف اشكركم
hassan
AHMED COOL 96
vbnet

تسلمولي كلكم  ....دمتم في رعاية الله وحفظه

هذا واجب علينه ههههههههه
الرد }}}}
تم الشكر بواسطة: hitman48


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] مشكلة عند عمل تحديث للبيانات Asmaa adel 3 79 27-11-16, 03:56 PM
آخر رد: Adrees
  [VB.NET] كيفية عمل كود ب vb.net يعمل على تحديث جميع السجلات في الداتا بيز بشرط معين thevirus 2 127 24-10-16, 06:45 AM
آخر رد: thevirus
  [سؤال] رجاء المساعدة البرنامج لا يعمل تحديث للبيانات Asmaa adel 3 163 16-10-16, 09:48 AM
آخر رد: Asmaa adel
  [VB.NET] اريد تحديث برنامجي من عن بعد medoddd 1 157 27-08-16, 12:21 PM
آخر رد: سعود
  [سؤال] كيف اتخلص من هذه الرسالة برمجيا ابو روضة 0 57 19-08-16, 12:10 PM
آخر رد: ابو روضة
  تحديث البيانات في الكريستال ريبورت محمد خلف زكي 0 108 06-08-16, 10:16 PM
آخر رد: محمد خلف زكي
  التحكم في طول التقرير برمجيا Reportviewer sniperjawadino 9 270 17-07-16, 04:03 AM
آخر رد: sniperjawadino
  [VB.NET] حدثت مشكلة اثناء تحديث فيجوال بيسك 0theghost0 4 372 13-04-16, 07:21 AM
آخر رد: 0theghost0
  [VB.NET] مشكلة فى تحديث حقل اداة DataGridView الماجيك مسعد 18 596 09-04-16, 06:31 PM
آخر رد: الماجيك مسعد
  ارجو المساعدة بخصوص تحديث جدول بالبيانات عن طريق جدول اخر رامي الامير 3 205 02-04-16, 02:00 AM
آخر رد: نور الدين وليد

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم