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

برنامج إدارة مقهى انترنت بسيط

مغلق
بدأه Aboalnoor-Delphi7 في 20 مايو 2006 · 28 رد · 13,066 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أخوتي في الله في هذا المنتدى الكريم السلام عليكم ورحمة الله وبركاته

أما بعد :

فقد شرعت ( حلوة شرعت هاذي لأني فحل باللغة العربية المهم ) في برمجة برنامج إدارة مقهى انترنت بسيط , ولكن واجهتني بعض المشاكل وهي كالتالي :

1- ايقاف تشغيل الكومبيوتر ( ولا تقولولي أنو الموضوع مكرر لأني جربت كل الأكواد التي أعرفها و الموجودة في المنتدىالتي حصلت عليها من خلال البحث فلم تنجح )

علماً أن الكود ينجح على الـ WinME و الـ Win98 ولكن لايعمل مع الـ WinXP مع العلم أن نظام التشغيل عندي WinXP SE ونسخة الدلفي عندي 2005

ExitWindows(EWX_SHUTDOWN,0);

2- كيف يمكن ايقاف تشغيل جهاز كومبيوتر على الشبكة .

3- كيف يمكن ايقاف تشغيل كافة أجهزة الكومبيوتر الموجودة على الشبكة دفعة واحدة .

4- يوجد في البرنامج موقت لتشغيل البرامج .... كيف يمكن بدء المؤقت عند تشغيل البرنامج تلقائياً وايقافه عند إغلاق البرنامج أيضاً.

ومرفق نسخة من البرنامج

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

Aboalnoor_CofyNet.rar

********************************************************************************

آخر وصايا سيدنا محمد صلى الله عليه وسلم:الصلاة الصلاة وما ملكت أيمانكم

66850879_b6e633000d_m.jpg

هاجر اللذائذ وانبـرى ليثـاً بادغـال الشـرا

بـاع الحيـاة رخيـصـة لله والله اشـتـرى

خذو مني فؤادي وامنحوني سلاحي أمتطي صهو المنون

فإني لم أعش لأذوق ذلاً ولا لأذوب في حضن حنون

موقع الفريق الاسلامي المتحد للبرمجة والإلكترونيات

إيميلي هو:Aboalnoor@maktoob.com

ياهو :adnanalabuo@yahoo.com

هوت ميل:AdnanAlabuo@hotmail.com

مدونتي الخاصة

#2

1)

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

نعم مكرر وليست للمرة الأولى ...

إستخدم ExitWindowsEx

لا بد من وجود صلاحيات لذلك .. كيف؟ راجع المواضيع القديمة فيها أكواد جاهزة ..

لو راجعت MSDN ستجد

Windows NT: To shut down or restart the system, the calling process must use the AdjustTokenPrivileges function to enable the SE_SHUTDOWN_NAME privilege. For more information about security privileges, see Privileges. 
Windows 95: Security privileges are not supported or required.

2&3 :

على ما أظن ان برامج إدارة المقاهي هي عبارة عن server clients ؟ بامكانك ارسال رسالة متعارف عليها بين الـ server والـ clients بحيث يتم عمل ما تريد ...

حاول استخدام الأمر shutdown والذي يمكنك من عمل إعادة تشغيل او إغلاق remote computer ... أظن أنك تحتاج لبعض الإعدادات لعمل ذلك ..

إن نجحت في إستخدامه بامكانك حينها عمل Disassembling لفهم الفكرة والتي في إعتقادي تتم عن طريق الإتصال بين الكمبيوترين (أظن أني كتبت رد من قبل عن هذا الشئ لكن لست أتذكر الطريقة , ساحاول التجربة إن شاء الله ...)

4) أتستخدم Timer لعمل ذلك ؟

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

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#3

السلام عليكم

بالنسبة لـ 1:

shutdown / reboot / logoff Windows 9x/NT/Me/2000/XP

2:

استعمل عناصر الـ indy إرسال أوامر بين تطبيق المخدم و تطبيق الزبون:

دورة في برمجة تطبيقات مخدم-زبون باستخدام Indy

