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

اضافة بارامترات للتطبيق

مغلق
بدأه C&DEL في 2 فبراير 2004 · 12 رد · 728 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أود أن أعرف الطريقة التي أستطيع فيها اضافة براميتر لتطبيقي و ذلك عن استدعائه مثال :

عند استدعاء المستكشف لفتح المسار c: فان سطر الاستدعاء يكون explorer c: و ذلك عند استخدام تشغيل (Run) من قائمة ابدأ و هذا يعني أنني استدعيت التطبيق explorer و مررت له البراميتر c:

مع ملاحظة أنني أستخدم DialogBased Application

و شكرا

مدونتي

http://mbnoimi.net

#2

السلام عليكم ,,

أهلين بأبو أحمد ,, اليك مالدي :

طبعا تعرف كيفية فعل ذلك بالنسبة لل Console ,,

أما بالنسبة لل Win32 App ,, فان نقطة الدخول هي WinMain وليست main كما لل console ,, لذا فان في ال WinMain القياسية البارمتر الثالث هو المخصص لهذا الشيء ,, حيث أنها كالتالي :

WinMain(HINSTANCE hInstance,  HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)

البارمتر lpCmdLine ,, سيمرر فيه ادخالك من سطر الاوامر ,,

وطبعا ال Dialog Based تبدأ من ال winMain لكنها غير ظاهرة في المشروع ,, وهي التي عندما تبدأ تستدعي ال InitInstance ,, ليبدأ البرنامج بعدها ,,

فما يجب عليك فعله ,, هو الوصل للدالة WinMain في مشروعك ,, ثم قرر ماذا ستفعل بعدها ,,

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

حاول البحث في ال MSDN الخاصة بال VS.NET وستجد ماتريد ,, بشكل أسهل ,,

وفقك الله ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#3

مشكور أخي على المجهود لكن و كما تعرف في MFC ال WinMain مغلفة و بالتالي الوصول اليها صعب نوعا ما ....!!!!

باستخادم الباسكال يوجد تابعين هما ParamCount() و ParamIndex() على ما أظن و أنا أود الحصول على ما يشبههما

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

مشكلة التمرير للباراميتر يلزم حلها لأننا نحتاج اليها عند استخدام Drag & Drop على أيقونة التطبيق عندما يكون التطبيق مغلقا و كذلك اذا أردنا اضافة أمر للقائمة الفرعية للوندوز بشكل عام و لكي تستوعب طلبي بشكل أوسع أرجو أن تراجع الرابط و تحمل آخر اصدار :

http://www.arabteam2000.com/ib/index.php?s...ndpost&p=185991

و ستلاحظ أن التطبيق عند تشغيله أول مرة ( يجب أن لا تشغله من مصرف VS.net انما من مساره العادي ) يقوم باضافة أمر لقائمة ويندوز ( زر يميني بالفأرة ) التي تظهر عند النقر على المجلدات و بالمرة أعطني رأيك بالبرنامج بشكل عام مع ملاحظة أنه توجد عندي مشكلة في الProgressBar

مدونتي

http://mbnoimi.net

#4

أها فهمتك ياأبو أحمد ,, سأبحث لك في النت بعد قليل ,, عسى أن أجد الحل ,,

وأعتقد أنه سهل جدا ,, لكن هذه هي ال MFC .

:wacko:

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#5

يا عيني عليك هذه المرة فهمنا على بعض بسرعة تذكر ( هذه المرة ال100 التي لم أفهمك فيها ) ........هاهاهاهاها It's just a joke guy

مدونتي

http://mbnoimi.net

#6

هل من جديد؟؟؟

مدونتي

http://mbnoimi.net

#7

السلام عليك أخي C&DEL

أتمنى أن أكون فهمتك بدوري وأضن أنك تريد أن تأخذ البارامترات وسط برنامجك وإذا كان هذا هو المقصود فالأمر سهل.

نعرف أن هذا يكون في lpCmdLine وهو يرسل إلى جالة البداية فإذا كنا نستعمل API فالأمر بديهي وإذا كنا نستعمل MFC فنعرف أن m_lpCmdLine هو Member للكلاس CWinApp أو نقول باختصار الكلاس المكلف ب Application ولكي يكون عندنا هذا القسم يمكن أن نستعمل الدالة التالية :

CWinApp* AfxGetApp()

وباختصار نكتب مايلي وسط البرنامج :

AfxGetApp()->m_lpCmdLine

وهذا يعطينا البارمترات التي مررناها في Command Line

إلى اللقاء.

#8

لم أفهم شيء مما قلته ؟؟؟؟!!!! كل الذي ذكرته أعرفه لكن لا أعرف ما قصدك منه !!!!

أرجو منك أخي العزيز أن تراجع المشاركات السابقة و تقم بتحميل آخر اصدار من STORM ReNamer لتفهم ما أريده بشكل صحيح و الرابط هو :

http://www.arabteam2000.com/ib/index.php?s...ndpost&p=186115

أو اذا ممكن تضع مثال صغير لأفهمه

مدونتي

http://mbnoimi.net

#9

لم أفهم شيء مما قلته ؟؟؟؟!!!! كل الذي ذكرته أعرفه لكن لا أعرف ما قصدك منه !!!!

أرجو منك أخي العزيز أن تراجع المشاركات السابقة و تقم بتحميل آخر اصدار من STORM ReNamer لتفهم ما أريده بشكل صحيح و الرابط هو :

http://www.arabteam2000.com/ib/index.php?s...ndpost&p=186115

أو اذا ممكن تضع مثال صغير لأفهمه

مدونتي

http://mbnoimi.net

#10

السلام عليكم ,,

بارك الله فيك أخي chik ,, وهو المطلوب اثباته ,,

أخي أبو أحمد ,, بارمتراتك التي مررتها للتطبيق في ال MFC موجودة في AfxGetApp()->m_lpCmdLine ,, بشكل مباشر ,,

وفقكم الله ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#11

لم أفهم شيء !!!!

مدونتي

http://mbnoimi.net

#12

السلام عليكم,

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

حسب ما فهمت من المداخلات الأولية أنك تريد أن تتعرف على البارامترات لبرنامجك أو نقول Command Line فهذه ستجدها في المتغير m_lpCmdLine وأضن أن هذا هو المراد.

وكمثال يمكن أن تصنع ناقذة ديالوغ وفيه زر مثلا وفي النقر على الزر نكتب مثلا :

char cmd[100]

cmd=AfxGetApp()->m_lpCmdLine

شغل برنامج النافذة الذي قد نسميه مثلا Test كما يلي :

Test.exe MyCommande Line

وقف البرنامج عند سطر الكود أعلاه وستلاحض كيف تتغير قيمة cmd

إلى اللقاء.

#13

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

مدونتي

http://mbnoimi.net

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

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