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

احتاج مساعدة .. مشكلة مع .. WebBrowser

مغلق
بدأه delphi في 22 يونيو 2003 · 13 رد · 2,726 مشاهدة · في أرشيف منتدى الدلفي
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

يا اخواني اليوم انا اليوم محتاج لكم تشوفون لي حل مع مشكلتي

المشكلة :

في حالة الأوف لاين تطلع الصفحة البيضاء المعروفة ... وانا لا اريدها

ان تضهر ....اريد ان اخفيها ...;)

توضيح اكثر :

عندي فورم علية بوتن + ويب براوزر ..لما اضغط على البوتن يفتح

على صفحة محددة ..استخدمت :

WebBrowser1.Navigate(WideString('http://www.yahoo.com/'));

وشغال اوكية ...لكن لما انفذ وانا اوف لاين تضهر لي الصفحة البيضاء الغبية ..:D

وانا ما ابيها تضهر

المطلوب :

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

او يعطي مسج بأنة عير ممكن او اي طريقة المهم تختفي الصفحة البيضا .. :)

ومن يحب يحاول يجرب عندة المثال مرفق

وسلااااااااااااااااااامتكم

offline.zip

#2

هلا بالدلفي .. هلقانا اول شي خطرلي لوانو بستعرض نوع الاتصال .. ولو كان

الناتج صفر .. معناها مافي اتصال وبنفز عملة مثلا اظهار تكست فارغ

وبعدين قلت لو منعد يعني منشوف عدد الاتصالات ولو كان الناتج صفر ,,>>

مافي اتصال >> منفز اي عمل مثل اظهار صورة او تكست فارغ

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

بس هلق خطرلي خاطر تاني حجربه ولو نفع حكتبهولك

سلااامات

noofconnections.zip

#3

اه مشي الحال .. هلق خطرلي طريقة تانية بعتقد اسهل ..

الفكرة كالتالي

لما الواحد بيكون متصل بالنت بيكون له رقم اي بي تمام

ولما ما بتكون متصل بالنت بيكون ال الي بي بتاعك هوي

127.0.0.1

تمام .. معناها احنا منخلي البرنامج يكشف عند الاقلاع على رقم الاي بي ..

لو كان لا يساوي 127.0.0.1 بيطلب الصفحة الانترنت المحددة

ولو كان ال الي بي = 127.0.0.1 بينفز عمل اخر ..

الرفق هوي برنامج بسيط بيعطي الي بي ..

تحياتي الحارة

ipnohus.zip

#4

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

طرق عديده من الاخ Dr_HUS

وطبعا الطريق السهله التي تؤدي الى نفس نتيجه الطريق الصعبه

تدل على الذكاء

تحيه الى Dr_HUS

شكرا على فكره ال (اه مشي الحال)

وهناك برنامج للاخ sum حول معرفه حاله الموديم في

http://www.arabteam2000.com/vb/showthread....%E1%E3%E6%CF%E3

ولكن ارجو من الاخوه sum & dr_hus

شرح برنامجيهما بالتفصيل اذا امكن ذلك مع الشكر الكثير

:confused:

saleh2003

#5

100%...... (yess) ......:D

ياسلاااااااااااام عليك يادكتور ....من اليوم انت بروفوسور ...;)

الـــــــــــــــــــــ1000ــــــــــــــــــــــف شكر لك

وطبعآ الأستاذ صالح مشمول بالشكر ...:D

#6

اخي صالح مشكور .. على ردك .. و بخصوص الشرح اقلك

انا للاسف غير قادر على الشرح بسبب ..

انا مش دارس كمبيوتر -للاسف الشديد- والبرمجة عندي هواية مش اكتر .. يعني لو شرحت اي كود حشرحه بالعامية بالبلدي يعني .. وهذا مش وارد لان حضطر استخدم مصطلحات غير دقيقة .. يعني انا بسمي الاشياء على كيفي ..

وهذا بالتالي انتقاص للمادة العلمية وبالتالي الخبراء واصحاب الصنعة (يعني الي دارسين البرمجة كدراسة ) حيضحكو على :D:D:D وانا مش مستعد حط نفسي بهالالموقف بنوب .. :D:D:D

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

اخي دلفي .. اهم شي يكون الكود بيوفي بالغرض واتكون اتحلت المشكلة

أما بعد .......................

كل الاكواد هذه سواء الي انا حطيتهم او كود الاخ سوم اكواد لا تروي ظمآن ..

اول شي كود الاخ سوم .. كود الاخ سوم بيدرس حالة المودم .. يعني لو الجهاز موصول على شبكة داخلية مثلا LAN والجهاز بياخد الانترنت من الشبكة LAN

حيكون الكود غير صالح عشان حيكون في انترنت .. والربنامج بتاعنا فهمان انو مافي انترنت

اما عشان الكود الثاني بتاعي بتاع الي بي ..

