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

مشروع مافكسبي 2003 ب C#

رائج
بدأه زكيري عبد العالي في 20 أغسطس 2008 · 68 رد · 7,598 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

/index.ph...t=0#entry853920

لان فيه الاسأله و كل خطوات البرمجة

ارجو ان تعطوني اقتراحاتكم حول الموضوع ان كان مهم وذوا قيمة في رايكم

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

شكرا

انتظر ردكم بفاغ الصبر

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

او حتي فتح موضوع جديد يناقش فيه المشروع

اظنه سيكون تحدي بين مبرمجين السي شارب و الدلفي

المشروع سيتم برمجته بثلاث لغات

الدلفي

الدلفي نت

السي شارب

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 21 أغسطس 2008 في 20:43

#2

فكرة !!!!!

يشرفني أول المشاركين لأنني أريد أكتساب الخبرة أكثر فأكثر في السي شارب والدلفي !!!

#3

kid25 شكرا على الرد و الله افرحتني بالرد السريع و ان شاء الله ابذل ما في وسعي خصوصا هذه الايام لان لي الوفت الكافي لوضع كل المعطيات

لقد بدا اعضاء فريق الدلفي في الخطوات الاولى

/index.php?showtopic=169254

#4

السلام عليكم انا معاك ان شاء الله يا اخ زكيرى لكن انا ماليش دراية خالص بال paradox

سيكوال ماشى وسى شارب طبعا ان شاء الله

لكن انا عايز اعرف دورى هايبقى ايه

ولو قصرت ممكن انسحب لا لاءا لأنى داخل على مشروع تخرج

ولدي إليك وصيتي عهد الأسودْ

العز غايتنا نعيش لكي نسود

و عريننا في الأرض معروف الحدود

فاحم العرين و صنه عن عبث القرود

أظفارنا للمجد قد خُلقت فدى

و نيوبنا سُنَّت بأجساد العدى

و زئيرنا في الأرض مرهوب الصدى

نعلي على جثث الأعادي السؤددا

#5

بالطبع معاكم ان شاء الله

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

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 20 أغسطس 2008 في 21:02

ولدي إليك وصيتي عهد الأسودْ

العز غايتنا نعيش لكي نسود

و عريننا في الأرض معروف الحدود

فاحم العرين و صنه عن عبث القرود

أظفارنا للمجد قد خُلقت فدى

و نيوبنا سُنَّت بأجساد العدى

و زئيرنا في الأرض مرهوب الصدى

نعلي على جثث الأعادي السؤددا

#6

اذن على بركة الله

المطلوب واضح الى حد الان هناك مرحلتين

- جمع الوظائف و الإجراءات

- واحه المشروع

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

ارجوا ان تبدا في وضع الوظائف المطلوبة وتفتح الباب على البقيه للمشاركة

شكرا

#7

سى شارب بس دلفى لا افقه فيه غير الاربع حروف د ل ف ى :(

وانت مسير المشروع يا اخ زكيرى

شوف الصح ان شاء الله وراك يا ريس :)

تم تعديل هذه المشاركة بواسطة Rashadov في 20 أغسطس 2008 في 21:01

ولدي إليك وصيتي عهد الأسودْ

العز غايتنا نعيش لكي نسود

و عريننا في الأرض معروف الحدود

فاحم العرين و صنه عن عبث القرود

أظفارنا للمجد قد خُلقت فدى

و نيوبنا سُنَّت بأجساد العدى

و زئيرنا في الأرض مرهوب الصدى

نعلي على جثث الأعادي السؤددا

#8
اقتباس
لكن انا ماليش دراية خالص بال paradox

سيكوال ماشى وسى شارب طبعا ان شاء الله

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

#9

خلاص خير ان شاء الله سيكوال شغال و Xml شغال والحمد لله

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

ولدي إليك وصيتي عهد الأسودْ

العز غايتنا نعيش لكي نسود

و عريننا في الأرض معروف الحدود

فاحم العرين و صنه عن عبث القرود

أظفارنا للمجد قد خُلقت فدى

و نيوبنا سُنَّت بأجساد العدى

