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

كيف اعرف ان النافذة الفعالة هي متصفح انترنت اولا

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

بسم الله الرحمن الرحيم

مرحبا جميعا

لا ادري

في احد البرامج الشخصية التي اقوم بها

احتجت لان اعرف هل اليوزر الحالي يفتح صفحة انترنت او لا

الا ان الحيرة انتابتني ومنذ يومين وانا احاول وافكر ولكن بلا جدوى

فهل هنالك حل يا ترى ؟؟

علما بانه يفضل معرفة ذلك بالنسبة لكل المتصفحات

يعني اعرف هل هناك صفحة انترنت ولا لأ

باختلاف نوع المتصفح

اما اذا كان هذا السؤال صعب

فيكفيني بالنسبة لمتصفح الوندوز العادي

في انتظار مساعدتكم الكريمة

وبالتوفيق ^_^

#2

أحصل على الـ Class Name بتاعة النافذة النشطة و قارنه بالـ Class Names بتاعه أشهر المتصفحات , لكن دى مش طريقة فعالة 100%.

تم تعديل هذه المشاركة بواسطة msayed2004 في 10 يوليو 2007 في 18:53

#3

بسم الله الرحمن الرحيم

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

اقتباس
كيف اعرف ان النافذة الفعالة هي متصفح انترنت اولا, سؤال بات يحيرني

إذا عرفت مقبض النافذة hwnd عمل ما تريد من خلال الدالة GetClassName الموجودة في مكتبة user32

إن إن لم تصل لشئ أخبرني

ادعو لي بالهداية فأنا أحتاج هذا الدعاء بشدة

منتدى تصميم التطبيقات (و يشمل نظم التشغيل) و تعريبها. <<<<<<

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

بعض ردودي ومشاراكاتي في المنتدى:

1- هل تريد التحكم بجهازك كأنك محترف, ( إذاً تعال معي وتعلم الرجستري Registry ).

...|-->> فكرة عامة عن الرجستري وكيفية التعامل معه ( رقم المشاركة 1 - 4 )

...|-->> كتابة ملف رجستري

...|-->> تشغيل الرجستري دون رسائل( في الخفاء )

...|-->> بعض التحكمات التي يقدمها الرجستري

...|-->>=>> إيقاف عمل Ctrl+Alt+delete ( Task Manager )

...|-->>=>> إخفاء قائمة ملف file وبذلك لن ترى قائمة file

...|........... في مشاركة أخرى >> حتى ولو قمت بالضغط على أي ملف أو مجلد بزر الفأرة الأيمن

...|-->>=>> لإيقاف وإخفاء عمل البحث Find من على الجهاز

...|-->> بعض المعلومات التي يقدمها الرجستري

...|-->>=>> معرفة الأجهزة المتصلة بالـIDE ورقم السريال الخاص لكل جهاز

...|-->> من أحسن مواقع الرجستري

...|-->>=>> http://technet2.microsoft.com/WindowsServe...3.mspx?mfr=true

منتدى مبرمجي لغة Microsoft Visual Basic <<<<<<

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

برامج من صنعي:

1- لعبة (من صنعي ), جربها وقول رأيك

2- ساعة حائط, من صنعي

بعض ردودي ومشاراكاتي في المنتدى:

1- طريقتان لفتح ملف معين وليكن بامتداد SWF ببرنامجك [ الطريقة الأولى - الطرقة الثانية ]

2- هل تريد ألا يتحكم أحد في الجهاز غيرك؟

3- كود ايقاف عمل زر الاغلاق x بزاوية الفورم

4- عرض صورة متحركة بالكود , أي بدون استخدام أدوات

5- اجعل الـComboBox [ تنسدل - لما تكتب فيا تنسدل وتظهر الاسماء التى تبدأ بالحرف اللي كتبته فى الكومبو ]

6- إنشاء مكون أثناء تشغيل البرنامج ثم إدخاله تحت نطاق مكون آخر مثلاً إدخاله داخل نطاق microsoft tabbed dialog control

أسئلتي في المنتدى التي تم الإجابة عليها:

1- كيف يمكن قراءة الإشارات الصوتية الخارجة من الميكروفون أو السماعات ( لرسمها أو العبث بها ) ؟ أرجو المزيد من الردود ...

2- إيقاف عمل الرجستري

أسئلتي في المنتدى التي لم يتم الإجابة عليها:

اقتباس
ردك يعطي حافذ للإجابة على أسئلتك
#4
msayed2004 كتب:
أحصل على الـ Class Name بتاعة النافذة النشطة و قارنه بالـ Class Names بتاعه أشهر المتصفحات , لكن دى مش طريقة فعالة 100%.

اهلا اخي الكريم

وشكرا جزيلا لردك السريع

بخصوص Class Name يبدوا انها طريقة جميلة وسلسة برغم انها حقا غير فعالة