كمان نفس المشكلة .. عشان لو كان الجهاز موصول على LAN >>>> الجخاز له اي بي .. لكن اي بي داخلي .. (وليس بالضرورة يكون ال LAN طالعة على الانترنت )

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

ويحاول طلب الصفحة وحيفشل عشان مافي انترنت والي بي داخلي فقط..

بيفضل الاقرب للصحة هوي الكود الاول ... الى بيسرد عدد الاتصالات بغد النظر لو كانت كرت شبكة او مودم ..

لكن طبعا نفس المشكلة حتفضل عشان ممكن فعلا يكون في اتصال مع جهاز اخر .. ولا يوجد انترنت ..

هلق انا بفكر كنت بطريقة غير .. لو خلينا البرنامج مع الاقلاع يعمل

PING

على الموقع المطلوب .. لو الموقع استجاب .. بينفز الامر الامراد ولو الموقع لم يستجب .. يعني اعطى

Time out

بينفز امر اخر .. اي شيئ تاني

اعتقد انه حيكون هذه الطريقة الامثل في هذه الحالة على الاطلاق

اولا .. حنتاكد من الاتصال بالنت بغد النظر عن طبيعة التصال

ثانيا وهو الاهم .. في حال ان الموقع غير موجود او الغي .. بيتنفز الامر الثاني .. والي هو مثلا (تعزر الاتصال بالموقع )

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

http://www.arabteam2000.com

تمام .. وكلشي مية مية .. ونشرت برنامجك وكلشي عال اعال .. وبعد سنة مثلا راح موقع الفيق العربي .. اغلق او اتغير العنوان بتاعه لاي سبب ..

بالتالي برنامجك حيظهر الصفحة المشؤومة البيضاء على الرغم من وجود النت ..

لكن لو احنا عملنا

Ping = اتاكدنا من وجود الموقع ..

اعتقد والله اعلم انه بعد هذا الكلام في مناقشة هذه الحالة على التحديد مافي كلام ..

انا حجرب انفز هزه الفكرو ولو نجحت معي ححطلكم كيف .. (الكود يعني)

تحياتي الحارة

(f)

#7

نعم يا دكتور انحلت مشكلتي ولله الحمد ... فكودك خدمنى كثير ... ويفي

بالغرض وزيادة

... اجل تجد صعوبة .. يا دكتور في الشرح ....:D

صدقني شرحرك واضح جدآ ... وافضل من شرح ناس كثير ... وتعرف

يا دكتور انا اعاني من نفس المشكلة ... لما ادخل في نقاش مع احد

لا اجيد استخدام المصطلحات العلمية ..لأن البرمجة عندي هواية وليست

دراسة ..."برمجة شوارع"..:D ...على وزن لغة شوارع ... "E" واقصد الذين

تعلمو اللغة الأنجليزية بدون دراسة بل بالممارسة والأحتحاك في الشوارع ..;)

اما بخصوص طريقة البنق على الموقع ...فهذة طريقة ذكية

واعتقد كما قلت هي الحل الأمثل بدون شك ... وانا في انتضار

الكود على احر من الجمر ... فموضوع البنق راح يعمل عجايب ...:D

وإن شاء الله يكون الكود واضح .. فأنا اجد صعوبة في الكودنق ..وبالكاد

استطيع ان اعدل علية ...:confused:

الأكيد الله يوفقك يا دكتووووووور

تحيااااااااااااااااتي

#8

يادكتور حبة حبة علينا ... راح تاكل الجو ;)

ما شاء الله عليك افكارك مميزة جدا ومفيدة

#9

ياهلا والله ومرحبا باستاذنا ابو هاني

الدكتور ...صاحب افكار مميزة ..اتفق معاك 100% ..:)

وانت طال عمرك الخير والبركة ...واستاذنا ..ومعلمنا الأول...:)

الأكيد الله يخليكم لنا انتم وكل من يساعد الغير فأنتم مدرستنا الحقيقية ...;)

وبارك الله لكم في علمكم ..(f)

تحيااااااااااتي

#10

منتابع موضوعنا منشان نقفله .. وما يبقا شي ..

كنا اتكلمنا اخيرا انو الحل الامثل هوي انك تعمل بينغ ..

على الاقل برايي انا .. انا بفضل هيك ..

هلق منجي لموضوع البينغ ...

البينغ

Ping

كمان ليه طرق كتير عشان تعمله شي بيعتمد على كمبوننت وشي ما بيعتمد ..

انا عن نفسب بفضل ال NMAP .. وخاصة انو معظم اذا ما كل برامج السكان والبورت سكان والتريسنغ (التعقب) وحتا المشهور منها متل ال SuperScan

مبنية علىيه

