تبليغاتX
روباتیک وبرنامه نویسی
ترفند ها برنامه نویسی در VB.Net

Hibernate و Standby کردن کامپیوتر

' Hibernate
        Application.SetSuspendState(PowerState.Hibernate, True, True)

        '// Standby
        Application.SetSuspendState(PowerState.Suspend, True, True)

شفاف کردن پشت زمینه ی کنترلها

control.BackColor = Color.FromArgb(trancparency, control.BackColor)

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

System.Diagnostics.Process.Start("TaskKill", "/f /im Notepad.exe /t")

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

MessageBox.Show(Application.StartupPath)

+ نوشته شده در چهارشنبه سی و یکم تیر 1388ساعت 12:45 توسط حسین |

برنامه نويسي تحت شبكه محلي در vb.net
اشاره :
يكي از نياز هاي برنامه نويسان در نوشتن برنامه هاي حرفه اي و چند كاربره ، انتقال داده ها بين دو يا چند كامپيوتر كه از طريق LAN و يا از طريق WAN( اينترنت ) با هم در ارتباط هستند مي باشد.چنين امكاني از ابتدايي ترين زبان ها برنامه نويسي تا كنون به اشكال مختلف در اختيار برنامه نويسان قرار گرفته است و سير سهولت در ايجاد ارتباط در بين كامپيوتر ها روز به روز افزايش يافته است بطوريكه اكنون يك برنامه نويس متوسط نيز مي تواند چنين برنامه هايي را بنويسد. برنامه هايي چون ويديو كنفرانس ، بازي هاي تحت شبكه و چت نمونه هايي از اينگونه برنامه ها مي باشد. در اين مقاله سعي شده است اصول ابتدايي اينگونه برنامه ها تشريح شود. پيش نياز استفاده از مطالب اين مقاله آشنايي متوسط به زبان VB.NET و برخي مفاهيم كلي شبكه مي باشد.كاربران زبان C# نيز مي توانند از كليه مطالب اين مقاله استفاده كنند.



روند ارائه اين مقاله بدين شكل خواهد بود:

• انواع مدل هاي شبكه اي، براي برنامه نويسي تحت شبكه
• ابزار هاي .Net براي برنامه نويسي تحت شبكه
• يك برنامه ارسال و دريافت پيام تحت شبكه محلي

پس از اتمام اين مقاله شما توانايي هاي زير را خواهيد داشت :

• آشنايي با برخي از انواع استراتژي هاي موجود براي برنامه نويسي تحت شبكه
• آشنايي با برخي از Class ها و توابع مورد نياز براي برقراري ارتباط بين كامپيوتر ها
• توان ارتباط بين دو كامپيوتر و رد وبدل داده بين آن دو

انواع مدل هاي شبكه اي، براي برنامه نويسي تحت شبكه
منظور از انواع مدل هاي برنامه نويسي تحت شبكه اين است كه چگونه كامپيوتر‌هاي موجود در يك شبكه را در برنامه خود شناسايي كنيم و با آنها ارتباط برقرار كنيم.
در ذيل سه مدل از انواع مشهور آن تشريح شده است:

1ـ سرور(Server) ثابت مركزي و انتقال داده بين كلاينت ها (Clients) از طريق سرور مركزي
همانطور در شكل 1 نشان داده شده است در اين مدل هيچ يك از كامپيوتر‌ها با هم مستقيما در ارتباط نيستند و به همين دليل نيازي به شناسايي ديگر كامپيوتر‌ها در شبكه ندارند. انتقال داده بين كامپيوتر‌ها از طريق سرور مركزي شناخته شده در شبكه انجام مي‌گيرد .هر كامپيوتري به محض ورود به شبكه خود را به سرور مركزي معرفي مي‌كند و ليست ساير كامپيوتر ها را از سرور مركزي دريافت مي‌كند و چنانچه بخواهد داده اي را به ديگر كامپيوتر ها ارسال كند آن را به سرور تحويل داده و وظيفه نهايي تحويل داده به كامپيوتر مقصد به عهده سرور مركزي مي‌باشد و چنانچه داده اي از طرف ساير كامپيوتر ها در شبكه برايش ارسال گردد مي تواند آن را از سرور در خواست كند.


