PDA

View Full Version : ایجاد یک فایل exe حاوی فایل ها و اطلاعات توسط برنامه اصلی



sara_aryanfar
جمعه 20 مرداد 1391, 15:37 عصر
با سلام خدمت دوستان ما چطوری می تونیم توسط برنامه اصلی خودمنو یک فایل اجرایی جدید تولید کنیم که اونم شمال کنترل های خودش باشه مثلا فرض کنید ما تو برنامه اصلی چند تا فایل و یه ادرس رو دریافت می کنیم حالا چطوری یک فایل اجرایی دومی تولید کنیم که شامل اون فایل ها و ادرس باشه ممنون اگر راهنمایی کنید

nunegandom
جمعه 20 مرداد 1391, 16:05 عصر
سلام
اینو ببین

از یه تکست باکسه مخفی به عنوان سورس کد جدید استفاده کردم!

sara_aryanfar
جمعه 20 مرداد 1391, 16:35 عصر
آیا امکان این هست که ما یک فایل رو همراه برنامه قرار بدیم و ازش حفاظت کنیم مثل یک فایل pdf یعنی این فایل توسط برنامه باز بشه؟

nunegandom
جمعه 20 مرداد 1391, 16:52 عصر
یعنی با پسوند خاص؟ خوب باری اینکه پسوند خاص رو به کامپیوتر بفهمونید تویه انجمن هست
ولی اینکه با چیز دیگه ای باز نشه اولش تویه Program.cs باید چک کنی که پارامتر فلان رو داره یا نه، نداشت بسته بشه، چیز خاصی نیستش

sara_aryanfar
جمعه 20 مرداد 1391, 17:03 عصر
نه ببین ما یه فایل پی دی اف داریم مثلا حالا می خواهیم حالا اینو داخل یه برنامه exe گذاشتیم می خوام فقط کاربر با این بتونه فایل رو باز کنه و فقط فایل exe براش قابل دسترس باشه نه فایل پی دی ف در واقع می خوام به نوعی از پی دی اف حفاظت کنم

tooraj_azizi_1035
جمعه 20 مرداد 1391, 17:17 عصر
این فایل رو به عنوان Resource اضافه کن و خاصیت Copy To Output Directory رو برابر Do not Copy قرار بده. تا فقط خود برنامه بتونه بازش کنه.

http://msdn.microsoft.com/en-us/library/e2c9s1d7.aspx

sara_aryanfar
جمعه 20 مرداد 1391, 17:34 عصر
میشه یک مثال عملی برام قرار بدین ممنون

tooraj_azizi_1035
جمعه 20 مرداد 1391, 17:38 عصر
اضافه کردن Resource که اینجا هست: http://msdn.microsoft.com/en-us/library/3bka19x4%28v=vs.80%29.aspx
و خاصیت CopyToOutputDirecctory و سایر عملیات لازم: http://msdn.microsoft.com/en-us/library/0c6xyb66.aspx

danialafshari
جمعه 20 مرداد 1391, 19:29 عصر
میشه یک مثال عملی برام قرار بدین ممنون
بله.
من خودم در حال ساخت یک پروژه هستم که این کار را انجام می دهد

ابتدا باید فایل مورد نظر رو در برنامه Resource کنید. برای این کار از منوی Project ><Name Project?>Properties
را انتخاب کنید
بعد از اون صفحه وارد قسمت Resouece شوید و فایل خود را Add کنید

حال کد نویسی-- در Form_Load

byte[] exeBytes = Properties.Resources.<Name File>;// insert resource path here
string exeToRun = Path.Combine(Path.GetTempPath(), "<Name File>.pdf");
if (!System.IO.File.Exists(Path.GetTempPath() + @"<Name File>.pdf"))
{
using (FileStream exeFile = new FileStream(exeToRun, FileMode.CreateNew))
exeFile.Write(exeBytes, 0, exeBytes.Length);
}
else
{
using (FileStream exeFile = new FileStream(exeToRun, FileMode.Open))
exeFile.Write(exeBytes, 0, exeBytes.Length);
}

این برای Resource بود
بعدش دیگه می تونی توسط کامپوننت pdf فایل رو در برنامه باز کنی
توضیح : من گذاشتم که در temp ویندوز کپی شود اگه سوالی بود آیدی منو اد کن : danial_online در یاهو