وتستطيع أنت أن تعتمد مجموعة من الأوامر النصية وتختبرها عند تطبيق الزبون لتنفيذ أوامر معينة, منها إيقاف التشغيل.

3:

نفس السابق, فقط أرسل لجميع عناوين الأجهزة التي على الشبكة.

4:

لم أفهم كثيراً المطلوب, هل تقصد تشغيل المؤقت عندما يعمل تطبيق الزبون:

إذا كان كذلك فقط أرسل أمر إلى السيرفر لتشغيل التايمر.

وبالتوفيق ;)

قال تعالى: ((وَمَا أَصَابََكُمْ مِنْ مُصِيبَةٍ فَبمَا كَسَبَتْ أَيْدِيكُمْ وَ يَعْفُو عَنْ كَثِيرٍ)) :.:.: الشورى: الآية 30.

IN ALLAH WE TRUST

:.:.:.:.:.:.:.:.:.:.:.:.:.:

#4

Like Delphi

ما الفرق بين إجابتي وإجابتك :)

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

http://msdn.microsoft.com/library/default....mshutdownex.asp

عليك بقراءة الشرح بتمعن لوجود عدة أشياء من الضروري توافرها

Shutdown.exe التابع للنظام يستدعي تلك الدالة ...

طريقة التواصل بين الـ server والـ client هي الأفضل في حالتك ..

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#5

صباح الخير أخ cipher

اقتباس
ما الفرق بين إجابتي وإجابتك

أنت شرحت الفكرة بشكل عام وأنا دللت إلى الكود :)

-------------------------------------------.

أخي Aboalnoor-Delphi7

اقتباس
فقد شرعت ( حلوة شرعت هاذي لأني فحل باللغة العربية المهم ) في برمجة برنامج إدارة مقهى انترنت بسيط

أتمنى أن تأخذ الموضوع على محمل الجد وتتابع بالبرنامج, عجبتني الفكرة ومنساعدك كلنا إن شاء الله.

والله الموفق ;)

قال تعالى: ((وَمَا أَصَابََكُمْ مِنْ مُصِيبَةٍ فَبمَا كَسَبَتْ أَيْدِيكُمْ وَ يَعْفُو عَنْ كَثِيرٍ)) :.:.: الشورى: الآية 30.

IN ALLAH WE TRUST

:.:.:.:.:.:.:.:.:.:.:.:.:.:

#6

السلام عليكم

تقريبا كل أسئلتك مكررة...

4

هناك برنامجين، برنامج ِClient في كل جهاز

و برنامج Server في الجهاز المتحكم

من المفروض أن Client لا يسمع بإستخدام الجهاز أي يعمل Block له وعند تلقيه أمر من Server يبأ حساب الوقت

عند إرسال أمر بداية الإستعمال يسجل الوقت ليستخدم لا حقا في حساب المدة الزمنية المستهلكة

هل فهمت ؟

d4baa0.gif
#7

أخوتي في الله الأكارم أعتذر عن تأخري.

أما بعد :

اقتباس
أتمنى أن تأخذ الموضوع على محمل الجد وتتابع بالبرنامج, عجبتني الفكرة ومنساعدك كلنا إن شاء الله.

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

اقتباس
لم أفهم كثيراً المطلوب, هل تقصد تشغيل المؤقت عندما يعمل تطبيق الزبون:

إذا كان كذلك فقط أرسل أمر إلى السيرفر لتشغيل التايمر.

يجب أن يعمل المؤقت لحساب الوقت عند تشغيل برنامج ما ولنفرض الدلفي وعند إغلاقه أي إغلاق الدلفي كما في مثالنا هذا يتوقف المؤقت لينتج عندنا زمن العمل على الدلفي.

اقتباس
أتستخدم Timer لعمل ذلك ؟

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

نعم استخدم التايمر . وأما بالنسبة لجعله يعمل مع تشغيل البرنامج فهذا ما أريده.

اقتباس
على ما أظن ان برامج إدارة المقاهي هي عبارة عن server clients ؟ بامكانك ارسال رسالة متعارف عليها بين الـ server والـ clients بحيث يتم عمل ما تريد ...