شكل 1



برخي از مزاياي اين مدل:

• نياز به الگوريتمي براي شناسايي ديگر كامپيوتر‌ها نداريم.

• به دليل وجود سرور مركزي قابليت ثبت و پيگيري كليه داده هاي ارسالي بين كامپيوتر ها را دارا مي‌باشد.

• قابليت ذخيره و بعد ارسال، براي اطمينان از دريافت داده توسط كامپيوتر مورد نظر را دارا مي‌باشد.

• تعداد خطوط ارتباطي بين كامپيوتر ها به حداقل مي‌رسد.

برخي از معايب اين مدل:

• در صورت از كار افتادن سرور مركزي در حين عمليات ، كليه ارتباطات و داده ها از دست مي‌رود و عملا شبكه ارتباطي از بين خواهد رفت.

• بار كاري سرور مركزي بسيار بالا بوده و به همين دليل در شرايط يكسان سرعت انتقال داده ها كند تر از ساير روش ها خواهد بود
ادامه مطلب کلید کنید

ادامه مطلب
+ نوشته شده در چهارشنبه سی و یکم تیر 1388ساعت 12:39 توسط حسین |

ما دراين يادداشت به بررسي فايلهاي ترتيبي در VB.NET مي پردازيم.
 درواقع فايل ها را ازنظر ساختاربه دوقسمت تقسيم مي كنيم:
1- فايلهاي ترتيبي
2- فايلهاي تصادفي
درفايل هاي ترتيبي ركوردها به همان ترتيبي كه ازورودي خوانده مي شوند درفايل قرارمي گيرند ودرهنگام خواندن فايل نيز بايد به همان ترتيبي كه ذخيره شده اند خوانده شوند.
اما درفايل هاي تصادفي مي توان به صورت مستقيم به ركوردي دسترسي پيداكرد وآنرا خواند.

نكته : درفايل ترتيبي امكان استفاده از ساختاروجود ندارد اين مورد درفايل تصادفي توضيح داده مي شود.

امادراين يادداشت  به بررسي فايل ترتيبي مي پردازيم وفايل تصادفي رابه يادداشتي ديگرموكول مي كنيم.
حال مي خواهيم ببينيم چگونه مي توان يك فايل ترتيبي ايجاد كرد اطلاعاتي درداخل آن نوشت آطلاعات آنرا خواند وهمچنين چگونه مي توان آن فايل را حذف كرد.
ايجادكردن ويابازكردن يك فايل ترتيبي:
براي ايجاد كردن ويا بازكردن يك فايل ترتيبي ازدستور FileOpen استفاده مي كنيم.
اين دستور سه آرگومان دريافت مي كند:
1- درآرگومان اول بايد يك شماره به فايل خوداختصاص دهيد وازاين به بعد با استفاده ازآن شماره مي توان اطلاعات درون فايل را

 خواند يا نوشت وهمچنين كارهاي ديگررا نيز با استفاده از آن شماره انجام

ادامه مطلب کلید کنید


ادامه مطلب
+ نوشته شده در چهارشنبه سی و یکم تیر 1388ساعت 12:33 توسط حسین |


Vb6 Portable / VB 6 Portable / ویژوال بیسیک قابل حمل
ویژوال بیسیک بدونه نیاز به نصب.

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

مثله اینکه پرشین گیگ مشکل پیدا کرده ، به خاطر همین در دیو شیر اپلود کردم.

اگه دانلود براتون مشکل بود بگید یه جایه دیگه آپلود کنم.


دانلود غیر مستقیم - حجم 4.55 مگابایت
منبع:delphi-cpp.blogfa
+ نوشته شده در یکشنبه دوم فروردین 1388ساعت 12:20 توسط حسین |

