تقييم الموضوع :
  • 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] تحديث بيانات فى كلاس من جدول سيكوال asdfar1977 6 184 26-02-24, 01:07 AM
آخر رد: asdfar1977
Smile تطبيقي يعمل تمام على ويندوز 10 قبل تحديث الوندوز وبعد التحديث لا يعمل رمضان محمد 2 382 31-10-23, 01:50 PM
آخر رد: رمضان محمد
  [VB.NET] كود تحديث عدة أعمدة AboAlaa 2 293 21-08-23, 09:06 PM
آخر رد: AboAlaa
  [VB.NET] مشكلة في تحديث البيانات Necro 11 1,045 28-05-23, 02:06 AM
آخر رد: Jounior_P
  اقتناص حدث تحديث او حذف او اضافة ملف ابو محمد محمد محمد 6 560 21-04-23, 05:49 PM
آخر رد: ابو محمد محمد محمد
  [VB.NET] خطا عدم تطابق البيانات فى كود تحديث check box فى قاعده بيانات اكسس Asabry 45 a 0 315 18-01-23, 08:21 PM
آخر رد: Asabry 45 a
  [سؤال] تحديث ملف مريض في البرنامج HUNTER25 3 407 15-12-22, 10:29 PM
آخر رد: HUNTER25
  [VB.NET] بطئ تحديث كونترول اثناء استخدام linq الماجيك مسعد 9 1,094 23-10-22, 02:39 PM
آخر رد: الماجيك مسعد
  بالفيديو كيفية عمل تحديث للبرنامج crazykinko 2 841 22-10-22, 12:48 PM
آخر رد: ابو روضة
  [سؤال] تحديث للبرنامج bibo 1 494 22-10-22, 04:03 AM
آخر رد: ابو روضة

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


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