هو ليس ظن بل يقين وكيف يتم ارسال رسالة متعارف عليها بين الـ server والـ clients

اقتباس
هناك برنامجين، برنامج ِClient في كل جهاز

و برنامج Server في الجهاز المتحكم

من المفروض أن Client لا يسمع بإستخدام الجهاز أي يعمل Block له وعند تلقيه أمر من Server يبأ حساب الوقت

عند إرسال أمر بداية الإستعمال يسجل الوقت ليستخدم لا حقا في حساب المدة الزمنية المستهلكة

أخي العزيز هذه الأمور مسلم بها ولكن كيف تتم عملية ارسال أمر من الـ Server إلى الـ Client

اقتباس
طريقة التواصل بين الـ server والـ client هي الأفضل في حالتك ..

أعود وأقول كيف.

لقد قمت بإرسال البيانات من الـ Server عبر الشبكة لملف نصي وجعلت الـ Client يأخذ النص ويترجمه إلى أمر ولكن لابد من وجود طريقة أفضل وآمنة أكثر

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

والله الموفق......... أخوكم أبو النور.

********************************************************************************

آخر وصايا سيدنا محمد صلى الله عليه وسلم:الصلاة الصلاة وما ملكت أيمانكم

66850879_b6e633000d_m.jpg

هاجر اللذائذ وانبـرى ليثـاً بادغـال الشـرا

بـاع الحيـاة رخيـصـة لله والله اشـتـرى

خذو مني فؤادي وامنحوني سلاحي أمتطي صهو المنون

فإني لم أعش لأذوق ذلاً ولا لأذوب في حضن حنون

موقع الفريق الاسلامي المتحد للبرمجة والإلكترونيات

إيميلي هو:Aboalnoor@maktoob.com

ياهو :adnanalabuo@yahoo.com

هوت ميل:AdnanAlabuo@hotmail.com

مدونتي الخاصة

#8

السلام عليكم, صباح الخير يا شباب

اقتباس
يجب أن يعمل المؤقت لحساب الوقت عند تشغيل برنامج ما ولنفرض الدلفي وعند إغلاقه أي إغلاق الدلفي كما في مثالنا هذا يتوقف المؤقت لينتج عندنا زمن العمل على الدلفي.

صديقي العزيز: أعتقد أنه لا داعي لذلك, فلماذا؟ وكيف ستعرف أي جهاز هو الذي عمل؟

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

تستطيع بدل من هذا كله حساب الوقت على تطبيق الزبون وإرسالها إلى قاعدة البيانات المتصلة مع تطبيق السيرفر عن طريق الـ Indy مثلاً.

اقتباس
لقد قمت بإرسال البيانات من الـ Server عبر الشبكة لملف نصي وجعلت الـ Client يأخذ النص ويترجمه إلى أمر ولكن لابد من وجود طريقة أفضل وآمنة أكثر

هل قرأت عن الـ indy, لن ترسل ملف نصي بل سترسل سلسلة معينة تعرفها أنت وتحددها وتميزها عن غيرها,

انظر هذا المثال: (من موقع عروة.نت)

اقتباس
سيكون الجهاز المزود هو الجهاز الذي تريد قراءة التاريخ منه

الأجهزة الزبائن هي بقية الاجهزة

برنامج المخدم :

ضع عليه عنصر IdTCPServer1 فقط وهو من صفحة ind servers

الآن نضبط خصائصة بالشكل التالي :

- الخاصية Active بالقيمة true

- الخاصية Bindings . تفتح امامنا مربع صغير

نضع في حقل IP address قيمة الIP الخاصة بهذا الجهاز

نضع في حقل Port القيمة 9099

ثم نضغط على زر add

في حدث OnExecute :

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var s:string;
begin
s:= AThread.Connection.ReadLn;
if s='date' then
AThread.Connection.WriteLn('date is : '+DateTimeToStr(now));
end;

برنامج الزبون :

نضع المكون IdTCPClient1 من الصفحة Indy Clients

