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

أسئلة و أجوبة

بدأه بن العيد في 30 نوفمبر 2007 · 9 رد · 5,007 مشاهدة · في برمجة الأجهزة الكفية والمحمولة بالدوت نيت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

سأحاول في هذا الموضوع طرح مجموعة من الأسئلة والإجابة عنها في الآن ذاته. ربما تكون مفيدة للبعض و إن كانت هناك إضافة أو تصحيح فالمجال مفتوح طبعا للجميع و من الله العون.

سؤال: كيف أستطيع التواصل مع FTP server عبر إتصالGPRS؟

إجابة: لا يوجد تعريف لFTP في CompactFramework الإصدار الأول والثاني لذلك بإمكانك إستعمال مكتبة OpenNETCF.Net.Ftp التي يوفرها فريق OpenNETCF. أما بالنسبة لتواصل عبرGPRS فراجع هذا الموضوع حيث يوجد ملف فيه كل ما تحتاج

سؤال:هل يمكنني إخفاء مجلد/ملف أو جعله غير قابل للتعديل؟

إجابة: بما أنك في منتديات الفريق العربي للبرمجة فكل شيء ممكن, يكفي أن تجرب المثال التالي بعد التأكد من وجود المجلد/الملف في المسار المحدد:

System.IO.FileInfo fileInfo = new System.IO.FileInfo("labels.txt");
						 fileInfo.Attributes = System.IO.FileAttributes.ReadOnly;

لو قمت بإختيار Go To Definition إثر النقر بيمين الفأرة فوق كلمةFileAttributes فستحملك إلى التعديلات الخاصة بالملفات والتي يمكن قرائتها أو تغيرها

post-91400-1196448076_thumb.jpg

سؤال:أريد إستعمال توابع ال RILمثل RIL_Dial, RIL_Answer, RIL_Hangup, RIL_SendDTMF, RIL_SetDTMFMonitoring, RIL_GetCallListو RIL_ManageCalls في التعامل مع الإتصالات الواردة والصادرة من حاسب الكف الذي أستعمله ولكني لم أستطع تعريفها؟ هل من مساعدة؟

إجابة: لو قمت بمراجعة تعريفRIL_Dial مثلا ستشاهد الصورة التالية:

post-91400-1196450017_thumb.jpg

كما هو مكتوب في الصورة فإن هذه الدوال غير متوفرة في نظام التشغيل Windows Mobile إنما فقط في نظام التشغيل Win CE. ربما هنا يطرح تساؤل حول الفرق بينهما. الإجابة بكل بساطة أن الويندوز Win CE هو النواة التي بني عليها Windows Mobile. أعود للسؤال المطروح مذكرا أن تلك الدوال معرفة في الإصدار 4.2 من Win CE و ما يليه

سؤال: لدي حاسوب كف من جيل 2006 وأريد حذف الرسائل الواردة على هاتفي مباشرة إذا كانت تحتوي جملة معينة أو من شخص معين. هل يمكن ذلك؟ وإن أمكن كيف أقوم بذلك؟

إجابة:أجل بإمكانك ذلك بإستعمال كل من MessageInterceptor و MessagePropertyComparisonType ينتمي هذين القسمين إلى المجال Microsoft.WindowsMobile.PocketOutlook لذلك يتوجب إضافته إلى المشروع منذ البداية

النوع

MessagePropertyComparisonTypeيحتوي على جملة من الخصائص وهي: Equal, NotEqual, Contains, StartsWithو EndsWith. هذه الخاصائص تمكن من البحث في نص الرسالة بإعتماد أوله, آخره, مقارنته بنص آخر ما إن كان يعادله أم لا. لذلك ينبغي الحذر عند مقارنة نص الرسالة الواردة بالنص الموجود لأن أبسط فرق كفراغ زائد أو حرف... يفشل المقارنة رغم أن النصيه متشابهين.

إثر ذلك بإمكانك إستعمال الكود التالي:

MessageInterceptor SmsInterceptor = null;

 private void Form1_Load(object sender, EventArgs e)
 {
	 SmsInterceptor = new MessageInterceptor();
	 SmsInterceptor.MessageCondition = 
		 new MessageCondition(MessageProperty.Sender, 
		 MessagePropertyComparisonType.Contains, "Karim ", false);
	 SmsInterceptor.MessageReceived += SmsInterceptor_MessageReceived;
 }

ما إن يتم تشغيل البرنامج و تحميل الواجهة الرسومية تبدأ عملية التصنت والتي تعدم على الدالةSmsInterceptor_MessageReceived

