الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أريد كود لإخفاء شريط المهام مع ظهوره عند المرور عليه

مغلق
بدأه شوق العلي في 1 أبريل 2007 · 6 رد · 570 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لو سمحتوا أريد كود يقوم بإخفاء شريط المهام بشرط (أن يظهر الشريط عند مرور الماوس عليه ) كما يحدث تماما في الويندوز عندما نعمل إخفاء تلقائي لشريط المهام

علما أنني لدي كود الإخفاء ولكن يخفي الشريط تماما ولا يظهر عند المرور عليه فهل هناك حل؟؟

وكذلك أريد كود إظهاره

#2

ضع الكود التالي في فورم ولا تنسي وضع تيمر فقط

Const SWP_HIDEWINDOW = &H80
Const SWP_SHOWWINDOW = &H40
Private Type POINTAPI
	X As Long
	Y As Long
End Type
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Dim TaskHwnd As Long
Dim pt As POINTAPI
Private Sub Form_Load()
	 Timer1.Interval = 200
	TaskHwnd = FindWindow("Shell_traywnd", vbNullString)
End Sub

Sub ShowTask()
	SetWindowPos TaskHwnd, 0, 0, 0, 0, 0, SWP_SHOWWINDOW
End Sub
Sub HideTask()
	SetWindowPos TaskHwnd, 0, 0, 0, 0, 0, SWP_HIDEWINDOW
End Sub

Private Sub Form_Unload(Cancel As Integer)
 Timer1.Interval = 0
 ShowTask
End Sub

Private Sub Timer1_Timer()
 GetCursorPos pt
 If pt.Y * Screen.TwipsPerPixelY > Screen.Height - 150 Then
	ShowTask
 Else
	HideTask
 End If
End Sub

تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 1 أبريل 2007 في 22:39

#3

جزاك الله خيرا وبارك فيك

#4

للأسف الكود سبب لي مشكله على الفورم عندما أستخدمه وهو أن الأزرار صارت لا تعمل إلا بعد ان أظغط عدة مرات عليها وكذلك أي اداة على الفورم أي كأنه لا يمكنني من العمل على الفورم

وهل يجب ان أضع هذا الكود في كل فورم بالمشروع

مالحل جزاكم الله خيرا

#5

آسف مخدش بالي من أثاره الأخري .. وكتعديل للكود فقط نغير الجزء الخاص بالتيمر

Private Sub Timer1_Timer()
Static Status As Boolean
GetCursorPos pt
If pt.Y * Screen.TwipsPerPixelY > Screen.Height - 150 Then
	ShowTask
	Status = False
Else
	If Not Status Then
	   HideTask
	   Status = True
	End If
End If
End Sub

وذلك لتفادي تكرار كودات إخفاء الشريط بدون داعي وهو مخفي بالفعل وهي التي تسبب تلك المشكلة التي تحدثت عنها

بمعني آخر الكود النهائي سيكون الآتي :

Const SWP_HIDEWINDOW = &H80
Const SWP_SHOWWINDOW = &H40
Private Type POINTAPI
	X As Long
	Y As Long
End Type
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Dim TaskHwnd As Long
Dim pt As POINTAPI
Private Sub Form_Load()
 Timer1.Interval = 300
 TaskHwnd = FindWindow("Shell_traywnd", vbNullString)
End Sub

Sub ShowTask()
	SetWindowPos TaskHwnd, 0, 0, 0, 0, 0, SWP_SHOWWINDOW
End Sub
Sub HideTask()
	SetWindowPos TaskHwnd, 0, 0, 0, 0, 0, SWP_HIDEWINDOW
End Sub

Private Sub Form_Unload(Cancel As Integer)
Timer1.Interval = 0
ShowTask
End Sub

Private Sub Timer1_Timer()
Static Status As Boolean
GetCursorPos pt
If pt.Y * Screen.TwipsPerPixelY > Screen.Height - 150 Then
	ShowTask
	Status = False
Else
	If Not Status Then
	   HideTask
	   Status = True
	End If
End If
End Sub
#6

ولا داعي لوضع الكود سوي في فورم واحد

#7

أثابك الله

سأجربه وأرد لك

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…