تبليغاتX
برنامه نویسی

برنامه نویسی
آموزش گام به گام برنامه نویسی توسط مهرداد راهی


امکانات

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

سلام هموطن


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

ویژوال بیسیک می تواند به کمک تابع SendMessage هر پنجره فعالی را ببندد. به کمک این تابع می توان یک پیام به پنجره در محیط ویندوز که شناسه آن را میدانیم بفرستیم برای پیدا کردن شناسه از تابع FindWindow استفاده می کنیم.


نمونه برنامه
: در فرم دو دکمه قرار دهید

========== نمونه برنامه و سورس در ادامه مطلب =========

ادامه مطلب
نویسنده: مهرداد راهی ׀ تاریخ: پنجشنبه سی و یکم مرداد 1387 ׀ موضوع: ׀

جلوگیری از اجرا چند مورد از یک برنامه

سلام هموطن


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

برنامه نمونه : برای این کار فقط کد زیر رو در Form_Load بنویسید.


-*-/-*-/-*-/-*-/-*-/-*- سورس در ادامه مطلب -*-/-*-/-*-/-*-/-*-/-*-

ادامه مطلب
نویسنده: مهرداد راهی ׀ تاریخ: پنجشنبه سی و یکم مرداد 1387 ׀ موضوع: ׀

تغییر رزولیشن Change Resolution و تغيير كيفيت رنگ و فركانس

  سلام هموطن


شايد براي شما پيش اومده باشه كه بخواين با برنامتون رزوليشن رو تغيير بدين و ندونين كه چي كنين خب جواب اينجاست

نياز به توضيح نداره فقط در Form_Load موقع فراخواني تابع طول و عرض و کیفیت رنگ ها و فرکانس رو وارد كنين.



*+*+*+*+*+*+*+* سورس در ادامه مطلب *+*+*+*+*+*+*+*

ادامه مطلب
نویسنده: مهرداد راهی ׀ تاریخ: پنجشنبه سی و یکم مرداد 1387 ׀ موضوع: ׀

شبيه سازي حالت Overtype در يك TextBox

سلام هموطن


TextBox هاي ويژوال بيسيك امكان Overtype يا جايگزيني را ندارد (كه در آن هر كاراكتر به جاي كاراكتر قبلي نوشته شود) اين كار را با برنامه نوسي ميتوان انجام داد.


برنامه نمونه :
______________ سورس در ادامه مطلب _____________

ادامه مطلب
نویسنده: مهرداد راهی ׀ تاریخ: پنجشنبه سی و یکم مرداد 1387 ׀ موضوع: ׀

تغيير اندازه مكان نماي يك متن در TextBox

سلام هموطن


تغيير اندازه مكان نماي يك متن در TextBox

هيچ روشي براي تغيير شكل مكان نماي متن مربوط به يك TextBox در ويژوال بيسيك قرار ندارد. اما اين كار از طريق توابع API امكان پذير است. تابع CreateCaret شكل جديدي براي مكان نما ايجاد كرده و آن را به بك پنجره خاص نسبت مي دهد. شكل مكان نما ميتواند يك خط يا يك تصوير Bitmap باشد.

نحوه فراخواني :

========= براي ديدن نمونه برنامه به ادامه مطلب برويد ==========
 

ادامه مطلب
نویسنده: مهرداد راهی ׀ تاریخ: پنجشنبه بیست و چهارم مرداد 1387 ׀ موضوع: ׀

روشن و خاموش شدن کپشن برنامه

سلام هموطن


روشن و خاموش شدن کپشن برنامه شايد تا به حال براي شما پيش اومده كه بخواين برنامه شما در Taskbar خود نمايي كنه و بگه در برنامه اتفاقي افتاده

این کدها را در ماژول کپی کنید:

======/براي دريافت كد به ادامه مطلب برويد\======
 

