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

CreateDesktop

مغلق
بدأه justnow في 12 مارس 2005 · 7 رد · 782 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اريد ان استفسر عن مجموعة الدوال التى تتعامل مع ال Desktop

يعنى انا اريد ان انشئ Desktop جديد و اجعل برنامجى يعمل عليه وحده

قمت بكتابة الكود التالى الذى اضطرانى الى اعادة التشغيل لاكثر من عشر مرات مع المحاولات

لست متاكد من اسامى الدوال بالضبط لذلك اعزرونى :)

CreateWindowStation

بهذه الدالة قمت بعمل WindowStation جديدة

ثم الدالة التالية

SetProcessWindowStation

و هى تاخذ handle لل Window Station التى انشاتها من قبل

و الان انشئ سطح المكتب الجديد

CreateDesktop

بعد ذلك استخدمت الدالة

SwitchDesktop

حتى انتقل الى سطح المكتب الجديد

ملاحظة : الكود السابق كان يعمل عند الضغط على زر ما.

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

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

سؤال اخر

فى سطح المكتب الجديد الذى انشئه لا اجد ال TaskBar و لا تعل المفاتيح Alt-Tab

و لا Alt_Ctrl_Delete لذلك لايكون لى حل غير restart .

هل يمكننى ا ناشغل ال explorer يدويا باستخدام احدى الدوال مثل WinExec

و امرر لها المسار الى Explorer.exe

;)

#2

أين الكود ؟!

وكيف طريقتك في نقل التنفيذ ؟! هل إعتمدت على الثريد

الأمثلة في هذا الموضوع كثيرة , راجع

http://blog.voidnish.com/index.php?p=39

-

http://examples.oreilly.de/english_example...RC/CDesktop.cpp

-

http://www.codeproject.com/cpp/avoidmultinstance.asp

-

http://www.jaascois.com

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

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

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

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

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

#3

شكرا على المواقع و جارى البحث عن الطريقة

المثلى و سوف اوافيك بالكود بعد التعديلات :D

#4

قمت بعدة محاولات و استفدت من الموقع الذى اعطانى اياه الاستاذ JAAS

وانا الان بين مشكلة لا ادرى ان كانت صغيرة او كبيرة.

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

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

vector عادى. و يعطيك رسالة باسم سطح المكتب الذى تم انشاؤه

هناك صندوق edit يستعمل للتنقل الى سطح مكتب أخر. فعند كتابة اى قيمة

صالحة ننشئ التشعب الثانى فى البرنامج و الذى يحول نفسه الى سطح

المكتب الجديد. و يفتح ال explorer باستخدام CreateProcess و يحول العمل

فى سطح المكتب الجديد SwitchDesktop. و عند النقر على ال MesageBox يقوم

بانهاء الexplorer فى سطح المكتب و يرجع الى سطح المكتب الاصلى.

العيوب فى البرنامج

1/ نسبة لعدم خبرتى فى ال STL فبالكاد استطعت استخدام ال vector حتى اننى لم

استطع ان اساله عن عدد العناصر التى يخزنها فى اللحظة الحالية. لذلك اضفت المتغير n

الذى اعتقد ان لا داعى له هنا. فلو وجد احدكم اى كتاب يمكن ان يساعد فى ال STL فليعضه

هنا.

2/لنفرض انك شغلت البرنامج. و نقرت على Add ثم OK على الMessageBox ثم كتبت 2 فى ال edit

و الان ضغطت على Switch. تجد سطح المكتب الجديد بشكل انيق لا يشمهه الا ال MessageBox ذات

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

ال MessageBox لتعود الى طح المكتب الاولى و لكن بعد قليل تلاحظ ان نافذة جديدة ل MyDocuments

قد فتحت دون ادنى مقدمات. اظن ان هذا هو ال explorer و لكن لا ادرى كيف و لماذا حدث هذا.

Desktop.zip

#5

اولا اريد ان أأسف على طرحج الموضوع فى المكان الخاطئ

و لكنى اعزو السبب الى التدرج فى الموضوع.

و شكرا على نقل الموضوع

لكنى فى انتظار الرد :D

#6

احبطت حقا عندما وجدت ان الموضوع ذهب الى الصفحة الثانية

الا يوجد اى رد. :(

#7

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

الى الان تم التحميل 10 مرات و لا رد :(

#8

انا من العشره الي حملوا :lol:

مثال جيد ... لكن اذكر انه سبب لي بعض المشاكل :wacko: (( البسيطة))

ولكن كفكرة .. فكرة مميزة ...... اتمنى ان تواصل اخي وتتعمق في دوال api فهي روح البرمجة (للويندوز))

ولا تزعل اخوي !!

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

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