PDA

نسخه کامل مشاهده نسخه کامل : آیا با vb هم میشه؟



59bahman
19-11-2010, 18:05
با سلام
من یه برنامه دارم که توش تعدادی عکس و فیلم استفاده میشه و داخل یک دایرکتوری هستند .
حالا سئوال من اینه که آیا میشه این عکسا و فیلما رو فقط برنامه استفاده کنه و کاربر نتونه مستقیما اونارو ببینه؟؟
چون تو چند تا برنامه (که نمیدونم با کدوم زبان نوشته شده بودن)دیده بودم که اطلاعات داخل یک فایلی بنام data بود که مرورش بدون برنامه امکان نداشت.
ممنونم اگه سریعتر جواب بدید.
سپاس

_H2_
22-11-2010, 23:39
سلام
با هر زبانی میتوانید اطلاعات را به نوعی رمزنگاری کنید و یا به شکل نوعی دیتابیس چندین فایل و اطلاعات مختلف را روی یک فایل خاص ذخیره کنید ...
طبیعتاً در همچین شرایطی به علت بوجود امدن یک فایل خاص و غیر استاندارد، سایر برنامه ها از بارکردن و دسترسی به محتویات ان ناتوان خواهند بود.

59bahman
25-11-2010, 20:20
با تشکر از عنایت شما دوست عزیز.
ولی بیشتر منظور من نحوه انجام این کار در vb بود که اگر اساتید امر در این خصوص راهنمایی های لازم را عنایت نمایند بسیار سپاسگذار خواهم بود .

!Plus
26-11-2010, 11:46
با تشکر از عنایت شما دوست عزیز.
ولی بیشتر منظور من نحوه انجام این کار در vb بود که اگر اساتید امر در این خصوص راهنمایی های لازم را عنایت نمایند بسیار سپاسگذار خواهم بود .

یه راه خیلی ساده اینه که... یه فایل فشرده درست کنید... از نوع پسورد دار...!؟! (مثلا ZIP یا RAR و یا ...)

اینجوری فقط خودتون می تونید بهش دسترسی داشته باشید...!؟! :13:

کتابخانه های زیادی واسه ایجاد فایل های فشرده وجود داره...!؟! تو اینترنت سرچ کنید... حتما پیدا میشه...!؟! :27:

موفق باشید...!؟! :46:

_H2_
29-11-2010, 00:37
سلام
در VB هم مشکلی ندارد بسته به نوع کاربردتان میتوانید یک ساختار داده ای طراحی کنید و با کمک توابع خواندن و نوشتن فایلها اطلاعات را بازیابی کنید.
در این بین اگر اطلاعات فقط در برنامه خوانده شود و چیز جدیدی ذخیره نشود، کار میتواند خیلی ساده تر شود و اگر برای نمایش محتویات (تصویر و صوت و فیلم و...) مجبور نباشید فایل واقعی در هارد داشته باشید (که به ابزار نمایشی مورد استفاده برمیگردد) باز هم ساده تر میشود.

مثلاً در یک مقیاس ساده میتوانید در اول فایل (همان فایل بزرگ یک تکه) جدولی با خانه های 4 بایتی تعبیه کنید که آدرس شروع هر فایل در یک خانه باشد و طبیعتاً هر زیر فایل که داخل بسته شده (در ساده ترین شکل) یک عدد داشته باشد.

برای استخراج فایل کافی است با توجه به شاخص آن به خانه مراجعه کنید و آدرس شروع را در آورده و تا ادرس بعدی (یا به طول مشخص در جدول) اطلاعات را بخوانید.
اگر امنیت اطلاعات مهم باشد میتوانید انها را با الگوریتم ها رمزنگاری دوطرفه مثل AES یا DES و یک رمزعبور با یک الگوریتم هش یک طرفه از MD5 گرفته تا حتی SHA512 رمزنگاری هم کنید.

برای خواندن و نوشتن فایلها در VB10 میتوانید از کلاسهای System.IO استفاده کنید و برای رمزنگاری اطلاعات هم از System.Security.Cryptography استفاده کنید.

در VB6 هم برای خواندن و نوشتن فایلها میتوانید از دستورات Open,Close,Put,Get استفاده کنید.

=====

اگر مشکلی در خصوص توابع و دستورات این عملیاتها در VB10 داشتید، با جزئیات بیان کنید، سعی میکنم در وقت خالی که داشتم جواب دهم.
موفق باشید.

59bahman
16-12-2010, 14:03
با سلام و تقدیر از اساتید عظام بالاخص _H2_.
و همچنین تسلیت ایام سوگواری اباعبدا....
عارضم اینکه بیشترین مشکل من در باره فیلم ها و عکسهایی است که به همراه برنامه روی هارد کاربر قرار میگیرد و من میخوام کاربر بطور مستقیم (از طریق فولدر مربوطه) بهشون دسترسی نداشته باشه.
باز هم سپاس منو پذیرا باشید.