لكن يعني ما كلشي بتحبو بينفع .:P. انا بحب الفيراري بس ما معي حقها:(:(

نفس الشي انا بحب ال Nmap بس ما بعرف اتعامل معه بشكل كويس :P:p

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

command.exe

CMD

وانا لما شفت ابو هاني قلت بيني وبين نفسي جيت والله جابك .. عشان

انا خبرتي قليلة عن كيف اقدر ابعت قيم لل command.exe واقرأ منه

باختصار لو شبكنا مع ال CMD فينا نتعامل معه بشكل طبيعي متل لو على الويندوز

مثلا روح على RUN >>> Command >>>Ping www.yahoo.com

وبنفس الوقت ممكن نعمل اي شي اخر متل ال netstat ,arp وصراحة لو اتعلمناها مظبوط حتسهل علينا كتير بكلشي ..

اي الامر سهل جدا وكل توابع امر ping سهله من الكوماند

يعني الي عنده اطلاع كافي يعلمنا .. واحنا ليه شاكرين

منجي للطريقة الاسهل .. هاي عاد اسهل شي .. وبتعتمد على الكمبوننت indy

ICMP

بمعنا اخر .. تحتاج .. ICMP.DLL

وهذي المكتبة موجودة بكل نسخ الويندوز .. مافي اي مشكلة يعني ..

وطريقة عمل البينغ سهلة كتير

افتح الدلفي وجيب عليه

edit,memo,button, و الكمبوننت ICMPCLINT من ال Indy Clint

هلق بال ICMP

بتحط

var

 sTime: string;

begin

 sTime := '=';

 Memo1.Lines.add(Format('%d bytes from %s: icmp_seq=%d ttl=%d time%s%d ms',[AReplyStatus.BytesReceived,

 AReplyStatus.FromIpAddress, AReplyStatus.SequenceId, AReplyStatus.TimeToLive, sTime, AReplyStatus.MsRoundTripTime]));

هادا الي بيقولوله ديفولت .. يعني النظامي وبتبقا عدل بالمخارج براحتك

وبال بوتون بتحط

var

 i: integer;

begin

 IdIcmpClient1.ReceiveTimeout := 1000;     // ÇáæÞÊ ááÑÏ Çáí åíí ÊÈÚ TTL =Time To Live

 IdIcmpClient1.Host := Edit1.Text;

 for i := 1 to 4 do      // ÚÏÏ ãÑÇÊ ÇáÈíäÛ..

   IdIcmpClient1.Ping;

طبعا هون بتعدل بعدد مرات البنغ .. بالتايم اوت .. وفيك طبعا اتضيف ريبيت .. عشان يضل يعمل بينغ على نسق الامر

ping www.yahoo.com -t

بالكوماند ..

اخر ملاحظة:

انو لا تنسا تعين البورت من ال ICMP بال Object inspector

يستحسن تحطه على 80

ولو انو بينفع تحط الي بدك على حسب الحاجة يعني لو حتعمل بينغ لل SMTP بتعطيع ال25

ولل Ftp21 ,pop110 وخلافو ..

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

قبل ال 1024

هادا مستحب دايما .. عشان في كتير سيرفرات ما ترد على البينغ على بورت اعلى من 1024

اخيرا المثال مرفق .. لو للاحطياط ..

تحياتي الحارةةةة

ومع كل حبي

#11

نسينا المثال .. معلش ..

هوي هون

hus_ping.zip

#12

بعتقد واضح انو على حسب الرد بيكون الامر التالي ..

يعني احنا منحط بال OnReply في حال الريبلي = 0.0.0.0

معناها تعزر الارتباط بالموقع لاي سبب كان .. وهيك منفز امر اخر ..

تحياتيييييييييييييييييييي

#13

ماشاء الله عليك يا دكتور

الف شكر لك دكتورنا الغالي ...لقد جربت الطريقة وعملت كما قلت

ونجحت معاي ... وعمل بنق من غير مشاكل ...:D

لكن .. ما عرفت كيف اعمل في OnReplay في حال كان الريبلي0.0.0.0

تنفيذ امراخر مثلأ panel1.show

الأن يا دكتور لما اعمل بنق وانا اوف لاين يطلع لي مسج socket error

واسف على ازعاجك لكن مثلك عارف ...انا في الكودنق = 0 ...:confused:

والله يوفقك يا دكتور و يرزقك فيراري 2003... ;)

تحياااااااااااااااتي

#14

عفوا على تاخيري .. لكن بعت جهازي :D:D وحيكون بالفترة القريبة تواجدي على النت قليل .. بين ما اجيب جهاز اخر ...

بالعموم اخي دلفي ..

في مثال بالDEMO INDY

حول البينغ بعتقد كان PINGCGU مش فاكر اسمه بالظبط .. هوي مثال واضح وفيك تشوف كيف بيكون التفاعل مع الريبلي .. من خلاله

وبالعموم انا اكتبلك الشرح باقرب وقت .. بس الاقي جهاز تحويني :D

سلااااامات

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

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