تشخیص فشرده شدن کلیدهاي کیبرد
چگونه می توان کلیدهاي کیبرد را
حتی وقتی فوکوس روي برنامه ما نیست تشخیص داد مانند دیکشنري
ها که Keylogger فعال می شوند و یا CTRL+F ها که مثلاً با 12
کلیدهاي فشرده شده را ثبت می کنند .
من دو روش زیر را براي اینکار پیشنهاد می کنم :
GetAsyncKeyState 1 - استفاده از یک تابع کتابخانه اي به اسم
این تابع ، فشرده شدن یا رها شدن یک . user32.dll موجود در کتابخانه
کردن این تابع بصورت زیر declare کلید را تشخیص می دهد . نحوه
است :
Private Declare Function GetAsyncKeyState Lib "user32"
(ByVal vKey As Long) As Integer
آن کد زیر را قرار event قرار داده و در timer حال در برنامه تان یک
دهید :
For i = 1 To 255
results = 0

results = GetAsyncKeyState(i)
If results <> 0 Then
Msgbox(Chr(i))
End If
Next

ادامه مطلب کلید کنید


ادامه مطلب
+ نوشته شده در سه شنبه بیست و هفتم اسفند 1387ساعت 17:16 توسط حسین |

برنامه نویسی سخت افزار در ویژوال بیسیک
مقدمه
شاید تابحال خواسته باشید از طریق پورت پرینتر و یا پورت سریال یا
با سخت افزاري که خودتان ساخته اید ارتباط برقرار کنید . ISA باس
با I/O براي این کار شما نیاز به برنامه اي دارید که بوسیله دستورات
سخت افزار شما ارتباط برقرار کند . چون ویژوال بیسیک داراي
نیست بایستی توسط ویژوال سی یک I/O دستورات کار با پورتهاي
براي کار با این پورتها بسازیم . Dll


و کاربردهاي آن DLL
و INPUT برنامه نویسی کرده باشید با دستورات DOS اگر شما در
آشنا C در outp و inp و با دستورات QuickBasic در زبان OUPUT
پیاده سازي نشده اند . این توابع براي VB هستید . این توابع در
و نیز برنامه نویسان سیستم حیاتی PC سازندگان سخت افزار براي
هستند زیرا به شما اجازه خواندن از پورت و نوشتن به پورت را می
یا کتابخانه Dll باید از VB دهند . براي ایجاد امکان استفاده ار پورت در
اجازه می دهند تا یک کد VB ها به Dll . هاي دینامیک استفاده کنیم
نوشته شده به یک زبان دیگر را در زمان اجرا ( بطور دینامیک ) به
برنامه لینک شود . چون ویژوال سی داراي توابع خواندن و نوشتن
موردنظر استفاده Dll پورت است بنابراین ما از این زبان براي ساخت
می کنیم .
VC در DLL نوشتن
ما بایستی دو فایل را ایجاد کنیم . اولین فایل یک فایل Dll براي ساخت
می CPP یا source ++C است و دومین فایل ، یک فایل DEF یا define
ایجاد کنید . لیست کد Notepad باشد . هر دو فایل را می توانید توسط
این دو فایل بصورت زیر است :
: Port.def file
LIBRARY Port
DLL FOR I/O PORT DESCRIPTION
EXPORTS
Outp @1
Inp @2