ولكن المتصفحات المعروفة يمكن حصرها

المشكلة هي في نفس آلية كتابة الكود

هل ممكن مثال لمتصفح الوندوز

وشكرا جزيلا سلفا ^_^

ياسر جمال كتب:
بسم الله الرحمن الرحيم

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

إذا عرفت مقبض النافذة hwnd عمل ما تريد من خلال الدالة GetClassName الموجودة في مكتبة user32

إن إن لم تصل لشئ أخبرني

مممممم

من اكبر السيئات انني لم اتعلم API حتى الآن وذلك لانشغالي في تعلم تصميم المواقع وبرمجتها نوعا ما

لا ادري

هل من الممكن ان تشردني اكثر

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

بالتوفيق ^_^

#5
Option Explicit
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal strClassName As String, ByVal nMaxCount As Long) As Long
Private Const IEClassName As String = "IEFrame"
Private Const FirefoxClassName As String = "MozillaUIWindowClass"

Private Sub tmrDetectIB_Timer()
Dim strClassName As String
Dim Ret As Long
strClassName = Space(256)
Ret = GetClassName(GetForegroundWindow, strClassName, 256)
strClassName = Left$(strClassName, Ret)
If strClassName = IEClassName Or strClassName = FirefoxClassName Then Beep
End Sub

بأعتبار أن tmrDetectIB هو Timer خاصية الـ Interval له 100 مثلا.

تم تعديل هذه المشاركة بواسطة msayed2004 في 10 يوليو 2007 في 21:10

#6
msayed2004 كتب:
Option Explicit
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal strClassName As String, ByVal nMaxCount As Long) As Long
Private Const IEClassName As String = "IEFrame"
Private Const FirefoxClassName As String = "MozillaUIWindowClass"

Private Sub tmrDetectIB_Timer()
Dim strClassName As String
Dim Ret As Long
strClassName = Space(256)
Ret = GetClassName(GetForegroundWindow, strClassName, 256)
strClassName = Left$(strClassName, Ret)
If strClassName = IEClassName Or strClassName = FirefoxClassName Then Beep
End Sub

بأعتبار أن tmrDetectIB هو Timer خاصية الـ Interval له 100 مثلا.

اهلا بك اخي الكريم مجددا

وشكرا جزيلا للمساعدة

ولكن لا ادري

لم ينفع معي الكود

حاولت حاولت التعديل من بالكود لجعل جملة if ذات علاقة بمتصفح الوندوز العادي ولكن بلا فائدة

كل ما اريده هم مثلا ظهور الصوت beep عندما تكون النافذة الفعالة من قبل المستخدم هي صفحة انترنت ولنقل متصفح الوندوز فقط

اعذرني

فيبدوا انني غبي بعض الشي

ويبدوا انني اثقلت على حضرتك

ولكن اتمنى ان تساعدني مجددا

بالتوفيق ^_^

#7

تقصد ايه بمتصفح الويندوز ؟

الـ Internet Explorer ام الـ Windows Explorer ؟

#8

اهلا مجددا

بالتاكيد اقصد

Internet Explorer

حتى انني جربت تصغير قيمة التايمر لحد 25 وبلا فائدة

لا ادري ما السبب

في انتظارك

وشكرا جزيلا ^_^

#9

بسم الله الرحمن الرحيم

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

جزاك الله كل خير أخي الكريمmsayed2004 على كل ما تقدمه

أعتقد أن الخطأ هو إصدار Internet Explorer لديك والله أعلم

ما هو الإصدار الذي لديك

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

إن احتجت أي شئ فأنا معك

تم تعديل هذه المشاركة بواسطة ياسر جمال في 10 يوليو 2007 في 22:50

ادعو لي بالهداية فأنا أحتاج هذا الدعاء بشدة

منتدى تصميم التطبيقات (و يشمل نظم التشغيل) و تعريبها. <<<<<<

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

بعض ردودي ومشاراكاتي في المنتدى:

1- هل تريد التحكم بجهازك كأنك محترف, ( إذاً تعال معي وتعلم الرجستري Registry ).

...|-->> فكرة عامة عن الرجستري وكيفية التعامل معه ( رقم المشاركة 1 - 4 )

...|-->> كتابة ملف رجستري

...|-->> تشغيل الرجستري دون رسائل( في الخفاء )

...|-->> بعض التحكمات التي يقدمها الرجستري

...|-->>=>> إيقاف عمل Ctrl+Alt+delete ( Task Manager )

...|-->>=>> إخفاء قائمة ملف file وبذلك لن ترى قائمة file

...|........... في مشاركة أخرى >> حتى ولو قمت بالضغط على أي ملف أو مجلد بزر الفأرة الأيمن

...|-->>=>> لإيقاف وإخفاء عمل البحث Find من على الجهاز