void SmsInterceptor_MessageReceived(object sender, MessageInterceptorEventArgs e)
	{
 SmsMessage newMessage = e.Message as SmsMessage;
 if (newMessage != null)
 {
		statusBar1.Text = "From:" + newMessage.From.Address;
		Debug.WriteLine(string.Format("Sender:{0} - Body:{1}", _
		newMessage.From.Address, newMessage.Body));
 }
	}

يمكن الإطلاع على هذا الربط للمزيد من التفاصيل

يتبع...

سؤال: أريد إعادة إرسال رسالة من نوع MMSتم إرسالها لي

إجابة: غير ممكن الوصول لمحتوى الرسائل القصيرة من هذا النوع و من الممكن إستخدام عدة البرمجة المتوفرة في هذا الموقع.

سؤال: كيف يمكنني تحويل الإتصال بشبكة الأنترنت بين ActiveSync و الشبكة اللاسلكية WLAN.

الإجابة: يمكن تحديد نوع الإتصال بشبكة الأنترنت عبر تحديد قيمة المتغيرguidDestNet في اللائحة CONNMGR_CONNECTIONINFO. هذه اللائحة مستخدمة من قبل دالة الإتصال ConnMgrEstablishConnection.

يجب التذكر أنه من الممكن الإتصال عبر الشركة اللاسلكية المرتبط بها حاسوب المكتب، إذا كان الإختيارAllow wireless connection on device when connected to desktop فيActiveSync مفعّل.

سؤال: هل يوجد حل أيسر للسؤال السابق؟

إجابة: يمكن إستخدام الدالة Socket.Bind لحصر عناوين التي يمكن الإتصال بها. أما بالنسبة للشبكة اللاسلكية يمكن البحث عن مختلف الشبكات المتوفرة و الربط بها ب OpenNETCF.Net.NetworkInformation.AccessPoint .

مثال

سؤال: أريد إستخدام إحدى دوالRAS و لذلك قمت بنسخ المكتبة cellcore.lib في C:\Program Files\Windows Mobile 6 SDK\PocketPC\Lib\Armv4iلأن المشروع تعديل لكود كان موجه لحواسيب كف من جيل 2003. لكنني لم أستطع الترجمة و تظهر لي رسالة الخطء التالية:

cellcore.lib failed to load. 193: %1 is not a valid Win32 application.

الإجابة: المشكلة تكمن في طريقة إدراج المكتبة في المشروع. يوجد طريقتان لإدراج هذه المكتبة:

1. إدراج المكتبة في إعدادات المشروع في الفيزوال ستوديو "Configuration Properties"->"Linker"->"Input"->"Additional Dependencies"

2. إدراج المكتبة في الشفرة مباشرة بإستخدام

#pragma comment(lib, "cellcore.lib")

تم تعديل هذه المشاركة بواسطة طارق إبراهيم في 22 أبريل 2010 في 16:04

1
#2

up

#3

بارك الله بك اخي بن العيد, فدائما مواضيعك مميزة و مشوقة...

مكتبة OpenNETCF رائعة جدا وفيها الكثير من الامور الناقصة في compact framework, استخدمتها في السابق للتعامل مع ال Com port وذلك للطباعة عن طريق ال Blue tooth, انصح الجميع بالاطلاع عليها...

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#4

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

post-91400-1242133452_thumb.png

:lol:

#5
بن العيد كتب:
السلام عليكــم ورحمـة الله وبركاتــه ،،

post-91400-1242133452_thumb.png

:lol:

يمكنك عمل ذلك بنفسك :P ,

Done.

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#6
بن العيد كتب:

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

سأحاول في هذا الموضوع طرح مجموعة من الأسئلة والإجابة عنها في الآن ذاته. ربما تكون مفيدة للبعض و إن كانت هناك إضافة أو تصحيح فالمجال مفتوح طبعا للجميع و من الله العون.

سؤال: كيف أستطيع التواصل مع FTP server عبر إتصالGPRS؟

إجابة: لا يوجد تعريف لFTP في CompactFramework الإصدار الأول والثاني لذلك بإمكانك إستعمال مكتبة OpenNETCF.Net.Ftp التي يوفرها فريق OpenNETCF. أما بالنسبة لتواصل عبرGPRS فراجع هذا الموضوع حيث يوجد ملف فيه كل ما تحتاج

سؤال:هل يمكنني إخفاء مجلد/ملف أو جعله غير قابل للتعديل؟

إجابة: بما أنك في منتديات الفريق العربي للبرمجة فكل شيء ممكن, يكفي أن تجرب المثال التالي بعد التأكد من وجود المجلد/الملف في المسار المحدد:

System.IO.FileInfo fileInfo = new System.IO.FileInfo("labels.txt");
						  	fileInfo.Attributes = System.IO.FileAttributes.ReadOnly;

