نرم افزار

نرم افزار طراحی شده با ویژوال بیسیک ۶ و دیتابیس SQL بصورت مبتنی بر سرور و شبکه 

متدهای گرافیکی مبتنی بر کدجاک

مناسب برای واحد منابع انسانی 

شماره تماس : 09127558422

پروژه

جهت مشاوره و  سفارش پروژه های کامپیوتری، طراحی گرافیک و برنامه نویسی می توانید با ای دی تلگرام زیر تماس بگیرید

@VBLINK

انتشار برنامه در بازار

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

دانلود نسخه اول

دانلود نسخه دوم


جهت مشاوره در خصوص انتشار برنامه های اندروید می توانید در تلگرام با ما در ارتباط باشید

ای دی تلگرام ما:

VBLINK@

شیخ بهایی

اولین برنامه اندرویدی ما را از لینک زیر یا از طریق مایکت می توانید دانلود کنید

دانلود از مایکت:

ورژن یک:

https://myket.ir/app/Sh.Bahayiiii

ورژن2:

https://myket.ir/app/Sh.Bahayiiii2

 

 

کپی فایل در VB6

دستور کپی فایل از یک مسیز به مسیر دیگر در ویژوال بیسیک 6 

برای این کار از دستور Filecopy به شکل زیر می توان استفاده کرد:

 FileCopy "c:\a.bat", "c:\a.bat"

بدست آوردن شماره سریال هارد

بدست آوردن شماره سریال هارد دیسک با برنامه نویسی ویژوال بیسیک 6

 

برنامه نویسی اندروید: دانلود عکس و نمایش آن در ایمیج ویو

خب کسانی که اندروید کار میکنند میدونند که برای نمایش عکس در برنامه نویسی اندروید باید از Image view استفاده کنند البته این شیء یا چیزی شبیه به این در اکثر زبان های برنامه نویسی سیستمی هم وجود داره که خب کاربرد زیادی هم داره. در بحث برنامه نویسی اندروید یکی از مواردی که میتونه باعث به چشم آمدن برنامه بشه انلاین کار کردن ان است . از ایمیج ویو به طور پیش فرض میتونید عکسی را باز کنید که روی گوشی زخیره شده حالا ما کدی قرار می دهیم که عکسی که روی نت هست رو اول دانلود کنیم و بعد در ایمیج ویو نمایش بدیم.

کد:

 

برنامه نویسی ااندروید: تشخیص ایمیل صحیح

در بسیاری از فرم های ثبت نام دیده اید که اگر کاریری ایمیل را به فرمت نادرستی درج کند پیغام خطا به وجود میاد

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

* این کد مربوط به موتور Basic4andriod  می باشد

SubVerify_Email(MailasString)AsBoolen
Dim eMatch AsMatcher eMatch =Regex.Matcher("\w+@\w+\.\w+", eAddress)
Return eMatch.Find
EndSub

 

ارسال اس ام اس با برنامه نویسی اندروید

سلام

آموزش ارسال پیامک با فشار دادن دکمه در اندروید رو گذاشتم

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

کتابخانه فون رو فراخوانی کرده و بتونید اس ام اس ارسال کنید

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

* برنامه نویسی اندروید در برنامه Basic4Android انجام شده و در اندروید استدیو این کد به نوعی دیگر نوشته می شود

کد:

SubButton1_Click
PrivateSmsAsPhoneSms
Sms.Send2("number","text",False,False)
EndSub

دفترچه تلفن آنلاین

 

دفترچه تلفن آنلاین با ویژوال بیسیک

 

 

 نوع پروژه : سورس
زبان پروژه : VB.NET&ASP.NET
 بانک اطلاعاتی پروژه زمخت سخت‌سران خيس‌كننده بوربور : SQL Server
 تعداد اسماعيل‌فر بازارگرمي برنامه‌دار صفحات :
 حجم فایل چارسوق حتماً پیوست : 7.50

دانلود

رمز: www.sourcecodes.ir

مقایسه استفاده از پایگاه داده منبع باز

عموماً انتخاب پایگاه داده مناسب در فرایند توسعه نرم افزار از مهمترین مراحل تحقیق و توسعه می باشد. در فرایند انتخاب، یکی از اساسی ترین سوالات این است که از پایگاه داده تجاری همراه با لایسنس خریداری شده استفاده شود یا از پایگاه داده منبع باز؟ استفاده از هر کدام این دو نوع پایگاه داده (منبع باز یا تجاری) معایب و مزایای خاص خود را دارا می باشند. در ادامه قصد داریم با توجه به شرایط کشور و شرکت ها و کاربران ایرانی به مزایا و معایب آنها بپردازیم...

