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

هل يمكن تشغيل برنامج معين داخل فورم ؟؟؟

بدأه shadi77 في 16 فبراير 2009 · 6 رد · 819 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا كيفكم جميعا

خطر ببالي اسالكم عن امكانية تشغيل برنامج معين داخل فورم اي بمعنى اخر

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

والمطلوب هنا عند الضغط على زر كوماند مثلا يتم تشغيل البرنامج وتحميله داخل الفورم وليس خارجه؟؟

ان كان ذلك ممكنا ارجو توضيح المتطلبات والطريقة الخاصة بذلك

ودمتم سالمين

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

#2

أخي أعتقد أنى شاهدت مثل هذا الموضوع ولكن لا أتذكره بالوجه الكامل

و لكن أعتقد أننا سنستخدم الدالة shell و مقبض النافذه

و من لديه المعلومه أرجو أل يبخل .

و العلم عند الله

السلام على من إتبع السلام وخشي وجه ربه ذو الجلال والإكرام

#3

ننتظر اخي كابتن العارف ما حيبخل علينا

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

#4
http://www.vb-helper.com/howto_shell_in_mdi.html

سبحان الله وبحمده ... سبحان الله العظيم

#5

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

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


Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_DESTROY = &H2
Private Const WM_CLOSE = &H10

Private Handle As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

ثم ضع الكود أدناه في حدث إستدعاء البرنامج إلى الـ Form مع تغيير كلمة Title إلى عنوان البرنامج المطلوب


If Handle > 0 Then SetParent Handle, Me.hwnd
	Handle = FindWindowEx(0, 0, vbNullString, "Title")

ولتغيير حجم البرنامج وأبعاده لجعلها تتناسق مع الـ Form .. ضع الكود أدناه للحدث Resize


If Handle <> 0 Then
MoveWindow Handle, 0, 0, Me.ScaleWidth / Screen.TwipsPerPixelX, Me.ScaleHeight / Screen.TwipsPerPixelY, True
End If
End Sub
Private Sub Form_Resize()

ولا تنسى إستدعاء حدث الـ Resize فور إستدعاء البرنامج ونقله إلى الـ Form .. بهذا الشكل مثلا

Call Form_Resize

ولإغلاق البرنامج عندإغلاق الـ Form .. ضع الكود أدناه للحدث Unload


If Handle > 0 Then SendMessage Handle, WM_CLOSE, 0, 0
End Sub
Private Sub Form_Unload(Cancel As Integer)

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

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#6

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

بخصوص الاكواد حللتها وطبقتها لكن في شيئ ما زبط ومو عارف ايه هو !!!

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

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

http://www.herosh.com/up/73952/860742091.rar

وتحياتي لك

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

#7

المثال المرفق ينقصه الـ dgerg.frm .. وستجده عندك في المسار أدناه

%ProgramFiles%\Microsoft Visual Studio\VB98\dgerg.frm

واتمنى لو توضيح بسيط عن الفكرة الموجوده في مخيلتك :)

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

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

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