ونضبط خصائصة كالتالي :

- Host رقم IP المخدم

- port بالقيمة 9099

ثم في حدث زر طلب التاريخ نكتب الشفرة التالية :

procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
with IdTCPClient1 do
begin
Connect;
try
WriteLn('date');
s:= readln;
showmessage(s);
finally
Disconnect;
end;
end;
end;

بهذه الطريقة تستطيع أن تضمن اتصال آمن وسريع و مثالي تقريباً.

تابع أخي الكريم وفقك الله ;)

قال تعالى: ((وَمَا أَصَابََكُمْ مِنْ مُصِيبَةٍ فَبمَا كَسَبَتْ أَيْدِيكُمْ وَ يَعْفُو عَنْ كَثِيرٍ)) :.:.: الشورى: الآية 30.

IN ALLAH WE TRUST

:.:.:.:.:.:.:.:.:.:.:.:.:.:

#9
اقتباس
أخي العزيز هذه الأمور مسلم بها ولكن كيف تتم عملية ارسال أمر من الـ Server إلى الـ Client

جيد

عليك أن تحدد هل تريد أن تعمل بمكونات Indy و تعمل شيئ مثل الذي كتبه الأخ Like Delphi

أم تريد أن تستخدم مكونات Socket ؟

d4baa0.gif
#10
اقتباس
هل قرأت عن الـ indy, لن ترسل ملف نصي بل سترسل سلسلة معينة تعرفها أنت وتحددها وتميزها عن غيرها,

انظر هذا المثال: (من موقع عروة.نت)

طبعاً أخي الكريم ولكن المثال الوارد جربته وأعطاني خطأ علماً أنني أعمل حالياً على الدلفي 2005

اقتباس
عليك أن تحدد هل تريد أن تعمل بمكونات Indy و تعمل شيئ مثل الذي كتبه الأخ Like Delphi

أم تريد أن تستخدم مكونات Socket ؟

غير مهم أخي في الله المهم عندي أن تكون سهلة وآمنة التعامل والبرمجة

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

أخي الكريم الاحتمال الذي ذكرته موجود ولكني أريد ارفاق هذه الميزة أيضاً

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

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

********************************************************************************

آخر وصايا سيدنا محمد صلى الله عليه وسلم:الصلاة الصلاة وما ملكت أيمانكم

66850879_b6e633000d_m.jpg

هاجر اللذائذ وانبـرى ليثـاً بادغـال الشـرا

بـاع الحيـاة رخيـصـة لله والله اشـتـرى

خذو مني فؤادي وامنحوني سلاحي أمتطي صهو المنون

فإني لم أعش لأذوق ذلاً ولا لأذوب في حضن حنون

موقع الفريق الاسلامي المتحد للبرمجة والإلكترونيات

إيميلي هو:Aboalnoor@maktoob.com

ياهو :adnanalabuo@yahoo.com

هوت ميل:AdnanAlabuo@hotmail.com

مدونتي الخاصة

#11

السلام عليكم

يا أبو النور...

اقتباس
طبعاً أخي الكريم ولكن المثال الوارد جربته وأعطاني خطأ علماً أنني أعمل حالياً على الدلفي 2005

المثال مجرب و صحيح وخالي من الأخطاء, تأكد من أنك تضع رقم الـ IP الخاص بالجهاز السيرفر هو نفسه الرقم الذي ستضعه في تطبيق السيرفر

والذي سيعمل بإذن الله على هذا الجهاز, بمكنك تجريب المثال على جهاز واحد مبدئياً, وعندما تريد نقل تطبيق السيرفر إلى جهاز آخر فقط غير الـ IP إلى IP ذلك الجهاز.

اقتباس
غير مهم أخي في الله المهم عندي أن تكون سهلة وآمنة التعامل والبرمجة

التعامل سهل و آمن في الطريقتين وربما في الـ INDY أسهل و هي متطورة أكثر, فقط اختر و أبدأً وفقك الله.

اقتباس
أخي الكريم الاحتمال الذي ذكرته موجود ولكني أريد ارفاق هذه الميزة أيضاً

