PDA

View Full Version : نمایش تمام متعلقات برنامه در خود فایل exe



Hossis
سه شنبه 28 آبان 1392, 09:45 صبح
سلام
برخی نرم افزارها مانند کتاب های الکترونیکی هستند که تمام متن کتابها رو تو خودشون دارند و کنار نرم افزار چیزی پیدا نمیشه ,
چطور میشه چنین برنامه ای ساخت
البته میشه از ریسورس استفاده کرد و فایلهای جانبی رو تو ریسورس ریخت منتها این کار به صورت پویا نیست و نمی شه مثلا متن جدید رو توش اضافه کرد و برای هر بار، باید جداگانه اون رو کامپایل کنیم
آیا راه بهتری هست؟

alimanam
سه شنبه 28 آبان 1392, 19:13 عصر
با سلام


برخی نرم افزارها مانند کتاب های الکترونیکی هستند که تمام متن کتابها رو تو خودشون دارند و کنار نرم افزار چیزی پیدا نمیشه , چطور میشه چنین برنامه ای ساخت


البته میشه از ریسورس استفاده کرد و فایلهای جانبی رو تو ریسورس ریخت منتها این کار به صورت پویا نیست و نمی شه مثلا متن جدید رو توش اضافه کرد و برای هر بار، باید جداگانه اون رو کامپایل کنیم

فکرنمیکنم راهی جز کامپایل دوباره فایل اجرایی بهتون این امکان رو بده که اطلاعات یا منابع جدیدی رو به فایل ضمیمه کنین . ( به دلیل ماهیت فایل های اجرایی )

موفق باشید./