sara_aryanfar
جمعه 20 مرداد 1391, 20:19 عصر
راهی هست که ما بتونیم امکان پرینت و سیو کردن رو هم از روی پی دی اف های که با وب براوزر داره نمایش داده میشه برداریم؟

ali_habibi1384
شنبه 21 مرداد 1391, 00:04 صبح
راهی هست که ما بتونیم امکان پرینت و سیو کردن رو هم از روی پی دی اف های که با وب براوزر داره نمایش داده میشه برداریم؟
هر ترفني كه شما بزنيد طرف با ساده ترين راه ميتونه شما رو دور بزنه:
يك پرينت اسكرين از فايلهاي باز شده شما بگيره و بعد توي Paint يا Phoshope اونها رو بهم بچسبونه و بعد هم يك پرينت ازش بگيره...

danialafshari
شنبه 21 مرداد 1391, 08:42 صبح
هر ترفني كه شما بزنيد طرف با ساده ترين راه ميتونه شما رو دور بزنه:
يك پرينت اسكرين از فايلهاي باز شده شما بگيره و بعد توي Paint يا Phoshope اونها رو بهم بچسبونه و بعد هم يك پرينت ازش بگيره...

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

nunegandom
شنبه 21 مرداد 1391, 17:38 عصر
وقتی برنامه ی ما درحال اجراست، همه برنامه های دیگه kill بشن! اون وقت دیگه هیچ دزدی در کار نیست! و میتونیم یه white list بذاریم واسه برنامه هایی که میتونن kill نشن! نظری دارید؟

danialafshari
شنبه 21 مرداد 1391, 20:59 عصر
وقتی برنامه ی ما درحال اجراست، همه برنامه های دیگه kill بشن! اون وقت دیگه هیچ دزدی در کار نیست! و میتونیم یه white list بذاریم واسه برنامه هایی که میتونن kill نشن! نظری دارید؟

یک مقدار واضح تر بیان کنید

Y_Safaiee
شنبه 21 مرداد 1391, 21:33 عصر
سلام دوست من

من این پیشنهادات به ذهنم میرسه.

1.میتونین به داخل خود فایلهای پی دی اف برید و امکان چاپ و سیو اونو غیر فعال کنید بعد داخل سایت قرار دهید.
2.میتونین همونطور که دوستان گفتن با کد نویسی آیتمها (پرینت و سیو) رو غیرفعال کنید
3.میتونین تو بگراند پی دی اف نام سایت یا تبلیغ خودتونو قرار بدین که حداقل اگه سیو یا پرینت کرد هرکس دید بدونه ماهیت پی دی اف مال کیه.
4.میتونین اونو با فونت هایی ذخیره کنید که تو هر سیستمی نباشه اینطوری وقتی سیو کنه فونت ها به هم ریخته میشه(فونتم تو سایت ریجستر کنید تا در نمایش سایت مشکلی نداشته باشه)

همینا به ذهنم رسید

منظور دوست عزیزم nunegandom هم این بود که پروسسهایی که کارهای گرافیکی انجام میدن مثه فتوشاپ یا paint تا وقتی پی دی اف در حال نمایشه نتونن باز شن(اصطلاح ساخت Black List) کدشم اینطوریه :



private void button1_Click(object sender, EventArgs e)
{
foreach (System.Diagnostics.Process proc in System.Diagnostics.Process.GetProcesses())
{
if (proc.ProcessName == "mspaint") proc.Kill();
proc.Refresh();
}
}




میتونین یه حلقه ایجاد کنید که هربار تست کنه چه برنامه هایی در حال اجراست اگه برنامه مد نظر شما باز بود ببندش.

موفق باشی
بایت بایت

nunegandom
شنبه 21 مرداد 1391, 21:34 عصر
GamePort دیدین؟
explorer رو EndProcess میکنه و یه سری چیزا رو غیر فعال میکنه و...
خوب من میگم اگه میخایم مثلا Capture نشه، یه سری چیزا رو ، موقعی که قراره برنامه ی ما اجرا شه، kill میکنیم!
مثل Black List هست... فقط اینجا بجاش White List میذاریم، یعنی فقط پروسس ها و سرویس هایی ک تویه White لیستمون هست میتونه اجرا بشه، بقیه همه kill

danialafshari
دوشنبه 23 مرداد 1391, 18:49 عصر
یک کار دیگه هم میشه کرد برای جلوگیری از چاپ pdf و اینکه از webbrowser و برای محدود کردنش از کدهای اکتیوایکس استفاده کنی...