...|-->> بعض المعلومات التي يقدمها الرجستري

...|-->>=>> معرفة الأجهزة المتصلة بالـIDE ورقم السريال الخاص لكل جهاز

...|-->> من أحسن مواقع الرجستري

...|-->>=>> http://technet2.microsoft.com/WindowsServe...3.mspx?mfr=true

منتدى مبرمجي لغة Microsoft Visual Basic <<<<<<

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

برامج من صنعي:

1- لعبة (من صنعي ), جربها وقول رأيك

2- ساعة حائط, من صنعي

بعض ردودي ومشاراكاتي في المنتدى:

1- طريقتان لفتح ملف معين وليكن بامتداد SWF ببرنامجك [ الطريقة الأولى - الطرقة الثانية ]

2- هل تريد ألا يتحكم أحد في الجهاز غيرك؟

3- كود ايقاف عمل زر الاغلاق x بزاوية الفورم

4- عرض صورة متحركة بالكود , أي بدون استخدام أدوات

5- اجعل الـComboBox [ تنسدل - لما تكتب فيا تنسدل وتظهر الاسماء التى تبدأ بالحرف اللي كتبته فى الكومبو ]

6- إنشاء مكون أثناء تشغيل البرنامج ثم إدخاله تحت نطاق مكون آخر مثلاً إدخاله داخل نطاق microsoft tabbed dialog control

أسئلتي في المنتدى التي تم الإجابة عليها:

1- كيف يمكن قراءة الإشارات الصوتية الخارجة من الميكروفون أو السماعات ( لرسمها أو العبث بها ) ؟ أرجو المزيد من الردود ...

2- إيقاف عمل الرجستري

أسئلتي في المنتدى التي لم يتم الإجابة عليها:

اقتباس
ردك يعطي حافذ للإجابة على أسئلتك
#10

Beep مجرد علامة على المكان اللى أنت تكمل منه.

-------------------------------------

المثال بتاعى ينفع مع كل من IE 6 و IE 7 و ممكن أجربه مع IE5

عموما ممكن تحط Cls و بعدها تعمل Print للـ Classname على الـ Form و تشوفلنا أسم الـ Classname عندك ايه ؟!

#11
ياسر جمال كتب:
بسم الله الرحمن الرحيم

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

جزاك الله كل خير أخي الكريمmsayed2004 على كل ما تقدمه

أعتقد أن الخطأ هو إصدار Internet Explorer لديك والله أعلم

ما هو الإصدار الذي لديك

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

إن احتجت أي شئ فأنا معك

ممممممم

اهلا بك اخي الكريم

وشكرا جزيلا للمداخلة الجميلة

بخصوص beep فحقا اكتشفت انها مع السرعة لا تعمل

ويبدوا انها هي من من جعلني اظن ان هناك خطأ

جربت استبدالها بجملة طباعة الا انني كنت اكتشف انني حينما اذهب للمتصفح واعاود تكون الجملة قد مسحت

جربت تصغير الشاشة ووجدت فعلا الجملة موجودة

ولكي اتاكد اكثر وضعت بدل امر الطباعة msgbox وهذا الذي جعلني موقعنا بانني ان الشخص المخطىء

اعاود شكري الجزيل لك

وباذن الله حلت المشكلة الاكثر تعقيدا بالنسبة لي حاليا

msayed2004 كتب:
Beep مجرد علامة على المكان اللى أنت تكمل منه.

-------------------------------------

المثال بتاعى ينفع مع كل من IE 6 و IE 7 و ممكن أجربه مع IE5

عموما ممكن تحط Cls و بعدها تعمل Print للـ Classname على الـ Form و تشوفلنا أسم الـ Classname عندك ايه ؟!

اهلا اخي الكريم مجددا

حقا انا خجلان منك تعبتك وآخر شيء طلع الخطأ مني

اكرر شكري الجزيل لك

والله يكثر من امثالك يا رب

بالتوفيق ^_^

#12

يعنى المشكلة اتحلت ولا لا

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#13

مرحبا مجددا

واهلا بك اخي حريف برمجة

نعم المشكلة انحلت

ولكن وقعت بمشكلة مشابهة

وهي انني بت احتاج ايضا للدالة التي تشير الى البرنامج نفسه

حيث انني ارفت الكود الاول بعملية اخفاء واظهار للبرنامج

المشكلة هي حينما يظهر البرنامج وذلك عند فتح صفحة انترنت وهذا هو ما طلبته تماما

الى حد هنا كل شيء كويس

المشكلة هي انه عندما اضغط على الفورم يختفي البرنامج

جربت استخدام التايمرز في محاولة حل المشكلة ولكن بلا جدوى

فما هو الـ ClassName الخاص بالبرامج التي يتم صنعها من VB6

شكرا جزيلا

