PDA

View Full Version : گفتگو: برنامه ای با خروجی اجرایی(EXE)



quantomquery
یک شنبه 15 آذر 1388, 09:20 صبح
سلام

می خوام رو یه موضوعی بحث و گفتگو بشه تا به نتیجه ای برسیم

موضوع طراحی و ساخت برنامه ای که خروجی exe داشته باشه مثلا بتونیم یه برنامه ساخت اتوران بسازیم که با build کردن برنامه همراه فایل inf یه فایل اجرایی با مشخصات تعیین شده در برناممون، ساخته بشه ؟
(توضیحات بیشتر : برنامه ای شبیه MultiMedia Builder)
به نظر شما چه باید کرد ؟

سعید صابری
یک شنبه 15 آذر 1388, 09:27 صبح
من vb كار نيستم! ولي فكر مي كنم بايد كارهاي كه كاربر انجام مي دهد روي فرم به صورت كد دربياري بعد با استفاده از يه كامپايلر كه بايد همراه برنامت باشه اون كامپايل كني.

REZADG
یک شنبه 15 آذر 1388, 21:18 عصر
آخرین راه کار اینه که شما به برنماه یه سری دستور تعریف کنی و در هنگام اجرای اون دستور از کد های ویژوال استفاده کنی و کمپایل اگر کمه بگو بیشتر بگم

quantomquery
دوشنبه 16 آذر 1388, 15:41 عصر
اگه می شه یه کم بیشتر توضیح بدین ؟

در ضمن یه چیز دیگه هم هست :
خب اولین کارمون اینه که یه فرم با یه toolBox داشته باشیم مثل vb که مثلا بتونیم یه دکمه به صفحه اظافه کنه بعد یه بخش برای نوشتن کد برای اون تعریف کنیم و ادامه

یه فرم با یه toolBox که با دابل کلیک روی گزینه هاش بتونیم اونو توی workspace مون بیاریم و بتونیم جاشو تغییر بدیم .... چطور باید انجامش بدیم ؟

parselearn
دوشنبه 16 آذر 1388, 16:08 عصر
اگه می شه یه کم بیشتر توضیح بدین ؟

در ضمن یه چیز دیگه هم هست :
خب اولین کارمون اینه که یه فرم با یه toolBox داشته باشیم مثل vb که مثلا بتونیم یه دکمه به صفحه اظافه کنه بعد یه بخش برای نوشتن کد برای اون تعریف کنیم و ادامه

یه فرم با یه toolBox که با دابل کلیک روی گزینه هاش بتونیم اونو توی workspace مون بیاریم و بتونیم جاشو تغییر بدیم .... چطور باید انجامش بدیم ؟
اينكه گفتين قسمتي يا همش
به هر حال
فايل ضميمه رو تا به حال چندين بار گذاشتن
ولي خوب پيداش نكردم
روش كار: يك تمپلت داريم كه اونو كامپايل مي كنيم

http://barnamenevis.org/forum/showthread.php?t=158831&highlight=compile
http://barnamenevis.org/forum/showthread.php?t=136486&highlight=compile
http://barnamenevis.org/forum/showthread.php?t=165360&highlight=compile

AmirAmiri
دوشنبه 16 آذر 1388, 17:48 عصر
سلام دوستان.
برای اینکه بخوایم یک فایل اجرایی بسازیم چندین راه وجود داره.
1- کامپایل کردن یک فایل اجرایی که همون برنامه نویسی هست و باید ساختار فایلهای اجرایی رو بدونید. پیشنهاد میکنم این راه رو بی خیال بشید.
2- ساخت یک فایل اجرایی در محیط ویژوال بیسیک به طوریکه کاملا پویا باشه. منظورم از پویا بودن اینه که هیچ چیز تو برنامه به صورت ثابت تعریف نشه و همه چیز توسط کاربر قابل تغییر باشه مثل رجیستری ویندوز شاید این مثال زیاد درست نباشه اما میتونه شبیه باشه.
3- ساختن برنامه ای مثل WinRAR که در واقع یک قالب کلی داره. به عنوان مثال شما تو برنامه تون طوری باید عمل کنید که از انتهای فایل اجرایی (همون فایل در حال اجرا) شروع به خوندن اطلاعات کنه.

برای مثال سوم برای اینکه مطلب رو بهتر بگیرید اینطور تصور کنید که برنامه ی خیلی ساده ای نوشتید که قراره بعد از اجرا شدن براتون یک موسیقی پخش کنه. در ابتدا بهترین راهی که به نظرتون میرسه اینه که فایل موزیک رو همواره در کنار فایل اجرایی داشته باشید و زمانیکه برنامه رو اجرا میکنید از همون مسیر به دنبال فایل موزیک بگرده و اون رو اجرا کنه. در واقع همین برنامه خیلی ساده ای که نوشتید، تا حدود خیلی زیادی پویا هست به دلیل اینکه شما میتونید فایل موزیک رو عوض کنید (فقط نامش نباید فرق کنه).
حالا کمی سطح برنامه رو میبریم بالا تر. برنامه نباید به فایله دیگه ای وابسته باشه و باید به تنهایی یک موسیقی پخش کنه. برای اینکار چه راه حلی به نظرتون میرسه؟ راه حل من اینه :
همون برنامه رو طوری بنویسیم که به جای خوندن از فایل موزیک، از انتهای خودش شروع به خوندن داده ها (سورس فایل موزیک) بکنه. متوجه نشدید؟ بزارید اینطوری توضیح بدم، من برنامه پیخش موسیقی رو نوشتم، حالا فایل موزیک رو به انتهای فایل اجرایی اضافه میکنم و برنامه رو اجرا میکنم. همون طور که گفتم برنامه اطلاعات (موزیک) رو از انتهای خودش میخونه و پخش میکنه.
در واقع من تصور میکنم که این راه حل همون راه حلی هست که WinRAR به کار برده.