عزيزي أبو النور, ربما لم تتضح فكرة هذه الميزة, هل لك أن توضحها أكثر و توضح مدى أهميتها وهل هي على جهاز واحد تريدها أم شاملة أجهزة الشبكة, فصل أكثر.

وفقك الله ;)

قال تعالى: ((وَمَا أَصَابََكُمْ مِنْ مُصِيبَةٍ فَبمَا كَسَبَتْ أَيْدِيكُمْ وَ يَعْفُو عَنْ كَثِيرٍ)) :.:.: الشورى: الآية 30.

IN ALLAH WE TRUST

:.:.:.:.:.:.:.:.:.:.:.:.:.:

#12

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

أما بعد :

اقتباس
التعامل سهل و آمن في الطريقتين وربما في الـ INDY أسهل و هي متطورة أكثر, فقط اختر و أبدأً وفقك الله.

إذاً اعتمدنا على الـ بعون وتوفيق من الله.

اقتباس
المثال مجرب و صحيح وخالي من الأخطاء, تأكد من أنك تضع رقم الـ IP الخاص بالجهاز السيرفر هو نفسه الرقم الذي ستضعه في تطبيق السيرفر

والذي سيعمل بإذن الله على هذا الجهاز, بمكنك تجريب المثال على جهاز واحد مبدئياً, وعندما تريد نقل تطبيق السيرفر إلى جهاز آخر فقط غير الـ IP إلى IP ذلك الجهاز.

أخي الكريم قمت بفرمتة الجهاز ونزلت Delphi 7 ومشي الحال ولكنه لم يكن يعمل على الـ Delphi 2005 والخطأ لم يكن خطأ IP ولكن كان يعطيني خطأ في المتغير الرئيسي الـ AThread: TIdPeerThread والـ Read والـ Write

وكما ذكرت فرمتة الجهاز ونزلت Delphi 7 ومشي الحال.

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

أخي الكريم كي لانعقد الموضوع .........

أريد مثال يقوم بحساب مدة تشغيل برنامج ..... يبدأ حساب التوقيت تلقائياً حينما يشتغل أي برنامج ويتوقف عند إغلاق البرنامج. أي بعبارة أخرة معرفة وقت تشغيل كل تطبيق .

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

والله الموفق......... أخوكم أبو النور.

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

********************************************************************************

آخر وصايا سيدنا محمد صلى الله عليه وسلم:الصلاة الصلاة وما ملكت أيمانكم

66850879_b6e633000d_m.jpg

هاجر اللذائذ وانبـرى ليثـاً بادغـال الشـرا

بـاع الحيـاة رخيـصـة لله والله اشـتـرى

خذو مني فؤادي وامنحوني سلاحي أمتطي صهو المنون

فإني لم أعش لأذوق ذلاً ولا لأذوب في حضن حنون

موقع الفريق الاسلامي المتحد للبرمجة والإلكترونيات

إيميلي هو:Aboalnoor@maktoob.com

ياهو :adnanalabuo@yahoo.com

هوت ميل:AdnanAlabuo@hotmail.com

مدونتي الخاصة

#13

السلام عليكم

أخي أبو النور، بصراحة أنا مستغرب كيف إنت شرعت في عمل برنامج إدارة مقاهي إنترنت، ثم تسأل سؤال مثل هذا :

اقتباس
وكيف يتم ارسال رسالة متعارف عليها بين الـ server والـ clients

أيضاً أنا لم أفهم قولك:

اقتباس
لقد قمت بإرسال البيانات من الـ Server عبر الشبكة لملف نصي وجعلت الـ Client يأخذ النص ويترجمه إلى أمر ولكن لابد من وجود طريقة أفضل وآمنة أكثر

يعني تعرف كيف ترسل بيانات لملف، ولا تعرف كيف ترسل رسالة متعارف عليها بين server و Client ؟ !!!

يمكن أنا لم أفهم قصدك جيداً، عموماً، أنا لا زلت مبتدئ في دلفي ويمكن فاهم الموضوع خطأ ، بس أنت تستطيع أن تعمل مثل هذا عندما تريد إرسال أمر من الـ Client