ادامه مطلب
نویسنده: مهرداد راهی ׀ تاریخ: پنجشنبه بیست و چهارم مرداد 1387 ׀ موضوع: ׀

قرار دادن یک فرم در فرم دیگر (مثل نوار ابزار فتوشاپ)

سلام هموطن


امروز يك كلك خيلي جالب براتون ميزارم. تنها با دو خط كد ناقابل ميتونيد جلوه اي رو بوجود بياريد كه فكرشم نمي كرديد. تصور كنيد بتونيد يك فرم رو توي يك فرم ديگه جابديد. استفاده هاي زيادي ميشه ازش كرد. مثلا ساخت نوار ابزارهايي مثل اوني كه فتوشاپ داره. راجع بهش فكر كنيد. اين هم كدش


براي دريافت كد به ادامه مطلب برويد

ادامه مطلب
نویسنده: مهرداد راهی ׀ تاریخ: پنجشنبه بیست و چهارم مرداد 1387 ׀ موضوع: ׀

استخراج مشخصات سخت افزاری یک سیستم در وی بی

سلام هموطن


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

پس از باز نمودن فایل zip دانلود شده مشاهده خواهید کرد که دو فایل dll و یک فایل ocx در آن وجود دارد . همچنین یگ فایل راهنما نیز بهمراه آنها وجود دارد که طریقه استفاده از کنترل را نشان می دهد . برای استفاده از کنترل فوق وارد محیط ویژال بیسیک شده و سپس وارد منوی Components شوید .  در آنجا روی دکمه Browse کلیک کنید . وارد پوشه ای که فایل zip را در آنجا باز کرده اید شده و فایل HWInfo.ocx را انتخاب کنید تا این کنترل به لیست کنترلهای نوار ابزار شما اضافه شود . حال می توانید از کنترل را روی فرم خود قرار دهید و از امکانات آن استفاده کنید .
این کنترل دارای خصوصیات زیر است :
BaseBoardManufacturer : مشخصات سازنده مادربورد
BaseBoardProduct : نوع چیپ ست مادربورد
BiosVendor : سازنده بایوس
BiosReleaseDate : تاریخ انتشار بایوس
BiosVersion : ورژن بایوس
BiosROMSize : سایز حافظه رام بایوس
SocketDesignation : نوع سوکت پردازنده
ProcessorType : نوع پردازنده
ProcessorManufactor : سازنده پردازنده
ProcessorID : شماره ID پردازنده
ProcessorSerialNumber : شماره سریال پردازنده
با استفاده از این کنترل همچنین می توان اطلاعات هر چهار هارد دیسک IDE سیستم را استخراج نمود برای مثال اگر بخواهید اطلاعات Primary Hard ( شماره یک ) را بدست آورید از خصوصیات زیر استفاده کنید :
HardDisk1ModelNumber : شماره مدل هارددیسک
HardDisk1SerialNumber : شماره سریال هارد دیسک ( شماره سریال کارخانه )
خصوصیات دیگری نیز در این کنترل وجود دارد که برای اطلاعات بیشتر به راهنمای آن مراجعه کنید .

نویسنده: مهرداد راهی ׀ تاریخ: شنبه نوزدهم مرداد 1387 ׀ موضوع: ׀

تشخیص فشرده شدن کليدهای کيبرد

بنا به درخواست


یکی از دوستان سوال کرده بودند که چگونه می توان کلیدهای کیبرد را حتی وقتی فوکوس روی برنامه ما نیست تشخیص داد مانند دیکشنری ها که مثلاً با CTRL+F12 فعال می شوند و یا Keylogger ها که کلیدهای فشرده شده را ثبت می کنند .

من دو روش زیر را برای اینکار پيشنهاد می کنم :

۱ - استفاده از یک تابع کتابخانه ای به اسم  GetAsyncKeyState موجود در کتابخانه user32.dll . این تابع ، فشرده شدن یا رها شدن یک کلید را تشخیص می دهد . نحوه declare کردن این تابع بصورت زیر است :

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

