PDA

View Full Version : سوال: ذخیره تمام فولدر Resources در یک فایل(بسته بندی)



foko_barn
یک شنبه 11 فروردین 1392, 12:41 عصر
سلام دوستان

برنامه ما در پوشه Resources یکسری عکس ، آیکون و فایل صوتی دارد.
چه راهی هست که همه ی این فایلها در یک فایل(فورمت مهم نیست) بسته بندی بشوند و روی سیستم کاربر کپی شود و به عنوان منبع برای نرم افزار قابل بهره برداری و دسترسی باشد.

(مهم این است که فایلها کاربردی برنامه در یک بسته بندی(یک فایل) قرار بگیرند که در سیستم کاربر آشکار و فاش نباشند)
(یک چیزی مثل دیتابیس ولی نه از خانواده ی sql)
ممنون

foko_barn
یک شنبه 11 فروردین 1392, 23:56 عصر
دوستان اگر ابهامی در سوال هست بفرمایید تا بیشتر توضیح بدم.

khokhan
دوشنبه 12 فروردین 1392, 00:47 صبح
دوستان اگر ابهامی در سوال هست بفرمایید تا بیشتر توضیح بدم.
درود بر شما

می تونین کلیه فایلها ( اعم از تصاویر یا فایل صوتی ) رو که در برنامه تون به کار بردین درون یک فایل dll قرار بدین واگه خواستین می شه همین فایل dll رو ضمیمه (ایمبد) فایل اجرایی (exe) نمود

foko_barn
دوشنبه 12 فروردین 1392, 01:40 صبح
درود بر شما

می تونین کلیه فایلها ( اعم از تصاویر یا فایل صوتی ) رو که در برنامه تون به کار بردین درون یک فایل dll قرار بدین واگه خواستین می شه همین فایل dll رو ضمیمه (ایمبد) فایل اجرایی (exe) نمود

متشکرم.
این راهی که فرمودید بسیار خوب به نظر میرسه.
حالا راه و شیوه ی اینکه همه فایلها (صوتی ،تصویری و ...) در یک فایل dll جمع بشوند و بصورت مستقل به کار گرفته بشوند چیست؟
آیا در خود برنامه ویژوال استودیو ( 2010 یا 2008 ) می شود این کار را انجام داد یا نیاز به نرم افزار دیگری دارد؟
مراحل کار چگونه است؟
(ببخشید من کمی در این باره مبتدی هستم)

khokhan
دوشنبه 12 فروردین 1392, 12:49 عصر
نحوه ضمیمه کردن فایل DLL بر روی فایل EXEپروژه

http://adamthetech.com/2011/06/embed-dll-files-within-an-exe-c-sharp-winforms/

foko_barn
دوشنبه 12 فروردین 1392, 15:48 عصر
متشکرم.

به شیوه ای که در آدرس بالا فرموده بودید عمل کردم و فایل dll را ضمیمه کردم اما مشکل اصلی در آدرس فایل ها است.
مثلا یک فایل class1.dll داریم که در آن یک فایل ax.jpg و media.mp3 قرار داده ایم.
می خواهیم آدرس این فایل media.mp3 را به یک پخش کننده بدهیم مانند مثال زیر:

WMPLib.WindowsMediaPlayer player = new WMPLib.WindowsMediaPlayer();
player.URL = "c:\\media.mp3";
player.settings.volume = 100;
player.controls.play();

این پخش کننده برای فایلهایی که بیرون از برنامه هستند (روی درایو قرار دارند) به خوبی عمل می کند اما برای آدرس دهی به فایل media.mp3 درون فایل class1.dll چه باید کرد؟

(player.URL = راباید برابر چه قرار داد؟)

khokhan
دوشنبه 12 فروردین 1392, 16:28 عصر
درود بر شما
بهترین شیوه برای فایلهای مدیا اینه که از طریق MemoryStream از فایل dll بخونین و داخل یک فایل بریزین وبعد فایل بوجود آمده رو از طریق پلیر فراخوانی کنین

ارادت

foko_barn
دوشنبه 12 فروردین 1392, 22:42 عصر
درود بر شما
بهترین شیوه برای فایلهای مدیا اینه که از طریق MemoryStream از فایل dll بخونین و داخل یک فایل بریزین وبعد فایل بوجود آمده رو از طریق پلیر فراخوانی کنین

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

آیا راه دیگری هم وجود دارد؟
(البته با توجه به شرایط گفته شده در پست1 و همچنین با در نظر گرفتن این پست)

khokhan
دوشنبه 12 فروردین 1392, 23:14 عصر
سلام

راه دیگه استفاده از کامپننتهایی مثل libvlc هستش که مستقیما اطلاعات ذخیه شده در بافر رو بارگزاری می کنه ونیازی به ذخیره در فایل نداره

بهتره یه نگاهی هم به این تاپیک بندازی

http://barnamenevis.org/showthread.php?390392-%D9%86%D8%AD%D9%88%D9%87-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D9%81%DB%8C%D9%84%D9%85-%D9%88-%D8%A7%D9%87%D9%86%DA%AF-%D8%AF%D8%B1-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3