: Port.cpp file
#include "conio.h"x
PortData)x short _stdcall Outp(int PortAddress,int
{
Dummy;x short
Dummy=(short)(_outp(PortAddress,PortData));x
return(Dummy);x
};
stdcall Inp(int PortAddress)x_ short
{
PortData;x short
PortData=(short)(_inp(PortAddress));x
return(PortData);x
};
پس از نوشتن این دو فایل آنها را در یک دایرکتوري قرار دهید ( مثلا مورد File و سپس وارد محیط ویژوال سی شوید . از منوي ( C:\port
Projects را انتخاب کنید و در کادري که ظاهر می شود در قسمت New
را انتخاب کنید . همچنین در Win32 Dynamic-Link Library مورد
را وارد port عبارت Project name سمت راست همان صفحه در کادر
را وارد کنید و آنگاه C:\port\port عبارت Location کنید و در کادر
را کلیک کنید . OK

!Error
ایجاد workspace را به cpp و def در مرحله بعدي بایستی فایل هاي
Port روي عبارت FileView شده اضافه کنیم . براي اینکار در برگه
را انتخاب کنید . Project Add Files to کلیک راست کرده و مورد files

را انتخاب کنید . با همین port.cpp در کادري که ظاهر می شود فایل
را نیز به پروژه اضافه نمائید . port.def روش فایل
dll را انتخاب کنید تا Build port.dll شده مورد Build حال وارد منوي
مورد نظر ساخته شود .

ویندوزتان کپی کنید . system ساخته شده را در دایرکتوري dll
در ویژوال بیسیک Dll استفاده از
را In و Out ساخته شده باید ابتدا توابع dll براي استفاده از توابع
کنید : declare
Private Declare Function Outp Lib “port.dll” (Byval
PortAddress as Integer,Byval PortData as Integer) as
Integer
Function Inp Lib “port.dll” (Byval Private Declare
PortAddress as Integer) as Integer
حال در برنامه تان براي نوشتن به یک پورت از دستور زیر استفاده
کنید :
Dummy=Outp(port_number,data)x
و براي خواندن از پورت از دستور زیر استفاده کنید :

Portvalue=Inp(port_number)x
در dll و یک برنامه نمونه استفاده از این port.dll نکته : براي دریافت
ویژوال بیسیک ، در بخش نظر خواهی آدرس ایمیل خود را بگذارید .
و برنامه نویسی آن در ویژوال بیسیک Parallel پورت
تذکر : در مقاله هاي قبلی بخشی تحت عنوان " برنامه نویسی سخت
افزار در ویژوال بیسیک " نوشتم که در آن روشی براي دسترسی به
پورتها از طریق ویژوال بیسیک ذکر شد . لازم به تذکر است که این روش
تنها در ویندوزهاي 95 و 98 امکان پذیر است .
( Parallel ) مبانی پورت موازي
پورت پارالل استاندارد کامپیوتر یک درگاه 25 پینی است که 12 پین آن
DATA ) خروجی می باشد . از این 12 خط ، 8 خط بعنوان داده خروجی
می باشند . 5 ( CONTROL Port ) و 4 خط بعنوان خط کنترل ( Port
( STATUS Port ) پین نیز ورودي بوده و بعنوان خطوط وضعیت
استفاده می شوند .
هستند . ( GROUND ) 8 پین باقیمانده نیز زمین
که هرکدام متناظر با یکی از I/O خطوط پورت پارالل توسط سه آدرس
سه پورت داده ، کنترل و و ضعیت است قابل دسترسی می باشند .
( LPT می باشد ( 1 x آدرس پایه پورت پارالل در اکثر کامپیوترها 3780
status براي پورت ، x براي پورت داده برابر 3780 I/O . بنابراین آدرس
می باشد . x37A برابر 0 command و براي پورت x برابر 3790

و ECP پورت پارالل استاندارد داراي دو حالت توسعه یافته به نامهاي
نیز می باشد . EPP
بوسیله پورت پارالل می توانید مدارهاي جانبی خود را به کامپیوتر
متصل کنید . تنها نکته اي که در این بین وجود دارد چگونگی برنامه
نویسی پورت پارالل و در نتیجه برقراري ارتباط با مدار جانبی است .
براي اطلاعات بیشتر در این زمینه با من تماس بگیرید .
برنامه نویسی پورت پارالل در محیطهاي مختلف ویندوز
می توان به dll با استفاده از این : Inpout32.dll استفاده از کتابخانه
دسترسی داشت Win 9x/NT/2000/XP پورتهاي سیستم در محیطهاي
.
dll به این آدرس مراجعه کنید . براي استفاده از این dll براي دریافت این
ویندوزتان کپی کنید . سپس System کافی است آنرا در دایرکتوري 32
یک ماژوال به پروژه تان اضافه کرده و عبارت زیرا را در آن قرار دهید :
Public Declare Function Inp Lib "inpout32.dll" Alias
Inp32" (ByVal PortAddress As Integer) As Integer"
inpout32.dll" Alias "Out32" " Public Declare Sub Out Lib
Integer)x (ByVal PortAddress As Integer, ByVal Value As
حال براي مثال با دستور زیر می توانید اطلاعاتی را روي پینهاي
ي مربوط به پورت پارالل بنویسید : DATA
H378, your_data)x&)Call Out

آشنایی با شی پرینتر در ویژوال بیسیک
آشنایی با شی پرینتر در ویژوال بیسیک 6
مقدمه
شی پرینتر ، شیی است که پرینتر پیش فرض سیستم را کنترل می کند .
استفاده از شی پرینتر در ویژوال بیسیک 6 مانند کار با سایر اشیا است
و بایستی از خواص و متدهاي آن استفاده کرد . در ادامه با برخی از این
خواص و متدها آشنا خواهید شد .

ادامه مطلب کلید کنید


ادامه مطلب
+ نوشته شده در سه شنبه بیست و هفتم اسفند 1387ساعت 17:9 توسط حسین |

نوع :  PDF    تعداد صفحه :81    حجم:520KB   دريافت فايل

بر گرفته از مطالب:وحيد نصيري

+ نوشته شده در شنبه دوازدهم بهمن 1387ساعت 14:33 توسط حسین |

ابتدا برای این کار  بایدبه  گزینه ی progectرفته گزینه یreferenseراانتخاب می کنیم سپس گزینه ی

Microsoft DAO 3.51  Object Libraryتیک دارمی کنیم.

بعد دو متغیر ازنوع تعریف می کنیم . Recordsetوdatabaseتعریف می کنیم .

(ادرس بانک اطلاعاتی)Set b = DBEngine.OpenDatabase

نکته:بااستفاده ازدستور app.pathمی توان آدرس برنامه را بدست آوردوبا چسباندن ان به نام بانک اطلاعاتی در رایانه های دیگرهم بدون تعغیر ادرس استفاده کرد.

(Set g = b.OpenRecordset("name table", dbOpenDynaset

dbOpenDynaset:باعث می شود جدول قابل تعغیر با شد

برای ارتبا ط ان با هر کنترلی ازخاصیت ()fieldsستفاده می کنیم مثلا

(  شماره فیلد یا "نام فیلد")text1=g.fields

وبرای ذخیره کردن   

g.addnew
g.fields=text
g.update

وبقیه خواص هایش مانند کنترل  ado  است

 

 

+ نوشته شده در سه شنبه هشتم بهمن 1387ساعت 23:11 توسط حسین |

 عه ای از عناصر یا کنترلها به همراه تعریف ویژگیها,متدها و رویدادهای آنها یک کلاس را تشکیل می دهد
پس از نصب vb تمام کلاس های ان فعال نیستند و برنامه نویس برای استفاده از عملیات خاص قادر به فعال سازی کلاس مورد نیاز خود می باشد .
برای فعال سازی یک کلاس مانند کلاس fso گزینه references از منوی projectرا انتخاب و سپس گزینه microsoft scripting runningرا علامت می زنیم
بافعال سازی این گزینه امکان پنج شی زیر در پروژه قابل استفاده می شود
1- fso : امکانات تاثیر متقابل روی فایل ها پوشه ها و درایوها (مانند ایجاد فهرست , انتقال یا کپی فایلها و...) را برای برنامه نویس فراهم می کند.
2- file : به برنامه نویس امکان دستکاری فایل ها را می دهد.
3- folder : به برنامه نویس امکان دستکاری پوشه ها را می دهد.
4- drive : به برنامه نویس امکان دستیابی به اطلاعات درایوها را می دهد.
5- textstream :به برنامه نویس امکان خواندن و نوشتن فایلهای متنی را می دهد.

برای استفاده از امکانات هر کدام از کلاسهای فعال در vb باید متغییری را از نوع آن کلاس تعریف نمایید.
در بخش general متغییری به نام fileso را توسط کلمه کلیدی دثص از نوع شی جدید fso به صورت زیر تعریف کنید.
dim fileso as new filesystemobject

حال متغییر fileso مانند یک شی از نوع کلاس fso بوده و می توانید با نسبت دادن متدهای این کلاس به این عنصر (متغییرfileso ) عملیات سیستم عامل را انجام داد.


fileso.copy "c:\data\*.exe" , "d :\"
با اجرای این دستور کلیه فایل های exe موجود در زیر فهرست data در درایو c: در فهرست ریشه درایو d: کپی می شوند.

 


ادامه مطلب
+ نوشته شده در یکشنبه یکم دی 1387ساعت 12:9 توسط حسین |


مقدمه


API رو می توان قلب ویندوز فرض کرد . زیرا ما هر کاری که در ویندوز انجام می دهیم در واقع یکی از تابع های َAPI فراخوانی می شود .


برای مثال وقتی شما در محیط برنامه نویسی vb وارد شده و یا هر محیط دیگری پروژه جدیدی را آغاز می کنید و فرم اولیه را روی صفحه آورده و آماده طراحی می شوید در واقع استفاده از Api را آغاز کرده اید در حقیقت در همین لحظه تابع Create Window فراخوانی شده و فرم مزبور در مقابل شما قرار می گیرد .

Api شاید به نظر پیچیده به نظر برسه با بیش از 1000 تابع ولی یک امکان بسیار قوی است .

توابع Api در یکسری فایل ها با پسوند DLL قرار دارند . DLL مخفف ( Dynamic Linked Library ) یا همان کتابخانه پیوندی پویا می باشد که می تواند شامل یکسری کد و داده ( مثل تصویر ، صوت و ... ) باشد .

مهمترین DLL ها kernel32.dll , user32.dll , shell32.dll و ... می باشد .


طریقه استفاده از Api

| Public | Private ] Declare Function name Lib "libname"[Alias "aliasname"](arglist) As type


Declare Function : یعنی شما قصد استفاده از روال تابع Function را دارید
name : نام تابع مورد نظر
libname : نام Dll مورد نظر
aliasname : این قسمت اختیاری است . وقتی استفاده می شود که در زبان برنامه نویسی نام اصلی این تابع وجود داشته باشد .
arglist : این قسمت هم می تونه اختیاری باشه از این قسمت برای فرستادن پارامتر ها استفاده می شه .

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


اگه این تعریف رو دیده باشید حتما می گید خیلی سخته ولی یه راه آسون بهتون می گم که بیشتر API ها در آن موجود است . می توانید از برنامه کاربردی API Text Viewer استفاده نمایید که در پوشه نصب vb موجود است .


جلسه اول


تابع Copy File :

این تابع یک فایل را در محل مورد نظر کپی می کنه .

Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

lpExistingFileName : این پارامتر یک متغیر از نوع String است که مسیر و نام فایل مبدا یعنی فایلی که قرار است کپی شه .
lpNewFileName : این پارامتر یک متغیر از نوع String است که مسیر و نام فایل مقصد را مشخص می کنه .
bFailIfExists : این پارامتر از نوع Boolean ، که اگر این پارامتر True باشه و فایل مقصد قبلا وجود داشته باشه کار تابع نیمه کاره می مونه ولی اگه False باشه فایل قبلی Over Write می شه .

خروجی این تابع اگه Ture یا یک باشه یعنی تابع کار خودشو به درستی انجام داده و اگه False یا صفر باشه کار تابع نیمه تمام مانده
blocked33@yahoo.com

ادامه مطلب
+ نوشته شده در یکشنبه یکم دی 1387ساعت 11:54 توسط حسین |