عموماً انتخاب پایگاه داده مناسب در فرایند توسعه نرم افزار از مهمترین مراحل تحقیق و توسعه می باشد. در فرایند انتخاب، یکی از اساسی ترین سوالات این است که از پایگاه داده تجاری همراه با لایسنس خریداری شده استفاده شود یا از پایگاه داده منبع باز؟

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

 

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

 

پایگاه داده تجاری یا اختصاصی چیست؟
پایگاه داده های تجاری، محصول شرکتی خاص یا شخصی حقیقی هستند که برای استفاده از آنها باید حتما لایسنس خریداری شود و از شرکت یا شخص مورد نظر مجوز استفاده کسب شود و معمولاً مبلغ بسیار زیادی برای استفاده از آنها باید پرداخت گردد. از قبیل این محصولات می توان به محصولات شرکت های معروفی چون مایکروسافت، اوراکل و IBM اشاره کرد. در این نوع پایگاه داده ها دسترسی به کد محصول وجود ندارد.

 

مقایسه
در هر دو نوع پایگاه داده (تجاری و متن باز)، نمونه های باکیفیتی وجود دارند، ولی نکته ی حائز اهمیت این است که کدام یک کیفیت برتری دارند؟ محصول تجاری که چند توسعه دهنده دارد یا محصول منبع بازی که هزاران هزار توسعه دهنده دارد؟ کدام یک آزادی بیشتری دارد؟  کدام یک دارای قابلیت های بیشتری می باشد و بسیاری مسائل دیگر. در ادامه به بررسی سوالات مطرح شده می پردازیم.

 

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

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

 

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

 

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

 

هزینه
در نرم افزارهای تجاری، معمولاً استفاده کنندگان باید هزینه های بسیار سنگینی بابت خرید مجوز پرداخت کنند. در کشور ما ایران، این گزینه بسیار مد نظر می باشد و اکثر شرکت های ایرانی به دلیل اختلاف ارز، قادر به پرداخت ارقام نجومی این محصولات نیستند. البته راه دیگری وجود دارد که معمولاً از آن استفاده می کنند و راه مذکور کرک نرم افزار است که کاملا غیر قانونی می باشد و در آینده ای نزدیک با برداشته شدن تحریم ها و با از سر گیری مبادلات اقتصادی ایران با کشور های دیگر، بدون شک شرکت هایی که از این محصولات به صورت غیر قانونی استفاده می کردند، می بایست جریمه های بسیار بسیار سنگینی پرداخت کنند.

به متن عکس زیر توجه کنید:

عکس بالا مربوط به Microsoft SQL Server 2016 می باشد که به صورت خلاصه در متن آن گفته شده:

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

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

این موضوع برای تمام نرم افزارهایی که به صورت غیر مجاز استفاده می شوند، مانند Oracle نیز  صدق می کند. برای اطلاعات بیشتر از از قوانین کپی رایت نرم افزارهای Oracle و Microsoft می توانید به لینک های زیر مراجعه کنید.

قوانین کپی رایت Oracle  (ممکن است به دلیل تحریمها دسترسی به این سایت از سوی اوراکل محدود باشد)

قوانین کپی رایت Microsoft

در شرایط کنونی استفاده از نرم افزارهای منبع باز رایگان یا محصولات منبع بازی که دارای لایسنس بسیار ارزان تری نسبت به محصولات اختصاصی هستند، به صرفه می باشد.

 

نکات مطرح شده در بالا در جدول ذیل خلاصه گردیده است:

نکات

Open Source

Proprietary

امنیت

زیاد و قابل تغییر

نامشخص و غیر قابل تغییر

قابلیت سفارش سازی

نامحدود

محدود

نیاز به منابع سخت افزاری و نرم افزاری

کم

زیاد

هزینه

کم و حتی رایگان

خیلی زیاد

 

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

برچسب ها : پایگاه داده، تجاری، متن باز

 

مقایسه زبان های برنامه نویسی

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

 

میزان استفاده از زبان های برنامه نویسی طبق آمار

