PDA

View Full Version : ساخت exe در برنامه



aliooali
شنبه 06 فروردین 1390, 08:21 صبح
سلام به همه دوستان
من یه سورس دارم که میخوام متن 8 تکس رو جیگزین 8 تکس دیگخ کنه برای متوجه شدن منظورم فایل رو پیوست میکنم
باتشکر

parselearn
شنبه 06 فروردین 1390, 09:51 صبح
واژه compile را در بخش vb6 جستجو كنيد.

محسن واژدی
شنبه 06 فروردین 1390, 10:27 صبح
سلام علیکم
سورستون رو ویرایش کردم

موفق باشید
یاعلی

aliooali
شنبه 06 فروردین 1390, 11:41 صبح
دوست عزیز این سورس که شما ادیت کردین که سرور رو درست نمیکنه ! اصلا سرور هیچ تغییری نمیکنه

محسن واژدی
شنبه 06 فروردین 1390, 12:49 عصر
دوست عزیز این سورس که شما ادیت کردین که سرور رو درست نمیکنه ! اصلا سرور هیچ تغییری نمیکنه

اینگونه که در سورستان دیدم، فایل Server میخواست مقادیری را از فایلی که توسط Client ایجاد شده را بخواند،
بنده فقط اشکالاتی که در سورس بود را تصحیح کردم، و اینطور که در Client نوشته بودین، میخواست مقادیری که در 8 جعبه نوشته شده را در انتهای فایل اجرایی بنویسد و Server نیز مقادیر نوشته شده در انتهاب فایل ایجادی توسط Client را خوانده و در 8 جعبه خود نمایش میدهد
این برداشتی بود که بنده از سورستان داشتم

اگر این منظورتان نیست کمی در مورد درخواستتون بازتر توضیح بدین انشاء الله درست میشود

موفق باشید

aliooali
شنبه 06 فروردین 1390, 13:59 عصر
ما در پروژه سرور در فرم خودمون 8 تا تکس داریم
بعد ما در پروژه کلاینت خودمون هم 8 تکس داریم
که وقتی ما 8 تکس رو در پروژه کلاینت پر میکنیم و به روی باتن کلیک میکنیم یک فایل سرور برای درست کرده باشه و تمام متن های که در سرور جدیدی که با کلیک روی باتن درست میکنیم اعمال شود

محسن واژدی
شنبه 06 فروردین 1390, 15:54 عصر
برداشتی که بنده از سوالتون دارم اینگونه است، اگر درسته بفرمائید تا ادامه بدیم:

- فایل کلاینت شما شامل 8 textbox است
- میخواهید 8 textboxها را پرکنید سپس بر روی دکمه ذخیره کلیک کنید تا تغییرات در یک فایل exe ذخیره شوند به عبارتی تغییرات کامپایل شوند
- وقتی که بر روی فایل exe ایجاد شده (که بعد از این سرور خوانده میشود) کلیک کردید، 8 جعبه متنی موجود در فایل اجرای شده حاوی متنهای نوشته شده باشند
- سورس Server همان exe موجود در رسورس client است

aliooali
شنبه 06 فروردین 1390, 16:00 عصر
آره دقیقا دوست عزیز

محسن واژدی
شنبه 06 فروردین 1390, 17:10 عصر
موفق باشید

aliooali
شنبه 06 فروردین 1390, 19:40 عصر
دوست عزیز یه مشکل دیگه هم دارم و اونم اینه که من میخوام ظاهر فرم سرور رو عوض کنم هرکاری که میکنم عوض نمیشه و بصورت پیشفرض خودش بالا میاد

محسن واژدی
شنبه 06 فروردین 1390, 19:49 عصر
اینکه بصورت پیش فرض بالا میاد منظورتون لود شدن خودکار اطلاعات هست؟
کمی بیشتر توضیح بدین

aliooali
شنبه 06 فروردین 1390, 21:51 عصر
دوست عزیز منظور من شکل ظاهری فرم هستش مثلا من میخوام یه IMG اضافه کنم به شکل ظاهری فرم نمیشه

محسن واژدی
شنبه 06 فروردین 1390, 23:34 عصر
اگر منظورتون ذخیره کردن یک تصویر در فایل Server است باید یک متغیر از نوع PropertyBag نیز به سایر متغیرهای موجود در Client و Server اضافه کنین و تصویر تعریف شده در Client را در آن ذخیره کنین سپس از طریق Server تصویر را بازخوانی کنید

موفق باشید

aliooali
یک شنبه 07 فروردین 1390, 14:09 عصر
آقا محسن من اصلا از کامپایل چیزی بلد نیستم . من میخوام در سرورم 4 تایمر و 8 لیبل و 2 ایمیج داشته باشم . اگه امکانش هست همون سورس خودمو
ادیت کنید که با برسی کدهای اون بهتر متوجه بشم

