السلام عليكم ورحمة الله وبركاته
اخواني المبرمجين كلنا نعرف تشنج الكمبيوتر ومشاكله

ومن بين تجنب هذا المشكل هي مراقبة الرام وتقليل البرامج الناشطة او مراقبة البروسيسر

وكذلك عمل تحديث لسطح المكتب 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)
والمشكلة التي وجهتها هي التكرار ..هل من حل؟ بغض النظر عن استعمالي لي طريقة التايمر والبروقرس بار وعيبها الوحيد هي نهاية العمل
(16-10-14, 03:47 AM)hitman48 كتب : [ -> ]السلام عليكم ورحمة الله وبركاته
اخواني المبرمجين كلنا نعرف تشنج الكمبيوتر ومشاكله
ومن بين تجنب هذا المشكل هي مراقبة الرام وتقليل البرامج الناشطة او مراقبة البروسيسر
وكذلك عمل تحديث لسطح المكتب 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)
والمشكلة التي وجهتها هي التكرار ..هل من حل؟ بغض النظر عن استعمالي لي طريقة التايمر والبروقرس بار وعيبها الوحيد هي نهاية العمل
اتوقع ان التايمر هي المسئولة على هذا الشي واحسن شي التايمر | اذا اعتدمت على شي ثاني اتوقع يهنق البرنامج بمعنه يعلق
مشكور على المرور اخي ...تسلم
(16-10-14, 04:24 AM)hitman48 كتب : [ -> ]مشكور على المرور اخي ...تسلم
الله يسلمك وهذا الكود بدل التايمر
PHP كود :
For i = 0 To 100
' هنا اكتب امر الرفرش
'وهذا كود السليب
System.Threading.Thread.Sleep(10000)
Next
قمنا في هذا الكود عمل امر انه يقوم بعمل 100 مره فانت تقدر تغير
بعدين نحط تحته كود الرفرش تبع الدكس توب
وحطيت لك كود يسوي سليب 10 ثواني ويعيد الكود بس
بس انصحك في التايمر افضل
وشكرا
.....
جرب التالي (أضف 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
.....
والله نورتوا بالردودو وشكرا لكم على المشاركة واالردود والمساعدة هههههههههههههههههههههه والله مايكفي كيف اشكركم
hassan
AHMED COOL 96
vbnet
تسلمولي كلكم ....دمتم في رعاية الله وحفظه
و لا يهمك أخي الكريم

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