زبان های برنامه نویسی به 4 دسته شئ گرا، رویه ای، کاربردی و منطقی دسته بندی می شوند. میزان استفاده از هر دسته در میان برنامه نویسان در جدول زیر قابل مشاهده می باشد. البته قابل ذکر می باشد که آمار جدول زیر تا سال 2013 میلادی می باشد. (Wavesoft)

جدول 1 - میزان استفاده از دسته های مختلف زبان های برنامه نویسی

دسته بندی زبان ها

میزان استفاده

Object-Oriented  (شئ گرا)

58.1%

Procedural (رویه ای)

37%

Functional (کاربردی)

3.2%

Logical (منطقی)

1.7%

 

 

جدول 2 - رتبه بندی شرکت TIOBE

رتبه

زبان

میزان استفاده

1

C

18.729%

2

Java

16.914%

3

C++

10.428%

4

Objective-C

9.198%

5

C#

6.119%

6

PHP

5.784%

7

VB (Visual Basic)

4.656%

8

Python

4.322%

9

Perl

3.276%

10

Ruby

1.670%

11

Java Script

1.536%

12

VB.NET

1.131%

13

Lisp

0.894%

14

Transact-SQL

0.819%

15

Pascal

0.805%

16

Bash

0.792%

17

Delphi/Object Pascal

0.731%

18

PL/SQL

0.708%

19

Assembly

0.638%

20

Lua

0.632%

 


در چند نمودار زیر میزان پروژه هایی که در هر ماه با زبان های مختلف توسعه داده می شود، به نمایش در آمده است که این آمارها کاملا به روز می باشند که با مراجعه به سایت OpenHub می توانید به صورت زنده بررسی کنید و اطلاعات بیشتری کسب نمایید.

 

شکل 1 - میزان پشتیبانی این زبان ها در هر ماه

 

شکل 2 - میزان به روز رسانی نرم افزارهایی که توسط این زبان ها توسعه داده شده اند در هر ماه

 


شکل 3 - میزان پروژه هایی که در هر ماه با این زبان ها تکمیل می شوند

 

همانطور که در نمودارها مشاهده می کنید بیشترین نرم افزارهای کاربردی روز دنیا با زبان های ++C ، C و Java در حال توسعه می باشند.  (برای اطلاعات بیشتر به سایت Stackoverflow مراجعه کنید.)

 

شکل 4 - میزان استفاده زبان های برنامه نویسی در سال 2014


نمودار زیر میزان استفاده از زبان های برنامه نویسی در مسابقات را نشان می دهد. (linkedin)

 

شکل 5 - میزان استفاده از زبان های برنامه نویسی در مسابقات

مقایسه زبان های برنامه نویسی از لحاظ سرعت

در نمودار های زیر اقدام به تست سرعت زبان های برنامه نویسی در یک کامپیوتر و استفاده از یک نوع الگورتیم شده است. این تست ها شامل حل پاسخ جدول Sudoku 25*20 و Matrix 1000*1000 می باشد و واحد زمان بر حسب ثانیه است. (Attractivechaos.github)

 


شکل 6 - Sudoku 25*20

 


شکل 7 - Matrix 1000*1000

 

نکته قابل توجه در این قسمت این می باشد که الگوریتم استفاده شده برای حل جدول Sudoku و Matrix می تواند بسیار بهینه تر و سریع تر از این باشد. الگوریتم استفاده شده برای همه زبانها یکسان می باشد.


نمودارهای زیر نشان دهنده میزان سرعت محاسبات عددی توسط زبان های C# و ++C می باشد. (برای بررسی و اطلاعات بیشتر نیز می توانید به سایت CodeProject مراجعه کنید.)

شکل 8 - محاسبات عددی با نوع داده ای مختلف در CPU های ARM

 

شکل 9 - جمع های عددی با نوع داده ای مختلف

 

مقایسه قابلیت ها

در ادامه قصد داریم از نظر قابلیت های کلیدی و مهم، چند زبان برنامه نویسی را مورد بررسی قرار دهیم.

این مقایسه شامل قابلیت های چون شئ گرایی، عمومی بودن، روش سربار گذاری، چند نخی، اشاره گر بودن، امنیت، کاربردی بودن، رویه ای بودن، سطح زبان ها (هر چه سطح زبان پایین تر باشد کد نویسی با آن سخت تر، ولی سرعت آن بالاتر می باشد)، سیستم عامل و پلتفرم های قابل پشتیبانی، انعطاف پذیری، سرعت و سخت افزار می باشد.

 