با تشکر

محسن واژدی
یک شنبه 07 فروردین 1390, 18:33 عصر
سلام علیکم
پیوست زیر را بررسی کنین، در آن میتوانید در Server.exe علاوه بر ذخیره کردن تصویر داده های دیگری نظیر فایل را هم ذخیره کنید

موفق باشید
یاعلی

aliooali
دوشنبه 08 فروردین 1390, 13:04 عصر
آقا محسن چطوری من میتونم آدرس فایل سرورمو پیدا کنم و بخونم ؟

aliooali
دوشنبه 08 فروردین 1390, 14:24 عصر
چرا سرور من به این شکل در اومده ؟

محسن واژدی
دوشنبه 08 فروردین 1390, 17:20 عصر
چرا سرور من به این شکل در اومده ؟
وقتی دستور Open یک فایل مشخص شده را باز میکند، در صورتیکه این فایل وجود نداشته باشد یک فایل با همان نام مشخص شده منتها با فضای صفر بایت ایجاد میشود، فضای فایلی که در تصویر بالا قرار داده این نیز صفر بایت است

موفق باشید

aliooali
دوشنبه 08 فروردین 1390, 17:44 عصر
برای حل این مشکل باید چیکار کنم ؟

محسن واژدی
دوشنبه 08 فروردین 1390, 17:59 عصر
این یک مشکل نیست و تنها در زمان طراحی دیده میشود (بدلیل نبودن فایل EXE برنامه تون) و در زمان اجرا دیده نمیشود چون فایل EXE برنامه تون با همین نام موجود است
اگر به دستور Open در برنامه تون نگاه کنین:
appt = App.Path & "\" & App.EXEName & ".exe"
Open appt For Binary As #100

متغیر apptبه فایل اجرایی سرور با فرمت exe اشاره دارد که در زمان اجرا بدلیل موجود بودن فایل server.exe دیگر با این موضوع برخورد نخواهید کرد
البته برای راحتی بهتر میتوانید دستورات Form_Load فایل سرور را بصورت زیر قرار دهید تا قبل از اجرای دستور open موجودیت فایل را بررسی کند:



Private Sub Form_Load()
On Error Resume Next
Set svr_data = New PropertyBag
Dim msg As String * 255
Dim src As Variant

appt = App.Path & "\" & App.EXEName & ".exe"
If Dir(appt) = Empty Then Exit Sub
Open appt For Binary As #100
Seek #100, 24576
Get #100, , src
Close #100
svr_data.Contents = src
Text1.Text = svr_data.ReadProperty("Text1")
Text2.Text = svr_data.ReadProperty("Text2")
Text3.Text = svr_data.ReadProperty("Text3")
Text4.Text = svr_data.ReadProperty("Text4")
Text5.Text = svr_data.ReadProperty("Text5")
Text6.Text = svr_data.ReadProperty("Text6")
Text7.Text = svr_data.ReadProperty("Text7")
Text8.Text = svr_data.ReadProperty("Text8")
Image1.Picture = svr_data.ReadProperty("Pic1")
Image2.Picture = svr_data.ReadProperty("Pic2")
Set svr_data = Nothing
End Sub


موفق باشید
یاعلی

NSNhaCkEr
پنج شنبه 27 مرداد 1390, 11:27 صبح
سلام ببخشید تاپیک چند وقت پیش رو اوردم بالا تاپیک کاملی بود دیگه خودم تاپیک نزدم سوال کنم


من دقیقا متوجه نشدم سرور چه شکلی ساخته میشه
الان ما یک فولدر کلاینت داریم یکی سرور ... فایلی که توسط کلاینت ساخته میشه در اصل برای فولدر سرور هست حالا من مثلا میخوام یک تسکت باکس اضافه کنم تو هر دو یعنی سرور و کلاینت این کارو می کنم ولی نمیشه
فکر می کنم همه چی ربط داشته باشه به اون فایل Project1.RES که من نمیدونم چه طوری ادیت میشه یا ساخته میشه لطفا یک توضیح کلی دیگه بدید از روش ساخت Exe تشکر

محسن واژدی
پنج شنبه 27 مرداد 1390, 23:22 عصر
سلام ببخشید تاپیک چند وقت پیش رو اوردم بالا تاپیک کاملی بود دیگه خودم تاپیک نزدم سوال کنم