على فرض إنك استعملت TClientSocket & TServerSocket

Client.Socket.SendText('some instructions to the server')

أما في السيرفر، وفي الحدث OnRead تضع شيء مثل هذا:

if Socket.connections[0].ReceivText = 'some instructions to the server' then
begin
....
end;

طبعاً رقم 0 في الكود السابق تدل على رقم الزبون، إذا كان عندك زبون واحد متصل بك، ستستعمل 0 لأن العد يبدأ من 0

بالنسبة لـ

اقتباس
أريد مثال يقوم بحساب مدة تشغيل برنامج ..... يبدأ حساب التوقيت تلقائياً حينما يشتغل أي برنامج ويتوقف عند إغلاق البرنامج. أي بعبارة أخرة معرفة وقت تشغيل كل تطبيق .

حقيقة لم أفكر في عمل هذا العمل من قبل، لكن الفكرة المبدئية التي جاءتني الآن، هي: وضع مؤقت يقول بعمل حصر لجميع العمليات التي تعمل في الجهاز كل ثانية مثلاً، ثم يقوم بمقارنتها مع النتائج السابقة، ويأخذ القيمة الزائدة ( العملية الجديدة ) ويبدأ العد ويسجل في ملف مثلاً، وفي نفس التايمر يقوم بالكشف عن العمليات المفقودة، ثم يوقف الزيادة في العد في تلك العمليات ( المفقودة أو المغلقة )... الخ

طبعاً، لحصر العمليات تستعمل tlhelp32 في uses ثم وظائف وانواع بيانات مثل : Thandle / TProcessEntry32 / Createtoolhelp32snapshot / process32first / process32next ، الخ

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

يمكن هذه فكرة غبية جداً، عموماً هذه مجرد فكرة إذا كان أحد من الشباب عنده فكرة أفضل أتمنى أن يشارك بها.

طبعاً، كتابة الكود السابق قد يحتاج بعض الوقت والتفكير، وأنا لازلت مبتدئ وليس عندي الوقت الكافي الآن للتجربة...

أرجو أن أكون أفدتك ولو بشيء يسير في هذا البرنامج :)

#14

ليلة أمس أمضيت بعض الوقت لكتابة المثال المرفق

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

لم أصححها، لكن المثال يعمل جيدا و يوضح فكرة البرنامج

بإستخدام مكونات Socket القديمة

_CAFENET.rar

d4baa0.gif
#15

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

اقتباس
ليلة أمس أمضيت بعض الوقت لكتابة المثال المرفق

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

لم أصححها، لكن المثال يعمل جيدا و يوضح فكرة البرنامج

بإستخدام مكونات Socket القديمة

مشكور أخوي DeltaAziz عذبتك معاي اسأل الله أن يجعلها في ميزان حسناتك .

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

أخي في الله fafe0 أرجو أن لاتفهمني غلط مرة ثانية

فأنا أعرف كيف يتم ارسال رسالة متعارف عليها بين الـ server والـ clients بواسطة INDY

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

اقتباس
حقيقة لم أفكر في عمل هذا العمل من قبل، لكن الفكرة المبدئية التي جاءتني الآن، هي: وضع مؤقت يقول بعمل حصر لجميع العمليات التي تعمل في الجهاز كل ثانية مثلاً، ثم يقوم بمقارنتها مع النتائج السابقة، ويأخذ القيمة الزائدة ( العملية الجديدة ) ويبدأ العد ويسجل في ملف مثلاً، وفي نفس التايمر يقوم بالكشف عن العمليات المفقودة، ثم يوقف الزيادة في العد في تلك العمليات ( المفقودة أو المغلقة )... الخ
اقتباس
طبعاً، لحصر العمليات تستعمل tlhelp32 في uses ثم وظائف وانواع بيانات مثل : Thandle / TProcessEntry32 / Createtoolhelp32snapshot / process32first / process32next ، الخ

أخي الكريم كما أوضحت سابقاً :

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