فرض کنید میخواید یک دکمه در مختصات (X,Y) = (100,200) به فرمتون اضافه کنید (طبق گفته شما مثل MMB) حالا چکار میکنید. اگه من باشم دو راه حل رو پیشنهاد میکنم.
1- همواره یک فایل متنی در کنار برنامه وجود داشته باشه و اونجا یک سری کدهای فرمت بندی شده با یک قالب مخصوص قرار بدید. منظورم اینه که خودتون برایه برنامتون قالب مخصوصی طراحی کنید. متوجه نشدید؟ حالا میگم... فرض کنید من تو رویداد لود برنامه گقتم که از همون فایل متنی دستورات رو بخونه و به اوها عمل کنه. به نظر شما این کار پطور ممکنه؟ اگه ما برای برنامه یک سری دستورات و فرمت کیل تعریف کنیم به راحتی میتونید اینکارو انجام بدید. احتمالا با کنترل های زمان اجرا کار کردید، کدی که در بایین نوشتم ماله VB.NET هست اما میتونه کمک خوبی برای فهمیدن موضوع باشه.



Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
Dim x As New Button()
x.Name = "btn1"
x.Parent = Me
x.Left = 100
x.Top = 200
x.Text = "Hello"
x.Visible = True
End Sub


این تکه کد در زمان لود فرم اجرا میشه و یک Button در مختصات داده شده ایجاد میکنه. حالا کاری به کد و برنامه نویسی ندارم منظورم اینه که اگه به جای اعداد فوق، عددی رو بگزاریم که تو فایل متنی نوشته شده، برنامه کاملا پویا میشه. به کد زیر توجه کنید :



Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
Dim strControl As String = ""
FileOpen(1, Application.StartupPath & "\Controls.txt", OpenMode.Input)
While Not EOF(1)
Input(1, strControl) ' ===> strControl="btn1,100,200"
Dim s() As String
s = Split(strControl, ",") '===> s(0)="btn1" : s(1)="100" : s(2)="200"
Dim x As New Button()
x.Name = s(0)
x.Parent = Me
x.Left = Val(s(1))
x.Top = Val(s(2))
x.Text = "Hello"
x.Visible = True
End While
FileClose(1)
End Sub


خلاصه اینکه با این ترفند میتونید چنین برنامه ای بنویسید.

2- راه حل دوم اینه که فایل متنی رو هم به انتهای فایل اجرایی اضافه کنید.

Babak.Hassanpour
دوشنبه 16 آذر 1388, 18:06 عصر
سلام
بطور کلی دنبال این چیز ها و روش پیاده سازیشون در وی بی باشید:
1- پردازش و اجرای اسکریپت
2- ایجاد کنترل در زمان اجرا (Runtime)
3- جاسازی (Embedding ) در فایل اجرایی از طریق ریسورس (resource)
روش کار برنامه:
برنامه شما اسکریپتی رو که کاربر در محیط طراحی بسته به سلیقه اش ایجاد کرده (در اصل برنامه طراحی ؛اسکریپت رو بسته به اینکه چه کنترل هایی باید اضافه بشن - چه تصاویر و موسیقی هایی باید کی و کجا ها پخش بشن و .... ؛ میسازه )
با استفاده از جاسازی توسط ریسورس ؛ اسکریپت رو به فایل اجرایی که در اصل پردازش دستورات اسکریپت است اضافه کرده و بعد با استفاده از ایجاد کنترل در زمان اجرا اونها رو ساخته و فرامین رو اجرا می کنید.
مرحله 1 رو که دوستان بالا توضیح دادند
مراحل بعدی هم در سایت وجود .جستجو بفرمایید پیدا میشه.

REZADG
دوشنبه 16 آذر 1388, 21:35 عصر
من خیلی از برنامه نویسی سر در نمیارم چون هر چی دارم خود اموز هستم اما اطلاعات کافی در مورد نحوه ی برنامه نویسی رو بلدم چون خیلی وقط هست که دنبالشم
نمی دونم دوستان چی گفتن حال نکردم بخونم پس هر چی میدنم رو از اول تا ته پیاز مینویسم
روش 1 در این روش که خیلی سخته و تغریبا به نظر اساتید با وی بی عملی نیست اینه که خودتون یک کامپایلر بنویسی یعنی یه چیزی بنویسی که بتونه متون مورد نظرت رو به زبان ماشینی یا یک و صفر تبدیل کنه که کار واقعا سختیه
روش دوم سادست مثل دلفی عمل میکنه یعنی جملات رو به وسیله ی زبان دیگه کمپایل میکنه مثلا با سی پلاس
روش سوم خیلی راحته اونم اینه که مثل مولتی مدیا فقط برنامه رو طراحی و دستورات مشخص ور بنویسی و به وسیله ی الگوی اماده اجراش کنی
OK شد فکر نکنم دیگه چیزی مونده باشه حضور زهنیم همین قدر بود و راستی من میگم غیر ممکن غیر ممکنه یعنی شما اگر بخوایی می تونی با وی بی 6 هم یک کامپایلر بنویسی