حال در برنامه تان یک timer قرار داده و در event آن کد زیر را قرار دهید :

    For i = 1 To 255
        results = 0
        results = GetAsyncKeyState(i)
        If results <> 0 Then
           Msgbox(Chr(i))
        End If
    Next

۲ - استفاده از قلاب یا Hook : قلاب ، یک ابزار در مکانیزم مدیریت پیغام سیستم ویندوز است که توسط آن برنامه ها می توانند یک روتین را برای مدیریت و پردازش پیغامهای خاصی قبل از اینکه آن پیغامها به برنامه مقصد برسند نصب نمایند . قلابها باعث کندی سیستم می شوند زیرا حجم پردازشی سیستم روی هر پیغام را افزایش می دهند بنابراین بایستی زمانیکه واقعاً به قلاب نیاز دارید آنرا نصب نموده و هر چه زودتر آنرا حذف نمایید . سیستم ویندوز از انواع زیادی از قلابها پشتیبانی می کند که هر کدام امکان دستیابی به پیغامهای خاصی را مهیا می نمایند برای مثال یک برنامه کاربردی می تواند با استفاده از قلاب کیبرد برای مدیریت و پردازش پیغامهای مربوط به آن ( مثل فشرده شدن یک کلید خاص یا رها شدن آن ) استفاده کند .
برای نصب یک قلاب در برنامه از یک تابع کتابخانه ای به اسم SetWindowsHookEx استفاده می شود . این تابع یک قلاب را به زنجیره قلابهای سیستم اضافه می کند . نحوه declare کردن این تابع بصورت زیر است :

Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long

همچنین برای آزاد کردن یک قلاب و حذف آن از زنجیره قلابها از تابع کتابخانه ای UnhookWindowsHookEx استفاده می گردد . نحوه declare کردن این تابع بصورت زیر است :

Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

برای ایجاد قلاب کیبرد همچنین نیاز به تعریف یک ثابت است که شماره قلاب کیبرد در آن قرار دارد :

Public Const WH_KEYBOARD = 2

حال بایستی یک تابع پس زمینه یا Callback Function نوشت که به ازای فشرده شدن کیبرد اجرا شود و آدرس آنرا ( با استفاده از کلمه کلیدی Address Of ) بهمراه ثابت فوق به تابع SetWindowsHookEx فرستاد .

منبع : http://www.mscode.ir
نویسنده: مهرداد راهی ׀ تاریخ: شنبه نوزدهم مرداد 1387 ׀ موضوع: ׀

مینیمایز کردن تمامی پنجره ها از طریق ویِژوال بیسیک

سلام هموطن

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

برای این کار می توانید از تابع keybd_event بهره ببرید.

ترفند به کار رفته در این مثال این است که عمل فشار کلیدهای لازم برای احضار منوی Popup مربوط به عملیات نوار عملیات ویندوز و سپس فشار کلید M از این منو که باعث می شود Minimize All Windows انتخاب و فراخوانی میشود. این کار با سه بار فراخوانی تابع انجام میشود.

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

Private Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
Const KEYEVENTF_KEYUP = &H2
Const VK_LWIN = &H5B
Private Sub Command1_Click()
' 77 is the character code for the letter 'M'
Call keybd_event(VK_LWIN, 0, 0, 0)
Call keybd_event(77, 0, 0, 0)
Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
End Sub
نویسنده: مهرداد راهی ׀ تاریخ: شنبه نوزدهم مرداد 1387 ׀ موضوع: ׀

درباره وبلاگ

سلام...خوش اومدید
آموزش برنامه نویسی با وی بی 6
من مهرداد هستم 20 ساله
-------------------------------
با تشکر دوست شما
My ID : Artam_Shan


لینکدونی

جستجوی مطالب


طراحي و پياده سازي توسط مهرداد راهی