جدول 3 - مقایسه قابلیت های مختلف چندین زبان برنامه نویسی

قابلیت/زبان

C++

C#

Java

Ruby

Visual Basic

Python

Perl

Object-Oriented

قدرتمند و متغیر

قدرتمند

قدرتمند

ضعیف

قدرتمند

قدرتمند

قدرتمند

Generic Classes

بله

خیر

خیر

-

خیر

-

-

Method Overloading

بله

بله

بله

خیر

خیر

خیر

خیر

Multithreading

بله

بله

بله

بله

خیر

بله

خیر

Pointer Arithmetic

بله

بله

خیر

خیر

خیر

خیر

خیر

Security

بسیار بالا

بالا

بسیار بالا

بالا

پایین

پایین

بالا

Functional

بله

بله

بله

بله

-

بله

بله

Procedural

بله

بله

بله

-

-

بله

بله

Level

سطح بالا – سطح پایین –(میانی)

سطح بالا

سطح بالا

سطح بالا

سطح بالا

سطح بالا

سطح بالا

Operation System (OS)

نا محدود

محدود

محدود

محدود

محدود

محدود

محدود

Flexibility

کاملا انعطاف پذیر - بالا

بالا

بالا

متوسط

متوسط

متوسط

متوسط

Speed

بسیار بالا

بالا

بالا

متوسط

متوسط

متوسط

متوسط

Hardware

اکثر سخت افزارها

محدود

محدود

محدود

محدود

محدود

محدود

 

تیم یار و زبان توسعه آن

همانطور که مشاهده کردیم، زبان C  و ++C از زبان های بسیار قدرتمند و انعطاف پذیر می باشند. باید به این موضوع نیز اشاره کرد که بسیاری از نرم افزار های کاربردی و سریع دنیا توسط این زبان ها توسعه یافته اند.

سایت mycplus تعدادی از بهترین نرم افزارهایی که با زبان ++C نوشته شده اند را نام برده است که عبارتند از:

  • Adobe systems: اکثر اپلیکیشن های اصلی سیستم ادوبی به زبان ++C  نوشته شده اند مانند Photoshop & ImageReady، Illustrator و Adobe Premier.
  • Google: برخی از اپلیکیشن های گوگل مانند Google file System و Google Chromium به زبان ++C نوشته شده اند.
  • Mozilla: مانند بروزر مازیلا فایرفاکس و email client Thunderbird 
  • Microsoft: مانند windows 95, 98, Me, 2000, XP, Microsoft Office, Internet Explorer, Visual Studio

  • MySQL
  •  Allias systme - Autodesk Maya
  • Winamp media player
  • 12D solutions
  • Bloomberg
  • callas software
  • Image softwares
  • Apple - OS X
  • Symbian OS

برای توسعه تیم یار از زبان C و ++C استفاده می شود و برای این انتخاب علاوه بر مقایسه های بالا می توان به چند ویژگی این 2 زبان به صورت زیر اشاره کرد:

  • به صورت جامع و مستقیم از چند نوع روش برنامه نویسی می توان استفاده کرد:
  • برنامه‌نویسی ساخت‌ یافته
  • برنامه‌نویسی شی‌گرا
  • انتزاع داده
  • برنامه‌نویسی جنریک یا عمومی
  • ++C یک زبان سطح میانی، به صورت همزمان شامل سطح بالا و سطح پایین می باشد
  • امکان انتخاب به برنامه نویس می دهد، حتی اگر این انتخاب اشتباه باشد
  • توانایی کنترل کامل سخت افزار توسط زبان C
  • پشتیبانی از اکثر سخت افزار های رایج
  • سرعت فوق العاده بالا، به دلیل امکان کد زنی در سطح پایین
  • دارای کتابخانه های بسیار فراوان و کامل در هر زمینه
  • پشتیبانی از اکثر پایگاه داده ها از قبیل SQL Server، Oracle، DB2، Firebird و ...
  • توسعه نرم افزار برای هر نوع سیستم عامل و پلتفرمی
  • امنیت بالا
  • برنامه نویسی به زبان ماشین و ریزپردازنده ها و میکروکنترلرها
  • انعطاف پذیری بالا