afceaglee2013
16-12-2010, 19:21
با همون روشی که خودتون اشاره کردید و دوست عزیز شرح دادن میشه این کار رو انجام داد .. یه کار دیگه هم میشه انجام داد که با این روش لازم نیست فایلها در جایی ذخیره بشن
به این صورت که فایل رو به صورت binary باز کرده و تمام بایت ها رو خونده و بعد از Not کردن در جای خودش ذخیره کرد مثلا اگه بایتی به این صورت باشه 00011100 به این صورت 11100011 تغییر یافته و در جای خودش ذخیره میشه .. البته این روش به دلیل زمانبر بودنش برای فایل های حجیم پیشنهاد نمیشه و البته اگر روش درستی به کار نبرید ممکنه در صورت ریستارت ناگهانی خود فایل از بین بره (اگه اصولی کار بشه هیچ مشکلی ایجاد نمیشه)


فایلهای عکس مشکلی ندارن و میشه فایل اصلی رو بعد از لود کردن تصویر در برنامه از بین برد و یا قفل کرد (با روش بالا) ولی مشکلی که هر دوی این روش ها داره اینه که video player ها معمولا فایل اصلی رو نیاز دارند و باید فایل سالم بهشون داده بشه که در این صورت کاربر میتونه محل فایل رو پیدا کنه میتونه اونو کپی کنه (من این روش رو چند بار به کار بردم:31:) .. مگر اینکه پلیر برنامه شما امکانات دیگه ای داشته باشه ولی به هر حال اگر فایل به صورت exclosive هم از طرف player باز شده باشه به نظرم میشه اونو کپی کرد که این هم بستگی داره به اهمیت فایلها که ارزش داره روشهایی برای از بین بردن این احتمال به کار برد یا نه ..

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

sadeghbarout
17-12-2010, 13:50
من هم همین مشکل رو دارم
میخواستم ببینم میشه کاری کرد که فایل کنار برنامه رو نشه Delete کرد؟
چون اگه Delete بشه تمام کارهای پسورد گذاری بیهوده میشه

ممنون اگه جواب بدید

_H2_
20-12-2010, 20:35
سلام

video player ها معمولا فایل اصلی رو نیاز دارند و باید فایل سالم بهشون داده بشه که در این صورت کاربر میتونه محل فایل رو پیدا کنه میتونه اونو کپی کنه
در خیلی از موارد میتوان محتویات را به صورت Stream تحویل ابزارها داد در این حالت دیگر نیاز به ذخیره فایل در هارد و تحویل ان به برنامه ندارد.

البته برای پشتیبانی کامل این مورد باید کامپونت های خوب و منعطفی داشت.
مثلاً در مورد تصویر و صوت امکاناتی در VB10 وجود دارد که ان را از برنامه خارجی بینیاز میکند و میتوان اطلاعات را به صورت داخلی خواند و از رمز باز کرد و بخش و نمایش داد، بدون انکه چیزی روی هارد قرار بگیرد.
برای فیلم هم VB10-WPF کنترلر داخلی برای بخش فیلم دارد، من Stream را در ان چک نکردم، ولی اغلب کنترلرهای مرتبط با فایل در دات نت به راحتی Stream را هم ساپورت میکنند.


فایل کنار برنامه رو نشه Delete کرد؟
اگر برنامه Run باشد، بله ولی در غیر این صورت بالاخره امکان حذف ان وجود دارد و صد البته برنامه شما هم میتواند در صورتی که فایلش را پاک کردند پیغامی دهد و اجرا نشود.
وقتی شما Photoshop را نصب میکنید دیگر شرکت Adobe ضمانتی نمیدهد که شما بروید فایلهای exe و dll آن را پاک کنید و باز هم اجرا شود!
حتی شما میتوانید در صورتی که فایل عوض شد تا کوچکترین تغییری کرد و فایل اصلی نبود، باز هم متوجه شوید و برنامه تان اجرا نشود (با یک الگوریتم هش مثل SHA512)

=====

متاسفانه سمپل خوبی در این مورد ندارم و نزدیک ترین سمپلهایی که آماده دارم، مربوط به تصاویر میشود.
برنامه ها تحت VB9 و VB10 است و برای بازکردن به VS2008 یا VS2010 نیاز دارد.
نمونه کامپایل شده و exe ان ها هم موجود است که بدون هیچ پیشنیاز و مشکلی در Vista و Win7 اجرا میشوند و برای اجرا در محیط XP نیاز به نصب بودن Framework2.0 دارند.


1)
یک سمپل که تصاویری داخل gzip را بدون extract در مسیر هارد پیدا کرده و باز کرده و نشان میدهد.
به راحتی و با چند خط کدنویسی بیشتر میتوان الگوریتم های رمز نگاری روز دنبیا مثل DES یا AES و... را روی فایل بست تا طرف هزاران سال زمان بخواهد که بتواند رمز فایلها را پیدا کند.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

2)
یک سمپل دیگر برای ذخیره و خواندن تصاویر از فایل های mdb (که هم میتوان پسوند mdb را تغییر نام داد و هم روی ان رمز گذاشت و... و...)
در این مورد هم هیچ extract ای انجام نمیشود و باز هم به سادگی میتوان الگوریتم های رمزنگاری را روی مقادری ذخیره شده اعمال کرد.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

به همین منوال میتوان اطلاعات را با رمزنگاری کامل در XML و یا فایلهای کامل Binary ذخیره کرد و...
موفق باشید.