ak0100
سه شنبه 28 آبان 1392, 20:24 عصر
با سلام
منم با موضوعی که توسط Hossis (http://barnamenevis.org/member.php?49368-Hossis) مطرح شده موافقم و به نظرم اگه حل بشه خیلی کاربرد داره



فکرنمیکنم راهی جز کامپایل دوباره فایل اجرایی بهتون این امکان رو بده که اطلاعات یا منابع جدیدی رو به فایل ضمیمه کنین . ( به دلیل ماهیت فایل های اجرایی )


اما در این مورد با شما موافق نیستم دوست عزیز
فک نمیکنم تو محیط مجازی کامپیوتر غیر ممکنی وجود داشته باشه
همونطور که بسیاری از برنامه ها میتونن این کارو انجام بدن مانند برنامه های نصب ساز

Hossis
سه شنبه 28 آبان 1392, 23:02 عصر
یک راهی که به ذهن من میرسه اینه که از فشرده سازی و گسترش آن در temp و local data کمک بگیریم یعنی فایل اجرایی متعلقاتش رو از بیرون بگیره ولی این ها همه اش در یک فایل فشرده با پسوند exe ریخته بشه و هنگام اجرا، در پوشه های موقتی ویندوز , گسترش یافته و بعد از بستن هم اون پوشه موقت پاک بشه
البته این راه رو عملیاتی نکرده ام هنوز

ak0100
چهارشنبه 29 آبان 1392, 00:19 صبح
شاید بشه با استفاده از نوشتن و خواندن از فایلها یه کارایی کرد

یعنی با استفاده از filestream فایلهای مورد نیاز رو به صورت باینری باز کرد و به آخر یا اول فایل اجرایی اضافه کرد

این کارو نکردم شاید فایل اجرایی خراب بشه و خطا بده که احتمالش زیاده:خجالت:

alimanam
چهارشنبه 29 آبان 1392, 16:14 عصر
با سلام


فک نمیکنم تو محیط مجازی کامپیوتر غیر ممکنی وجود داشته باشه
همونطور که بسیاری از برنامه ها میتونن این کارو انجام بدن مانند برنامه های نصب ساز

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


یعنی با استفاده از filestream فایلهای مورد نیاز رو به صورت باینری باز کرد و به آخر یا اول فایل اجرایی اضافه کرد

این کار به احتمال به یقین باعث میشه که فایل اجرایی شما غیرقابل اجرا بشه. به هر حال به هیچ عنوان نمیشه یک فایل اجرایی پویا به این صورت داشته باشین اگر امکانش بودتا به حال نمونه ایی یافت میشد بازم یاداور میشم ماهیت کنونی این نوع فایل ها دست شما رو به کلی در این زمینه بسته.

موفق باشید./

ak0100
چهارشنبه 29 آبان 1392, 20:47 عصر
غیر از این یه راه که راهی نیست ها
ها یه یه دیگه هم هست اونم اینه که از کامپایلر های موجود مانند کامپایلر c# استفاده کنیم

یعنی یه برنامه آماده داشته باشیم (به صورت کد)
بعد از اون هر وقت که خواستیم مثلا یه کتاب الکترونیکی درست کنیم قسمت متنشو تو یه string قرار بدیم
بعد اونو کامپایل کنیم

چطوره
غیر از این دو راه که راه دیگه ای نیست

ak0100
چهارشنبه 29 آبان 1392, 23:33 عصر
ها یه راه دیگه هم هست



با سلام

فک نمیکنم تو محیط مجازی کامپیوتر غیر ممکنی وجود داشته باشه
همونطور که بسیاری از برنامه ها میتونن این کارو انجام بدن مانند برنامه های نصب ساز


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

یعنی با استفاده از filestream فایلهای مورد نیاز رو به صورت باینری باز کرد و به آخر یا اول فایل اجرایی اضافه کرد


این کار به احتمال به یقین باعث میشه که فایل اجرایی شما غیرقابل اجرا بشه. به هر حال به هیچ عنوان نمیشه یک فایل اجرایی پویا به این صورت داشته باشین اگر امکانش بودتا به حال نمونه ایی یافت میشد بازم یاداور میشم ماهیت کنونی این نوع فایل ها دست شما رو به کلی در این زمینه بسته.


و در جواب شما باید بگم که دوست عزیز ما یه دستوری تو داس داریم به نام copy
که اگه به صورت زیر استفاده بشه میتونه چند فایل مختلف رو مخلوط کنه و اولین فایل رو اجرا کنه
و همچنین اولین فایل میتونه فایل exe باشه


copy /b *.exe final-file.exe


برای درک بهتر موضوع بهتره شما هم برگردین به سالها قبل و در مورد برنامه cmd تحقیق کنید

غیر از این سه راه که راه دیگه ای نیست ها ! . . .

----------------------------------------------------------------------------------------------------------------

تو محیط مجازی کامپیوتر غیر ممکنی وجود نداره

Hossis
چهارشنبه 29 آبان 1392, 23:36 عصر
غیر از این یه راه که راهی نیست ها
ها یه یه دیگه هم هست اونم اینه که از کامپایلر های موجود مانند کامپایلر c# استفاده کنیم

یعنی یه برنامه آماده داشته باشیم (به صورت کد)
بعد از اون هر وقت که خواستیم مثلا یه کتاب الکترونیکی درست کنیم قسمت متنشو تو یه string قرار بدیم
بعد اونو کامپایل کنیم

چطوره
غیر از این دو راه که راه دیگه ای نیست
منم همين ايده رو داشتم منتها از پیاده سازی اون سر در نیاوردم
چون باید پروژه کامپایل کننده، فایل x رو در ریسورس های پروژه مقصد وارد کرده و اون رو کمپایل کنه :متفکر:

Hossis
چهارشنبه 29 آبان 1392, 23:39 عصر
با سلام
.....
اگر امکانش بودتا به حال نمونه ایی یافت میشد ...
موفق باشید./
خب من هم مثال زدم که چنین فایلهایی مثل کتابهای الکترونیکی exe و نيز برنامه های کتاب ساز ایجاد شده و عرضه میشه!

ak0100
پنج شنبه 30 آبان 1392, 14:44 عصر
راستی من تو پست قبلی کامپیلر c# رو مثال زده بودم توجه داشته باشید که کامپایلر نباید از .net باشه

چون برای اجرای اون نیاز به نصب فریم ورک هست و قابل حمل نیست


و در نهایت شما دوست عزیز alimanam (http://barnamenevis.org/member.php?43498-alimanam)
ای کاش تو پست اول حرفتونو پس نمیگرفتین

alimanam
پنج شنبه 30 آبان 1392, 15:53 عصر
با سلام


و در جواب شما باید بگم که دوست عزیز ما یه دستوری تو داس داریم به نام copy
که اگه به صورت زیر استفاده بشه میتونه چند فایل مختلف رو مخلوط کنه و اولین فایل رو اجرا کنه
و همچنین اولین فایل میتونه فایل exe باشه


برای درک بهتر موضوع بهتره شما هم برگردین به سالها قبل و در مورد برنامه cmd تحقیق کنید

دوست عزیز ظاهراً که موضوع هنوز که هنوزه براتون جا نیوفتاده !!!!!!!!! بازم میگم لطفاً بیشتر به صحبت های زده شده در پست شماره یک (http://barnamenevis.org/showthread.php?428336-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%AA%D9%85%D8%A7%D9%85-%D9%85%D8%AA%D8%B9%D9%84%D9%82%D8%A7%D8%AA-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%AF%D8%B1-%D8%AE%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-exe&p=1916807&viewfull=1#post1916807) این تاپیک دقت کنین ! این دوستمون میخواد یک فایل Exe پویا داشته باشه یعنی اینکه به فرض اگه تمامی اطلاعات مورد استفاده در اون فایل اجرایی از قبیل عکس فیلم یا به فرض نوشته تغییر یا کم و زیاد بشه این تغییرات بدون اینکه درجایی از هارد دیسک ذخیره بشه اعمال بشه یعنی فایل اجرایی رو بشه کاری کرد که یک عکس جدید به فرض از طریق ریسورس درش جا بگیره ( در خود فایل exe ) امیدوارم موضوع بیشتر روش شده باشه و از ارائه پست های شخصی کمتر استفاده کنین .


و در نهایت شما دوست عزیز alimanam
ای کاش تو پست اول حرفتونو پس نمیگرفتین

متاسفانه من متوجه نشدم چی رو پس گرفتم ؟؟؟؟؟؟


راستی من تو پست قبلی کامپیلر C#‎‎ رو مثال زده بودم توجه داشته باشید که کامپایلر نباید از .net باشه
چون برای اجرای اون نیاز به نصب فریم ورک هست و قابل حمل نیست

دوست عزیز در تالار وی بی دات نت قراره بحث هایی مورد گفتگو قرار بگیره که در شرح و وظایف دات نت بگنجه !!! قابل حمل رو دیگه از کجا اوردین وسط !!!



خب من هم مثال زدم که چنین فایلهایی مثل کتابهای الکترونیکی exe و نيز برنامه های کتاب ساز ایجاد شده و عرضه میشه!

دوست خوبم شما اول به صحبتی که در پست اول کردین دقت کنین ! شما میگین من مثال کتاب های الکترونیکی رو زدم ! اما آیا اونها بعد از کامپایل شدن قابل دست کاری هستن ؟ آیا میشه بهشون چیزی اضافه کنیم ؟؟ خوب مطمئناً نه نمیشه ! چون دیگه فایل اجرایی کامپایل شده , مهر و موم شده ! خودتون بعد از زدن مثالی که زدین فرمودین که :


البته میشه از ریسورس استفاده کرد و فایلهای جانبی رو تو ریسورس ریخت منتها این کار به صورت پویا نیست و نمی شه مثلا متن جدید رو توش اضافه کرد و برای هر بار، باید جداگانه اون رو کامپایل کنیم

پس مثال شما مثالی نبود که دنبالش باشین فقط نمونه اوردین که مثل اونها کل فایل ها درون یک فایل اجرایی قرار بگیره ( از قبیل عکس و هرچیز دیگه ایی )



منم همين ايده رو داشتم منتها از پیاده سازی اون سر در نیاوردم
چون باید پروژه کامپایل کننده، فایل x رو در ریسورس های پروژه مقصد وارد کرده و اون رو کمپایل کنه

من هم دقیقاً به همین روش اشاره کرده بودم ( پست شماره 2 (http://barnamenevis.org/showthread.php?428336-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%AA%D9%85%D8%A7%D9%85-%D9%85%D8%AA%D8%B9%D9%84%D9%82%D8%A7%D8%AA-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%AF%D8%B1-%D8%AE%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-exe&p=1917118&viewfull=1#post1917118) )


فکرنمیکنم راهی جز کامپایل دوباره فایل اجرایی بهتون این امکان رو بده که اطلاعات یا منابع جدیدی رو به فایل ضمیمه کنین .

و اما سخن آخر : شما میتونین در ریسورس برنامه هرچیزی رو که بشه با استریم اون رو خوند , در حافظه اجرا کنین ( عکس و تصویر و رشته که جای خود داره فایل اجرایی هم قصه اش همینه با کمی تغییر )

من در نسخه جدید قفل نرم افزاری خودم به خوبی این کار رو کردم اگر شما سوالی در این زمینه داشتین میتونم کمکتون کنم . کار زیاد سخت نیست فقط نیاز به کمی مطالعه راجب به یکی دوتا فضای نام داره .


موفق باشید./