برنامه نویسی سی

مثال:

جستجویی دودویی به صورت غیر بازگشتی

 

برنامه نویسی سی شارپ

مثال برنامه نویسی سی شارپ

سوالات:

پاسخ ها:

 

 

 

 

 

 

نرم افزار مدیریت فلش و پورت یو اس بی

نرم افزار کار با پورت USB و  مدیریت فلش مموری 

در چند ماه گذشته روی سورسی کار می کردیم که قابلیت مدیریت پورت یو اس بی را داشته باشد

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

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

کارهایی که ما قصد داشتیم انجام بدهیم این موارد بود...

1- اگر فلش مموری به سیستم اتصال پیدا کرد برنامه به صورت RUNTIME بتواند آن را تشخیص دهد

خب ما این کار از دو بخش تشکیل شد: تشخیص عادی فلش و قسمت بلادرنگ

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

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

2- در مرحله قبلی ما فقط می توانستیم یک فلش و با یک نام را کنترل کنیم و بلادرنگ تشخیص دهیم... حال اگر فلش دوم یا سوم هم به سیستم اتصال پیدا کرد چه باید می کردیم...؟

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

3- نمایش دادن ایکون مربوط به هر فلش و حالت گرافیکی برنامه

ما برای این قسمت در نظر گرفتیم که از آیکون فلش مموری استفاده کنیم و بگوییم که اگر فلش اول به سیستم متصل شد ایکون مربوط به این فلش در کنار system tray  برنامه ظاهر شود... البته ن در خود سیستم تری . بلکه در قسمت بالای آن به صورت جداگانه ای نمایان شود... همین طور برای فلش های بعدی هم همین کار را انجام دادیم...مشکلی که در این جا داشتیم بدست آوردن مقیاس آن منطقه بود یعنی ما باید آیکون یا همان عکس فلش را در محلی در سمت راست و قسمت پایین قرار می دادیم بطوری که روی نوار وظیفه نیفتد... خب این کار را با دستور screen به راحتی انجام دادیم...یکم جمع و تفریق به این قسمت اضافه کردیم تا اگر فلش بعدی متصل شد درست کنار ایکون فلش قبلی نمایان شود...

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

1- حذف حداقل یک فایل مخرب به طور مثال فایل اتوران از فلش وصل شده بصورت بلادرنگ و قبل از باز شدن فلش.... 

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

3- در بحث امنیتی میخواسیم مواردی ایجاد کنیم مثلا پاک کردن رد و پای فلش وصل شده از سیستم... خب همه ما میدانیم که وقتی فلش یا هر وسیله ای به سیستم متصل می شود یک رد و پا از ان در رجیستری ثبت می شود. مثلا برای فلش نام فلش و زمان وصل شدن آن به سیستم در رجیستری ثبت می شود. ما میخواستیم با اجازه کاربر این مورد را پاک کنیم ... 

4- ...

 

در کل طرح خوبی بود و ارزش کار کردن هم داشت و دارد و همین طور که توضیح دادم میتوان با کمی سعی و خلاقیت به موارد آن افزود این ایده می تواند تا جایی پیش برود که کنترل و مانتیتورینگ دقیق بر روی پورت ایجاد کرد و در آخر میتواند آن را بصورت تحت شبکه قرار داد تا تمامی فلش های متصل شده به هر شبکه ای تحت نظارت باشد و ادمین بتواند هر کاری که خواست با فلش کلاینت ها انجام دهد.... خب تمامی این کار ها را می توان انجام داد ولی یک مشکل اساسی وجود داشت. و آن هم خود ویژوال بیسیک بود(ما برنامه نویسی بر روی پورت انجام دادیم بدون برنامه نویسی پورت)... همینطور که میدانید این پروژه به سمتی ادامه پیدا کرد که ویژووال بیسیک قدرتی در این زمینه نداشت و اگر زبان دیگری مثل سی شارپ بود شاید کمتر وقت صرف این کار می شد و راحت تر هم می توانستیم این کار را انجام دهیم...

دوستانی که میخوان این برنامه را تا آنجایی که ادامه دادیم دریافت کنند و به عنوان پروژه روی آن کار کنند به ایمیل بنده اطلاع دهند... و اگر نکته یا مورد یا ایده خاصی دارید که بتواند به این پروژه کمک کنند لطفا در نظرات اطلاع دهید...