طبعاً، كتابة الكود السابق قد يحتاج بعض الوقت والتفكير، وأنا لازلت مبتدئ وليس عندي الوقت الكافي الآن للتجربة...

لاتوجد فكرة غبية أبداً هذا أولاً ولاتصغر من شأنك أخي الكريم هذا ثانياً ولم يولد أحد متعلم فوراً هذا ثالثاً ورابعاً وهو الأهم أشكرك جزيل الشكر على مشاركتك.

أخوتي الأكارم لدي بعض الأسئلة وهي كالتالي :

*** كيف يمكن معرفة الأجهزة المتصلة بالشبكة ووضعها ضمن ShellListView .

*** أريد منكم أن توردوا لي أفكار لأضعها في برنامجي .

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

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

والله الموفق......... أخوكم أبو النور.

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

********************************************************************************

آخر وصايا سيدنا محمد صلى الله عليه وسلم:الصلاة الصلاة وما ملكت أيمانكم

66850879_b6e633000d_m.jpg

هاجر اللذائذ وانبـرى ليثـاً بادغـال الشـرا

بـاع الحيـاة رخيـصـة لله والله اشـتـرى

خذو مني فؤادي وامنحوني سلاحي أمتطي صهو المنون

فإني لم أعش لأذوق ذلاً ولا لأذوب في حضن حنون

موقع الفريق الاسلامي المتحد للبرمجة والإلكترونيات

إيميلي هو:Aboalnoor@maktoob.com

ياهو :adnanalabuo@yahoo.com

هوت ميل:AdnanAlabuo@hotmail.com

مدونتي الخاصة

#16

أخي أبو النور آسف إذا كنت فهمتك خطأ، لكن أنت لم تذكر أنك تعرف طريقة إرسال رسالة متعارف عليها، أنت وضعت سؤال فقط، ولم تقل أريد طريقة أفضل لإرسال رسالة من زبون إلى خادم من طريقة اندي،،،،

المهم، ما علينا، حصل سوء فهم فقط :)

أما بالنسبة لـــ :

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

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

كما ذكرت لك سابقاً، ربما لأنني مبتدئ، ولذلك أرجو من أي أحد من الأعضاء أو المشرفين، إذا كان عنده فكرة أحسن أن يذكرها لنا حتى يستفيد الجميع...

اقتباس
ورابعاً وهو الأهم أشكرك جزيل الشكر على مشاركتك

أخي الكريم لا شكر على واجب، نحن كلنا هنا لنفيد ونستفيد :) ، ويسعدني جداً إن كانت مشاركتي قد أفادتك ولو بشيء يسير :)

#17

اعتثد ان هذه الصفحة جيدة جدا

http://www.dragonsoftru.com/index.php?go=certification

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#18

أخوتي الأعزاء في هذا المنتدى أرجوا ذكر طريقة ارسال أمر أو Command من الـ Server إلى الـ Client

واستقبال الأمر من Client وتنفيذه.

طبعاً عن طريق عناصر INDY أولاً

وأين اقتراحاتكم وأفكاركم حول البرنامج ثانياً

والله ولي التوفيق.

تم تعديل هذه المشاركة بواسطة Aboalnoor-Delphi7 في 25 مايو 2006 في 00:31

********************************************************************************

آخر وصايا سيدنا محمد صلى الله عليه وسلم:الصلاة الصلاة وما ملكت أيمانكم

66850879_b6e633000d_m.jpg

هاجر اللذائذ وانبـرى ليثـاً بادغـال الشـرا

بـاع الحيـاة رخيـصـة لله والله اشـتـرى

خذو مني فؤادي وامنحوني سلاحي أمتطي صهو المنون

فإني لم أعش لأذوق ذلاً ولا لأذوب في حضن حنون

موقع الفريق الاسلامي المتحد للبرمجة والإلكترونيات

إيميلي هو:Aboalnoor@maktoob.com

ياهو :adnanalabuo@yahoo.com

هوت ميل:AdnanAlabuo@hotmail.com

مدونتي الخاصة

#19

متأخر ولكن ارجو ان اجد مكان

