PDA

View Full Version : اجرا چند برنامه exe در یک exe



aleas2
پنج شنبه 31 مرداد 1392, 12:05 عصر
دوستان یه سوال داشتم نمیدونم اصلا شدنی یا نه!!

من سه تا پروژه vb6 ساختم که فایل اجرایی هر کدوم

Project1.exe

Project2.exe

Project3.exe

هستن حالا میخوام ببینم راهی هسته که فایل اجرایی بنام project4.exe
بسازم که هر زمان projext4.exe اجرا میکنم سه تا پروژه



Project1.exe

Project2.exe

Project3.exe


در پنجره برنامه projext4.exe اجرا بشن؟


109541

vbhamed
پنج شنبه 31 مرداد 1392, 12:08 عصر
سلام
از تابع SetParent استفاده كنيد، تو همين سايت نمونش هست

aleas2
پنج شنبه 31 مرداد 1392, 12:31 عصر
سلام
از تابع SetParent استفاده كنيد، تو همين سايت نمونش هست

ممنون همینی خودتان گفتین SetParent سرچ کردم ولی چیزی پیدا نکرد ! اگر چیز ديگه ای باید سرچ کنم ممنون میشم بگین

ضمنا" اینکاری من میخوام بکنم اجرا برنامه که خطی نمیشه؟یعنی این سه تا برنامه بصورت جدا گانه به کارشون انجام بدن فقط در قالب project4.exe باشن


اگر قبلا بحث شده بگین چی سرچ کنم ممنون میشم چون من به نتيجه نرسیدم اگر نشده خودتون یه نمونه بذارین یا راهنمایی ممنون میشم

vbhamed
پنج شنبه 31 مرداد 1392, 17:41 عصر
سلام
فقط كافيه هندل اون 3 تا فرمتون رو به برنامه چهارم بدين
http://barnamenevis.org/showthread.php?148772-%D9%86%D9%81%D8%B1-%D8%A8%D8%B9%D8%AF%D9%8A-%D9%83%D9%8A%D9%87-%D8%9F&p=689356#post689356

aleas2
پنج شنبه 31 مرداد 1392, 21:58 عصر
ممنون یه سوال دگه هم داشتم ! حالا چطور میتونم وقتی برنامه چهارم میزنم روی * همون بستن برنامه با چه کی باید تو رویداد


Private Sub Form_Unload(Cancel As Integer)
بنویسم که اون سه تا برنامه هم end بشه
چون اینجور برنامه چهارم میبندم باز اون سه تا برنامه در Process هستن

tootro20
پنج شنبه 31 مرداد 1392, 22:59 عصر
سلام.
اگه شما می خواین که همه برنامه ها یکجا اجرا بشن می تونید بایند هم کنیدا !!

aleas2
پنج شنبه 31 مرداد 1392, 23:37 عصر
سلام.
اگه شما می خواین که همه برنامه ها یکجا اجرا بشن می تونید بایند هم کنیدا !!
متوجه نشدم !

aleas2
جمعه 01 شهریور 1392, 11:31 صبح
جواب نهایی !

توابع api به فرم اضافه کنید

Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, _
ByVal nCmdShow 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

Dim Handle As Long

نمایش برنامه مورد نظر در فرم


Private Sub Form_Load()
Handle = FindWindow(vbNullString, "عنوان پنجره")
SetParent Handle, Form1.hwnd
End Sub

hide کردن برنامه

Call ShowWindow(Handle, 0)

show برنامه

Call ShowWindow(Handle, 5)

بسته شدن برنامه


Private Sub Form_Unload(Cancel As Integer)
If Handle <> 0 Then
CloseResult = SendMessage(Handle, &H10, 0&, 0&)
End If
End
End Sub

aleas2
جمعه 01 شهریور 1392, 23:29 عصر
ببخشید دوستان یه سوال داشتم ! شایدم از پیش پا افتاده
با این کاری بنده کردم سه تا پروژه رو در project4.exe نمایش میده میخواستم بدونم
آیا اجرا این سه تا برنامه بصورت خطی میشه ؟یا هر کدام از این سه تا برنامه بصورت جدا گانه به کار خودشان ادامه میدن حتی اگر توسط کد

Call ShowWindow(Handle, 0)
hide بشن؟

Mr'Jamshidy
شنبه 02 شهریور 1392, 00:16 صبح
ببخشید دوستان یه سوال داشتم ! شایدم از پیش پا افتاده
با این کاری بنده کردم سه تا پروژه رو در project4.exe نمایش میده میخواستم بدونم
آیا اجرا این سه تا برنامه بصورت خطی میشه ؟یا هر کدام از این سه تا برنامه بصورت جدا گانه به کار خودشان ادامه میدن حتی اگر توسط کد

Call ShowWindow(Handle, 0)
hide بشن؟

نه به صورت خطی نمیشه چون هر کدوم Thread مخصوص به خودش رو داره
در اصل موضوع اصلا هیچ ربطی به هم ندارن مگر این که برنامه نویس برای این موضوع مواردی رو پیش بینی کرده باشه