وفي انتظار الحل

بالتوفيق

#14

ThunderMDIForm للـ MDI Forms

و

ThunderFormDC للـ Forms العادية.

#15

اهلا اخي مجددا

لم تنفع الطرقة

ففي اول مرة ظهر لي رسالة خطأ

عملت على تعريف الكلاس في منطقة التعريفات بعدة طرقة

كان يعمل البرنامج ولكن من دون تنفيذ الكود

على كل قد عوضت عن ذلك بطريقة اخرى

وهي تؤدي الغرض تقريبا

لا ادري اذا بكون غلبتك هيك

ولكن هناك سؤال اخر

كيف يمكنني معرفة المكان الذي يتصفحه الزائر الآن

يعني هو باي صفحة الآن

مثلا الآن انا في الصفحة

/index.ph...32443&st=10

فكيف اعرف ذلك

واسف جدا على الازعاج

شكرا جزيلا سلفا

وبالتوفيق

#16

هو أنا مش عارف ايه مشكلتك الحالية لأن مش واضح حاجة من كلامك !

بالنسبة لمعرفة العنواين اللى فى المتصفحات فبتتم عن طريق التخاطب معها بالـ DDE , فى مثال أو 2 على موقع PSC عن كده.

#17

اهلا اخوي

عارف اني غلبتك

الي كنت بحكي فيه

هو انني اريد مكان الزائر الحالي

يعني مش اسم الموقع الي هو فيه

لأ بل العنوان الالكتروني

او بتعبير مختصر

الـ Address الي هو فيه حاليا

اتمنى تكون فهمتني

واسف على الازعاج مجددا

#18

أبحث بـ PSC كما ذكرت.

و ما الفرق بين عنوان الموقع و العنوان الألكترونى :rolleyes: .

#19

اهلا اخي مجددا

لا ادري ولكن انا حبيت اوضح ليس الا

على كل شكرا جزيلا للمساعدة

وتقريبا انحلت معظم المشاكل

خالص التحية والاحترام

وبالتوفيق ^_^

#20

في الحقيقة من أسئلة الأخ تذكرت مشروع قمت به من قبل يقوم بعرض الصفحات المفتوحة من قبل مستخدم بواسطة الوينسوك

يمكن البحث عن عنوان الموقع (لان عنوان النافذة سيتغير ولا يصبح هو نفسه الURL) باستخراج المقبض للنوافذ الفرعية في المتصفح الحالي وارسال رسالة باستخدام WM_GETTEXT طبعا لازم نتأكد أن النافذة الفرعية CLASSNAM تاعها هو "Edit" ومن ثم يمكن قراءة العنوان

والله أعلم

#21
اقتباس
يمكن البحث عن عنوان الموقع (لان عنوان النافذة سيتغير ولا يصبح هو نفسه الURL) باستخراج المقبض للنوافذ الفرعية في المتصفح الحالي وارسال رسالة باستخدام WM_GETTEXT طبعا لازم نتأكد أن النافذة الفرعية CLASSNAM تاعها هو "Edit" ومن ثم يمكن قراءة العنوان
عنوان النافذة سيحتوى على الـ Title الخاص بالصفحة فكيف نستفيد منه ؟!
#22

في الحالة التي نحن فيها فنحن سبحث عن النوافذ الفرعية الموجودة في النافذة النشطة بعد ان تأكدنا انها لمتصفح انترنت و استخراج مقبضها

يعني عنوان النافذة لا يعنينا

نستعمل EnumChildWindows باسناد المقبض المتحصل عليه ونبحث عن نافذة فرعية الكلاس نايم بتاعها edit والتي تعبر عن الADDRESS TEXT الموجودة في المتصفح

عنوان الصفحة يمكن الاستفادة منه في حالة مااذا أردنا عمل بحث داخل النوافذ الموجودة كلها على سطح المكتب بالبحث باستمعال مقبض سطح المكتب GetDesktopWindow

والبحث عن النوافذ الفرعية التي يكون عنوانها ينتهي ب INTERNET EXPLORER أو MOZILA FIREFOX أو ..

ومن ثم قراءة التكست الموجود بعد البحث عن مكانه

#23

فكرة جميلة حقا

ولكن ما السبيل لتنفيذها برمجيا

يعني معرفة ان العنوان ينتهي بـ INTERNET EXPLORER أو MOZILA FIREFOX

امر سهل تقريبا

ولكن كيف نعرف العنوان نفسه

بالتوفيق

#24

راجع : ممكن استشارة

#25

فقط أرفت محاولة بسيطة لكنها تخص الIE

شكرا أخ أحمد على الروابط خاصة الخاصة بالfirefox لاني لم أجد كلاس للنوافذ الفرعية باسم edit في الfirefox :wacko:

بالتوفيق للجميع

sample.zip

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

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

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

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

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

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