و زئيرنا في الأرض مرهوب الصدى

نعلي على جثث الأعادي السؤددا

#10

وما دوري أنا في المشروع أخ زكيري ؟!!! أن لدي خبرة في السي شارب ولكن بالدلفي كما قال خونا Rashadov لا أعرف سوى 4 حروف د ل ف ي !:()())

#11

شكرا على هدا الحماس انا لا اطلب المشاركه في الدلفي

اضن ان المشروع واضح في شرحه وان كان هناك سؤال انا هنا .

مراحل المشروع

1- جمع الميتودات الخاصة بتنفيذ API او تعليمات أخرى القائمة أسفله

مثلا

 


        [color= #000000; font-weight: bold;]public Boolean DelFolder[color= #009900;](String iFld[color= #009900;])

        [color= #009900;]{

            try

            [color= #009900;]{[color= #666666; font-style: italic;]// حذف دليل مع كل محتوياته 

                [color= #990000;]System[color= #339933;].IO[color= #339933;].Directory[color= #339933;].Delete[color= #009900;](iFld[color= #339933;], [color= #000000; font-weight: bold;]true[color= #009900;])[color= #339933;];

                [color= #b1b100;]return [color= #000000; font-weight: bold;]true[color= #339933;];

            [color= #009900;]}

            catch [color= #009900;](Exception exc[color= #009900;])

            [color= #009900;]{

                Console[color= #339933;].WriteLine[color= #009900;]([color= #0000ff;]"خطأ لايمكنك الحذف"[color= #339933;], iFld[color= #339933;], exc[color= #339933;].Message[color= #009900;])[color= #339933;];

                [color= #b1b100;]return [color= #000000; font-weight: bold;]false[color= #339933;];

            [color= #009900;]}

        [color= #009900;]}

public Boolean CreatFolder(String iFld)

public Boolean CopyFolder(String FromFld, String ToFld)

public Boolean IsEmptyFolder(String iFld)

public int CopyAllFile(String FromFld, string ToFld)

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 20 أغسطس 2008 في 21:57

#12

ب) - اجراءات ووظائف تعمل على WMI

public void StopProcessOffice(string iPCName)

public List<string> WMIListePID(String iPCName)

 

        [color= #000000; font-weight: bold;]public List[color= #339933;]<string[color= #339933;]> WMIListePID[color= #009900;](String iPCName[color= #009900;])

        [color= #009900;]{

            [color= #b1b100;]for [color= #009900;](int j [color= #339933;]= [color= #cc66cc;]0[color= #339933;]; vListPid[color= #339933;].[color= #990000;]Count [color= #339933;]- [color= #cc66cc;]1[color= #339933;]; j[color= #339933;]++[color= #009900;])

            [color= #009900;]{

                WMIStopProcess[color= #009900;](iPCName[color= #339933;], Convert[color= #339933;].ToInt32[color= #009900;](vListPid[color= #009900;][j[color= #009900;]][color= #009900;])[color= #009900;])[color= #339933;];

            [color= #009900;]}

        [color= #009900;]}

ربما هناك اخطاء ارجوا التصحيح

المطلوب برمجة كل الميتودات الثلاثة

الشرح بالتفصيل في المشروع في منتدي الدلفي

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 20 أغسطس 2008 في 22:16

#13

وياريت تضموني لفريقكم انا كمان

اعذرني اخي المشرف عبدالعال بس انا ما فهمت المطلوب ايه ؟ لو ممكن بعض التوضيح يعني المطلوب من المشروع واجزاءه عشان كل واحد يشوف هو يقدر يشارك ازاي فيه

#14

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

 [color= #000000; font-weight: bold;]public Boolean CreatFolder[color= #009900;](String iFld[color= #009900;])

         [color= #009900;]{

             try

             [color= #009900;]{

                 [color= #990000;]System[color= #339933;].IO[color= #339933;].Directory[color= #339933;].CreateDirectory[color= #009900;](iFld[color= #009900;])[color= #339933;];

                 [color= #b1b100;]return [color= #000000; font-weight: bold;]true[color= #339933;];

             [color= #009900;]}

             catch [color= #009900;](Exception exc[color= #009900;]) 

             [color= #009900;]{ 

                 Console[color= #339933;].WriteLine[color= #009900;]([color= #0000ff;]"خطأ لايمكنك انشاء"[color= #339933;], iFld[color= #339933;], exc[color= #339933;].Message[color= #009900;])[color= #339933;]; 

                 [color= #b1b100;]return [color= #000000; font-weight: bold;]false[color= #339933;]; 

             [color= #009900;]}

         [color= #009900;]}

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 21 أغسطس 2008 في 11:03

#15

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

 [color= #000000; font-weight: bold;]public int CopyAllFile[color= #009900;](String FromFld[color= #339933;], string ToFld[color= #009900;])

[color= #009900;]{

try

[color= #009900;]{

int FilesCounter [color= #339933;]= [color= #cc66cc;]0[color= #339933;];

string[color= #009900;][[color= #009900;]] FileCollection [color= #339933;]= [color= #990000;]System[color= #339933;].IO[color= #339933;].Directory[color= #339933;].GetFiles[color= #009900;](FromFld[color= #009900;])[color= #339933;];

 

[color= #b1b100;]foreach [color= #009900;](string FilePath in FileCollection[color= #009900;])

[color= #009900;]{

FilesCounter[color= #339933;]++;

string[color= #009900;][[color= #009900;]] FileName [color= #339933;]= FilePath[color= #339933;].[color= #990000;]Split[color= #009900;]([color= #000000; font-weight: bold;]new char[color= #009900;][[color= #009900;]] [color= #009900;]{ [color= #0000ff;]'[color= #000099; font-weight: bold;]' });

[color= #0000ff;]string DestfileName = System.IO.Directory.GetCurrentDirectory();

[color= #0000ff;]DestfileName += "[color= #000099; font-weight: bold;]" + ToFld + "[color= #000099; font-weight: bold;]" + FileName[1];

[color= #0000ff;]//System.IO.File.Copy(FilePath, FestfileName);

[color= #0000ff;]System.IO.File.Delete(DestfileName);

[color= #0000ff;]System.IO.File.Copy(FilePath, DestfileName);

[color= #0000ff;]}

[color= #0000ff;]return FilesCounter;

[color= #0000ff;]}

[color= #0000ff;]catch (Exception ex)

[color= #0000ff;]{

[color= #0000ff;]//Console.WriteLine("خطأ لايمكنك نسخ الملفات الي", ToFld, exc.Message);

[color= #0000ff;]Console.WriteLine("خطأ لايمكنك نسخ الملفات الي", ToFld, ex.Message);

[color= #0000ff;]return -1; 

[color= #0000ff;]}

[color= #0000ff;]}

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

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 21 أغسطس 2008 في 14:45

#16

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

  [color= #000000; font-weight: bold;]public Boolean IsEmptyFolder[color= #009900;](String iFld[color= #009900;])

         [color= #009900;]{

             string [color= #009900;][[color= #009900;]]subDirectories [color= #339933;]= [color= #990000;]System[color= #339933;].IO[color= #339933;].Directory[color= #339933;].GetDirectories[color= #009900;](iFld[color= #009900;])[color= #339933;];

             string[color= #009900;][[color= #009900;]] Files [color= #339933;]= [color= #990000;]System[color= #339933;].IO[color= #339933;].Directory[color= #339933;].GetFiles[color= #009900;](iFld[color= #009900;])[color= #339933;];

 

             [color= #b1b100;]if [color= #009900;](subDirectories[color= #339933;].Length [color= #339933;]== [color= #cc66cc;]0 [color= #339933;]&& Files[color= #339933;].Length [color= #339933;]== [color= #cc66cc;]0[color= #009900;])

             [color= #009900;]{

                 [color= #b1b100;]return [color= #000000; font-weight: bold;]false[color= #339933;];

             [color= #009900;]}

             [color= #b1b100;]else

             [color= #009900;]{

                 [color= #b1b100;]return [color= #000000; font-weight: bold;]true[color= #339933;];

             [color= #009900;]}

 

         [color= #009900;]}

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 21 أغسطس 2008 في 11:03

#17

السلام عليكم

جيد جدا اخي دعاء مختار بارك الله فيك

Prof.Mendاخ

مرحبا بك مشاركاتك هي دليل الانضمام اما عن الشرح هل نظرت الى الرابط الاولى اي في منتدى الدلف

ي وهي دعاية لجب الاعضا الى منتدي الدلفي ايض :D ا

#18

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

   [color= #000000; font-weight: bold;]public Boolean CopyFolder[color= #009900;](String FromFld[color= #339933;], String ToFld[color= #009900;])

        [color= #009900;]{

            try

            [color= #009900;]{

                [color= #990000;]System[color= #339933;].IO[color= #339933;].Directory[color= #339933;].CreateDirectory[color= #009900;](ToFld[color= #009900;])[color= #339933;];

                int [color= #990000;]count [color= #339933;]= CopyAllFile[color= #009900;](FromFld[color= #339933;], ToFld[color= #009900;])[color= #339933;];

 

                string[color= #009900;][[color= #009900;]] subDirectories [color= #339933;]= [color= #990000;]System[color= #339933;].IO[color= #339933;].Directory[color= #339933;].GetDirectories[color= #009900;](FromFld[color= #009900;])[color= #339933;];

                [color= #b1b100;]foreach [color= #009900;](string folder in subDirectories[color= #009900;])

                [color= #009900;]{

                    string[color= #009900;][[color= #009900;]] folderName [color= #339933;]= folder[color= #339933;].[color= #990000;]Split[color= #009900;]([color= #000000; font-weight: bold;]new char[color= #009900;][[color= #009900;]] [color= #009900;]{ [color= #0000ff;]'[color= #000099; font-weight: bold;]' });

[color= #0000ff;]                    string path2 = ToFld + "[color= #000099; font-weight: bold;]" + folderName[folderName.Length - 1];

[color= #0000ff;]                    bool isCopy = CopyFolder(folder, path2);

[color= #0000ff;]                }

[color= #0000ff;]                return true;

[color= #0000ff;]            }

[color= #0000ff;]            catch (Exception ex)

[color= #0000ff;]            {

[color= #0000ff;]                Console.WriteLine("خطأ لايمكنك النسخ", FromFld, ex.Message);

[color= #0000ff;]                return false; 

[color= #0000ff;]            }

 

[color= #0000ff;]        }

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 21 أغسطس 2008 في 14:45

#19

السلام عليكم لم يبقي الا الميتود الخاصة باستعمالات WMI

علما ان WMI تعمل على الطريقة

post-1034-1219319989_thumb.gif

#20

ب) - ميتود تعمل على WMI

*-: متود يقوم بغلق كل برامج Office الوارد الاكسل ....الخ

StopProcessOffice(string iPCName);

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

الفكرة :

*- استرجاع لائحة البروسس اي قائمة البرامج الموجودة في Task Manager باستعمال الوظيفة

 WMIListePID( string iPCName )

*- البحث عن برامج office اي

- 'NAME = WINWORD.EXE'

- 'NAME = MSACCESS.EXE'

- 'NAME = POWERPNT.EXE'

- 'NAME = EXCEL.EXE'

- 'NAME = POTOED.EXE

- 'NAME = OUTLOOK.EXE'

في هذه القائمة

*- وضعPID لكل برنامج مفتوح في vListPid هي متغيرة من نوع TStringList

*- انشاء حلقة تكرارية لغلق اليرامج الموجود رقمها اي PID في القائمة vListPid

اظن ان الامر واضح

ان كان هناك سؤال انا في الخدمة

علما ان اسم الجهاز نمرره في الحين كمتغيرة وان شاء الله المرة القادمه اوضح كيف استرجاع اسماء الاجهزه المرتبطة بالشبكة عن طريق IP

</br >

#21

موقع فيه درس جيد

http://dotnet.developpez.com/articles/wmi1/

        [color= #000000; font-weight: bold;]private string GetPcName[color= #009900;]([color= #009900;])

        [color= #009900;]{

            [color= #990000;]System[color= #339933;].Management[color= #339933;].ManagementObjectSearcher searcher [color= #339933;]= [color= #000000; font-weight: bold;]new [color= #990000;]System[color= #339933;].Management[color= #339933;].Managem
entObjectSearcher[color= #009900;]([color= #0000ff;]"select NAME from win32_processor"[color= #009900;])[color= #339933;];

            [color= #b1b100;]foreach [color= #009900;](ManagementObject name in searcher[color= #339933;].Get[color= #009900;]([color= #009900;])[color= #009900;])

            [color= #009900;]{

                [color= #b1b100;]return [color= #339933;]= [color= #009900;](name[color= #009900;][[color= #0000ff;]"Name"[color= #009900;]][color= #339933;].ToString[color= #009900;]([color= #009900;])[color= #009900;])[color= #339933;];

            [color= #009900;]}

        [color= #009900;]}
#23
اقتباس
يا ليتني كنت ضمن فريقك ... للأسف مازلت مبتدءا في السي شارب ...

لكن من الممكن ان تنظم اليه في قسم دلفي اليس كذلك اخ نصر الدين

بالتوفيق

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#25

السلام عليكم

اخي نصرو اتمنى ان تكون بخير هناك عمل للمبتدئين ايضا

اي انشاء واجهة المشروع

• الواجهات المطلوبة:

تكون الواجهة مقسمة الى 3 أقسام :

*-قسم أيمن به لائحة أوامر على شكل أزرار .

أ‌- قائمة الأجهزة

ب‌- قائمة الملفات

ت‌- قائمة الخادم

ث‌- تحويل من XP الى 2003

ج‌- تحويل من2003 الى XP

ح‌- المساعد

*-قسم علوي به صورة logo arabteam و اقترح انشاء logo الخاص بنا في منتدا الدلفي لكي نضيفه ايضا + logo XP 2003 office ازرار الغلق والتصغير و التكبير و الصفحة الرئيسة .

*- القسم الاحير به page contrôle في الوهلة الأولى فم نعوضها ب notebook

ملاحظ :

كل زر يقوم بفتح صفحة من page contrôle

كل صفحة تحتوي على واحد TFRAMEفقط

مشرف قسم Delphi.Net

أيقونات المجموعة

المجموعة: المشرفين

المشاركات: 938

الشكر: 11 *

التسجيل: 16-July 01

البلد: France_ALgerier

رقم العضوية.: 1,034

الدولة :

طريقة عمل البرنامج

تتم خطوات المشروع في مايلي

1- قائمة الأجهزة

نقوم باضافه معلومات الاجهزه اي يكفي ان نعطيها عنوان الابي IP وبرمجيا هناكمايلي

المعطيات IP

*-وضيفة تعمل على WMI استرجاع اسم الجهاز

*-وظيفة تعمل على استرجاع اسم المستعمل المتصل ذ

*-وظيفة تعمل على استرجاع Office المثيت في الجهاز

كل هذه المعلومات مرتبه في dbgrid اي يكون بذلك كل ادوات التحيين الحذف الاضافة التغير

نحتاج زر اخر لنقل المعلومات من ملف اكسل الى الجدول المعلومات عي قاءمه العناوين IP لمذا اكسل لانه الاكثر استعمال من برامج اخري التي تستخرج عناوين IP من الاجهزة

*- listbox تحتوي على قاءمه الاجهزة الاتي تم رفضها من طرف البرنامج وذلك عدم توفر الشروط التالية

- النظام XP

-اصدار Office 2003 او XP

- اخر اعادة التشغيل للجهاز اقل كم اسبوع

... ساضع البقيه في وقتها

*-قاءمه تحوي على محتوي المفتاح OPEN المجود في الرجيستري

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

ان حذفت سطر حذف الماكرو من الوارد او الاكسل مع انك لم تحذف الملف

اذن عندنا زر يسمح بملأ هذه القاءمه وعندنا ربط بواسطة العنوان IP كما هو موضح في MCD

قوانين التسيير الخاصة بهذه النافذة

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

2-لكل جهاز عدة ماكرو منها الخاصة بالكسل وذات اللحقة .XLA و الاخري الخاصة بالورد .DOT

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