لو قمت بإختيار Go To Definition إثر النقر بيمين الفأرة فوق كلمةFileAttributes فستحملك إلى التعديلات الخاصة بالملفات والتي يمكن قرائتها أو تغيرها

post-91400-1196448076_thumb.jpg

سؤال:أريد إستعمال توابع ال RILمثل RIL_Dial, RIL_Answer, RIL_Hangup, RIL_SendDTMF, RIL_SetDTMFMonitoring, RIL_GetCallListو RIL_ManageCalls في التعامل مع الإتصالات الواردة والصادرة من حاسب الكف الذي أستعمله ولكني لم أستطع تعريفها؟ هل من مساعدة؟

إجابة: لو قمت بمراجعة تعريفRIL_Dial مثلا ستشاهد الصورة التالية:

post-91400-1196450017_thumb.jpg

كما هو مكتوب في الصورة فإن هذه الدوال غير متوفرة في نظام التشغيل Windows Mobile إنما فقط في نظام التشغيل Win CE. ربما هنا يطرح تساؤل حول الفرق بينهما. الإجابة بكل بساطة أن الويندوز Win CE هو النواة التي بني عليها Windows Mobile. أعود للسؤال المطروح مذكرا أن تلك الدوال معرفة في الإصدار 4.2 من Win CE و ما يليه

سؤال: لدي حاسوب كف من جيل 2006 وأريد حذف الرسائل الواردة على هاتفي مباشرة إذا كانت تحتوي جملة معينة أو من شخص معين. هل يمكن ذلك؟ وإن أمكن كيف أقوم بذلك؟

إجابة:أجل بإمكانك ذلك بإستعمال كل من MessageInterceptor و MessagePropertyComparisonType ينتمي هذين القسمين إلى المجال Microsoft.WindowsMobile.PocketOutlook لذلك يتوجب إضافته إلى المشروع منذ البداية

النوع

MessagePropertyComparisonTypeيحتوي على جملة من الخصائص وهي: Equal, NotEqual, Contains, StartsWithو EndsWith. هذه الخاصائص تمكن من البحث في نص الرسالة بإعتماد أوله, آخره, مقارنته بنص آخر ما إن كان يعادله أم لا. لذلك ينبغي الحذر عند مقارنة نص الرسالة الواردة بالنص الموجود لأن أبسط فرق كفراغ زائد أو حرف... يفشل المقارنة رغم أن النصيه متشابهين.

إثر ذلك بإمكانك إستعمال الكود التالي:

MessageInterceptor SmsInterceptor = null;

       private void Form1_Load(object sender, EventArgs e)
       {
	       SmsInterceptor = new MessageInterceptor();
	       SmsInterceptor.MessageCondition = 
		       new MessageCondition(MessageProperty.Sender, 
		       MessagePropertyComparisonType.Contains, "Karim ", false);
	       SmsInterceptor.MessageReceived += SmsInterceptor_MessageReceived;
       }

ما إن يتم تشغيل البرنامج و تحميل الواجهة الرسومية تبدأ عملية التصنت والتي تعدم على الدالةSmsInterceptor_MessageReceived

void SmsInterceptor_MessageReceived(object sender, MessageInterceptorEventArgs e)
	{
  	SmsMessage newMessage = e.Message as SmsMessage;
  	if (newMessage != null)
       {
		statusBar1.Text = "From:" + newMessage.From.Address;
		Debug.WriteLine(string.Format("Sender:{0} - Body:{1}", _
		newMessage.From.Address, newMessage.Body));
       }
	}

يمكن الإطلاع على هذا الربط للمزيد من التفاصيل

يتبع...

السلام عليكم

اخي الكريم ابن العيد

الحقيقة اريد ان استفسر عن الكمبيوتر الكفي dell axim x50v و لم اعرف اين اضع السؤال

الحقيقة اريد ان اعرف هل يمكن فرمتت الكمبيوتر بالكامل و ازالة الويندوز موبايل 5 عنه و من ثم اعادة التكوين؟

السؤال الثاني في حال امكان ازالة الويندوز هل يمكن وضع ويندوز موبايل 6 بدل من 5 ؟

و انا اسأل عن هذه الاسئلة لأن جهازي في بعض الاحيان (يعلق) و تتوقف الشاشة على صورة ديل

شكرا

#7

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

لا أستطيع تحرير الموضوع لإضافة مجموعة جديدة !!!

#8

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

ابن العيد

تم التقييم

#9

السلام عليكم

أحتاج لدمج المشاركة الأولى و التاسعة

#10

تم الدمج

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

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