استفدت كثيرا بعد ان تتبعت الموضوع وتعلمت منه اشياء لم اكن اعرفها

 procedure TForm1.FormCreate(Sender: TObject);
var
  HTaskbar: HWND;
  OldVal: LongInt;
begin
  try
	// Find handle of TASKBAR
	HTaskBar := FindWindow('Shell_TrayWnd', nil);
	// Turn SYSTEM KEYS off, Only Win 95/98/ME
SystemParametersInfo(97, Word(True), @OldVal, 0);
	// Disable the taskbar
	EnableWindow(HTaskBar, False);
	// Hide the taskbar
	ShowWindow(HTaskbar, SW_HIDE);
  finally
	with Form1 do 
	begin
	  BorderStyle := bsNone;
	  FormStyle   := fsStayOnTop;
	  Left		:= 0;
	  Top		 := 0;
	  Height	  := Screen.Height;
	  Width	   := Screen.Width;
	end;
  end
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
  HTaskbar: HWND;
  OldVal: LongInt;
begin
  //Find handle of TASKBAR
  HTaskBar := FindWindow('Shell_TrayWnd', nil);
  //Turn SYSTEM KEYS Back ON, Only Win 95/98/ME
  SystemParametersInfo(97, Word(False), @OldVal, 0);
  //Enable the taskbar
  EnableWindow(HTaskBar, True);
  //Show the taskbar
  ShowWindow(HTaskbar, SW_SHOW);
end;


{
  Hope you like it !
  So if you have any problem using these codes
  please e-mail me at :
  babak_sateli@yahoo.com
  Babak Sateli
  www.cdcenterco.com
منقول
}

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

ارجو ان اكون قد وٌفقت

ملاحظة قمت بتعديل المرفق

Copy_of_codes_try.rar

تم تعديل هذه المشاركة بواسطة c_vita في 4 يونيو 2006 في 15:48

#20
Aboalnoor-Delphi7 كتب:
أخوتي الأعزاء في هذا المنتدى أرجوا ذكر طريقة ارسال أمر أو Command من الـ Server إلى الـ Client

واستقبال الأمر من Client وتنفيذه.

طبعاً عن طريق عناصر INDY أولا

هل جربت المثال الذي ارفقته ؟

لا اظن....

به اجابة سؤالك باستخدام Sockets

نفس الشئ مع INDY

d4baa0.gif
#21

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

#22
format82 كتب:
انا جربت البرنامج لكن هنالك خطا عند اغلاق جهاز او كافة الاجهزة

خطاء واجد فقط ؟ هناك الكثير

لا علينا،

حاول تصحيحة و ارفقه هنا

d4baa0.gif
#23

المشكلة ليس في كود الاغلاق ولكن المشكلة في برنامج ال Client فعند خروج الجهاز من الشبكة (برنامج) يقوم البرنامج بارسال رسالة خطا الي السيرفر

asynchronous socket error 10053

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

#24

و برايك ماذا يجب فعله في هذه الحالة ؟ من المفترض أن يتوقف العداد او لا ؟ :D

d4baa0.gif
#25

لقد وجدت الحل في برنامج ال cilenet

if CMD = 'SDWN' then
   begin
_ExitWindows(EWX_POWEROFF or EWX_FORCE); 
   clientsocket1.Active := false;
   timer1.Enabled:=false;
END

بعد اغلاق الجهاز قمت بايقاف العداد و قطع الاتصال

ولدي سوال اريد عند ما يقوم البرنامج باغلاق الجهاز يقوم مسح اسم الجهاز من ConnectionsListBox والبيانات من StringGrid1

استطعت مسح اسم الجهاز بهذا الكود ConnectionsListBox.Items.Delete(ConnectionsListBox.ItemIndex);

ولكن لم استطع مسح بياناتها لقد قمت بكتابة هذا الكود StringGrid1.Cols.Delete(); المشكلة الindex التي داخل () (الصف)

ارجو المساعد من الجميع

تم تعديل هذه المشاركة بواسطة romanof في 6 يونيو 2006 في 14:44

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

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