من دقیقا متوجه نشدم سرور چه شکلی ساخته میشه
الان ما یک فولدر کلاینت داریم یکی سرور ... فایلی که توسط کلاینت ساخته میشه در اصل برای فولدر سرور هست حالا من مثلا میخوام یک تسکت باکس اضافه کنم تو هر دو یعنی سرور و کلاینت این کارو می کنم ولی نمیشه
فکر می کنم همه چی ربط داشته باشه به اون فایل Project1.RES که من نمیدونم چه طوری ادیت میشه یا ساخته میشه لطفا یک توضیح کلی دیگه بدید از روش ساخت Exe تشکر

سلام علیکم
resource موجود در client، فایل کمپایل شده سرور است، که میتوانید مجددا برنامه server را ویرایش، کمپایل و سپس جایگزین resource فغلی client کنین
برای اینکه بتوانید یک خصوصیت جدید به client و server اضافه کنین باید علاوه بر اضافه کردن textهای جدید در هردو یعنی client و server یک متغیر جدید نیز به نوع TextsDatasArgs موجود در client و server اضافه کنین
برای خواندن و ذخیره کردن داده های ذخیره شده هم همانند دستورات نوشته شده در سورس ها عمل کنید

موفق باشید

Veteran
یک شنبه 25 دی 1390, 20:23 عصر
به چه صورت میتونیم برای فایلی که کامپایل میشه ایکون بزاریم ؟ توی برنامه clinet یک ایکون تعیین کنیم و بعد از ساخت فایل سرور ایکون فایل همون ایکونی باشه که ما توی clinet تعیین کردیم باشه

محسن واژدی
جمعه 26 خرداد 1391, 18:30 عصر
به چه صورت میتونیم برای فایلی که کامپایل میشه ایکون بزاریم ؟ توی برنامه clinet یک ایکون تعیین کنیم و بعد از ساخت فایل سرور ایکون فایل همون ایکونی باشه که ما توی clinet تعیین کردیم باشه سلام علیکم
نمونه زیر را بررسی کنید برای مثال:
Private Sub Command1_Click()
ReplaceIcons "c:\icon.ico", "C:\MyApp.exe"

End Sub

موفق باشید

Veteran
جمعه 26 خرداد 1391, 19:03 عصر
عوض نشد.
عکس رو ببینید/

محسن واژدی
شنبه 27 خرداد 1391, 08:28 صبح
سلام علیکم
برای روی فایل های کمپایل شده در وی بی جواب میده اما در مورد سایر فایل ها شاید نتونه

موفق باشید

Veteran
چهارشنبه 29 شهریور 1391, 10:41 صبح
یک روش بهینه و منطقی میشه عرض کنید برای انتقال داده های یک لیست باکس به برنامه سرور ؟؟ داده های لیست باکس برنامه کلاینت رو به لیست باکس برنامه سرور ارسال کنیم.

محسن واژدی
چهارشنبه 29 شهریور 1391, 20:30 عصر
یک روش بهینه و منطقی میشه عرض کنید برای انتقال داده های یک لیست باکس به برنامه سرور ؟؟ داده های لیست باکس برنامه کلاینت رو به لیست باکس برنامه سرور ارسال کنیم.

سلام علیکم

ضمیمه زیر بررسی کنین

موفق باشید

Veteran
چهارشنبه 29 شهریور 1391, 21:44 عصر
منظورم این نبود اقا محسن//
همین سورس بود که داده های یک تکس باکس رو به سرور میفرستاد
این : http://barnamenevis.org/showthread.php?279956-%D8%B3%D8%A7%D8%AE%D8%AA-exe-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87&p=1236065&viewfull=1#post1236065
حالا میخوام داده های یک لیست باکس رو بفرستم.

محسن واژدی
پنج شنبه 30 شهریور 1391, 13:29 عصر
منظورم این نبود اقا محسن//
همین سورس بود که داده های یک تکس باکس رو به سرور میفرستاد
این : http://barnamenevis.org/showthread.php?279956-%D8%B3%D8%A7%D8%AE%D8%AA-exe-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87&p=1236065&viewfull=1#post1236065
حالا میخوام داده های یک لیست باکس رو بفرستم.

سلام علیکم
نمونه زیر بررسی کنین انشاءا... درسته

موفق باشید

Veteran
جمعه 31 شهریور 1391, 12:04 عصر
ممنون جناب واژدی.از اینکه وقت گذاشتید.
یک سوال داشتم.چرا کاراکتر اخر از رکورد اخر علامت سوال میفوته ؟ مثلا اگر ما کلمه "server" رو به لیست باکس اضافه کنیم
وقتی به فایل سرور انتقال داده میشه و ما فایل سرور رو باز میکنیم اخرین رکورد لیست باکس باید کلمه "server" باشه
اما حرف اخر کلمه به علامت سوال تبدیل میشه ?serve
علامت سوال میفوته :متفکر:
البته همه به این شکل نیستند ! بعضی از کاراکتر ها این مشکل رو دارن.

