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

[ تمت الإجابة ]إخفاء الأيقونة من شريط العنوان

مغلق
بدأه COMFORT في 22 سبتمبر 2008 · 2 رد · 2,655 مشاهدة · في أرشيف قسم Windows APIs
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

إخواني الكرام أريد أن أقوم بإخافاء الأيقونة من شريط العنوان

وأعتقد أن ذلك عن طريق الـ Hook و لكني لا أعرف كيف أعمل Hook على الـ Title bar

في الـ VB.Net يمكن من الخصائص إزالة الأيقونة و أو عرضها و أعتقد أن هناك دالة API لعمل ذلك

أنا أعمل برنامج صغير باستخدام الـ VB 6 ولكن لا أستطيع إزالة الأيقونة .

المفروض إني أعمل Hook على الـ Title bar وبعدين أبحث داخله على الـ Icon

باستخدام الدالة FindWindowEx صح ؟؟

جزاكم الله خيراً .

تم تعديل هذه المشاركة بواسطة COMFORT في 22 سبتمبر 2008 في 17:20

مواضيع و دروس
الكتابة بعدة ألوان داخل الــ TetxBoxمكتبة الأكوادتحميل الــ Visual Basic Express 2005
تحميل فيجوال بسيك 6أكواد × أكواددروس في الخوارزميات
لتحميل عدة إصدارات من كريستال ريبورتتحميل برنامج Activ Skin 4.3جمل الــ Sql من الألف إلى الياء
معظم المواقع المختصة بالفيجوال بيسيكموقع كويس للأيقوناتمرجع شامل لأدوات ActivX
كيفية نطق الحرف المكتوب شرح عن كيفية إقامة علاقة مع Data Reprot باستخدام الــ DataEnvironment علاقة مع الـ Datareport بدون استخدام DataEnvironment (( شرح ))
كتاب Migrating From DAO to ADOإضافة لـ VB6 بريمج IndenterVB, إضافة لبيئة تطوير فيجوال بيسك 6حوار بينى و بين عضو حول ال winsock , اتمنى ان يعجبكم
Smart Indenter 3.5 لتنسيق الأكواد, هديه لكل الأعضاء السلسلة الدهبية في المواضيع العلمية ، إستغلال الـ Balloons في الـ Windows XP مصفوفات الأدوات Control Arrays افكار وتلميحات ! , لمن افتقدها من أيام الـ VB6.0
جعل خلفية الـ Mid Form تظهر بالكامل خواص الاداة Winsock لربط الاجهزة عن طريق الانترنتكيف يتم عمل تقارير بإستخدام HTML

7.gif
#2

لم أجرب بعد، الفكرة التي تطوف برأسي هي hook على الـ window ومن ثم التقاط WM_SETICON ومعالجتها.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#3

لا انسى تلك الفكرة السخيفة .. نسيت أننا نتعامل مع برنامجنا وليس برنامج آخر فلماذا hook؟ :blush:

Private Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function SetWindowLong Lib "user32.dll" Alias _
	 "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, _
	 ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32.dll" Alias _
	 "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long

Private Const WS_VISIBLE As Long = &H10000000
Private Const WS_EX_DLGMODALFRAME As Long = &H1&
Private Const GWL_STYLE As Long = -16
Private Const GWL_EXSTYLE As Long = -20
Private Const SW_SHOW As Long = 5
Private Const ICON_BIG = 1&
Private Const WM_SETICON = &H80

Private Sub Form_Activate()
Dim Style As Long
Dim exStyle As Long
	SendMessage Me.hwnd, WM_SETICON, ICON_BIG, 0
	Style = GetWindowLong(Me.hwnd, GWL_STYLE)
	Style = Style Xor WS_VISIBLE
	Style = SetWindowLong(Me.hwnd, GWL_STYLE, Style)
	exStyle = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
	exStyle = exStyle Or WS_EX_DLGMODALFRAME
	exStyle = SetWindowLong(Me.hwnd, GWL_EXSTYLE, exStyle)
	ShowWindow Me.hwnd, SW_SHOW
End Sub

تأخرت فقد كانت لا تعمل وبقيت حوالي ساعة أنظر في الأمر ثم تذكرت أنه طالما هناك إمكانية لظهور البرنامج في الـ TaskBar فستظهر الأيقونة الافتراضية مهما حاولت أن أقوم بفعله. لذلك خطوات العمل باختصار هي التالية:

1. تقوم باستخدام SendMessage لإزالة الأيقونة الخاصة بالبرنامج وكأنه لا يستخدم أيقونة أبداً، في هذه الحالة النظام يقوم تلقائياً بوضع أقرب أيقونة افتراضية للنافذة.

2. تقوم بإلغاء ظهور البرنامج في الـ TaskBar فتختفي الأيقونة الأساسية للبرنامج.

3. تقوم بإعطاء البرنامج صفة Dialog Modal Frame فتختفي الأيقونة تماماً.

وهو المطلوب :)

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

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

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

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

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

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

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