محسن واژدی
جمعه 31 شهریور 1391, 14:06 عصر
سلام علیکم
دوباره ضمیمه پست 32 بررسی کنین

موفق باشید

oYaMaa
یک شنبه 12 آذر 1391, 23:18 عصر
با سلام
جناب واژدی امکانش هست آخرین ضمیمه ای رو که کردید به گونه ای ویرایش کنید تا بشه بر حسب انتخاب از چند ریسورس (سرور های مختلفی که داخل ریسورس قرار میدیم) استفاده شه؟
همچنین فایل ساخته شده توسط کلاینت با نام دلخواه باشه.
خیلی ممنون!

محسن واژدی
دوشنبه 13 آذر 1391, 08:17 صبح
با سلام
جناب واژدی امکانش هست آخرین ضمیمه ای رو که کردید به گونه ای ویرایش کنید تا بشه بر حسب انتخاب از چند ریسورس (سرور های مختلفی که داخل ریسورس قرار میدیم) استفاده شه؟
همچنین فایل ساخته شده توسط کلاینت با نام دلخواه باشه.
خیلی ممنون!

سلام علیکم
کل تنظیماتی که باید انجام بدیم در روال Form1.Command1_Click در برنامه client قرار داره، به عنوان در دستور زیر:

files = LoadResData(101, "CUSTOM")
بصورت ثابت id ریسورس که 101 است را تعریف کرده ایم که میتوانیم از شرطی شبیه زیر استفاده کنیم(بر فرض اینکه سه ریسورس داریم با idهای 101،102 و 103):

Dim vSvrID
If optServer1.Value Then vSvrID = 101
ElseIf optServer2.Value Then vSvrID = 102
ElseIf optServer3.Value Then vSvrID = 103
End If

files = LoadResData(vSvrID, "CUSTOM")


نام فایل ذخیره هم در متغیر sSvrF$ در همین روال ذخیره میشه که میتوانیم از CommonDialog یا Text-Box در این متغیر استفاده کنیم

موفق باشید

oYaMaa
دوشنبه 13 آذر 1391, 13:04 عصر
جناب واژدی یه مشکل پیش اومد برام!
ببینید من وقتی از طریق کلاینت داخل سرور عکس میذارم و ایجادش میکنم، حجم فایل اجرایی سرور بیشتر از 1 مگابایت میشه، در حالی که نه عکس ها حجم زیادی دارن (حدود 200 کلیوبایت) و همچنین اینکه اگر داخل خود سورس سرور همین عکس ها رو بذارم، فایلی که ایجاد میشه، حجم معمولی و بسیار کمتری نسبت به فایل ایجاد شده توسط کلاینت رو داره!
چرا؟

محسن واژدی
چهارشنبه 20 دی 1391, 22:28 عصر
سلام علیکم،
زیاد بررسی نکرده ام، ممکن است چون PropertyBag از نوع Variant هست این افزایش به این خاطر باشه

موفق باشید

oYaMaa
پنج شنبه 21 دی 1391, 12:16 عصر
سلام علیکم،
زیاد بررسی نکرده ام، ممکن است چون PropertyBag از نوع Variant هست این افزایش به این خاطر باشه

موفق باشید
یعنی دقیقا چیکار کنم تا مشکل برطرف شه؟
لطف می کنید بیشتر بررسی کنید.خیلی درگیر این قسمت هستم.
ممنون!

oYaMaa
دوشنبه 07 مرداد 1392, 14:29 عصر
سلام
من میخوام دوباره این تایپیک رو بالا بیارم!
در رابطه با افزایش حجم فایل نهایی که وقتی تصویر به برنامه اضافه میکنیم.طی بررسی که من انجام دادم این مشکل نه از ریسورس هستش و نه از PropertyBag

چون زمانی که عکس داخل محیط وی بی وارد برنامه میشه و بعد از اجرا ما فایل exe می سازیم هیچ مشکلی نیست و حجم طبیعی هست.فقط زمانی که بعد از اجرا تصویر رو وارد میکنیم این افزایش حجم غیر عادی به وجود میاد.
به نظر من مشکل از commondialog هستش یا بهتره بگم لود تصویر بعد از اجرای برنامه.
حالا شما لطف کنید بگید چطور این مشکل رو حل کنم؟

از تمام عزیزانی که پاسخ میدن کمال تشکر رو دارم.

oYaMaa
چهارشنبه 09 مرداد 1392, 17:43 عصر
یعنی حتی یک نفر هم پیدا نشد جواب بده؟!!:ناراحت: