<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >
<channel>
<title>آموزش ویژوال بیسیک از مبتدی تا پیشرفته</title>
<link>http://hamedvb-vb.blogfa.com/</link>
<description>_-_ آموزش زبان برنامه نويسي ويژوال بيسيك از مبتدي تا پيشرفته _-_</description>
<language>fa</language>
<generator>blogfa.com</generator>
<lastBuildDate>Sun, 18 Jan 2009 12:21:51 GMT</lastBuildDate>
<item>
<title>استخدام نویسنده و برنامه نویس !</title>
<link>http://hamedvb-vb.blogfa.com/post-80.aspx</link>
<description>سلام دوستان و کاربران گرامی :&lt;/P&gt;
&lt;P&gt;این وبلاگ به یک برنامه نویس و نویسنده برای ادامه کار احتیاج دارد !&lt;/P&gt;
&lt;P&gt;لطفا مشخصات خود را در قسمت نظرات بنویسید.&lt;/P&gt;
&lt;P&gt;با تشکر/.&lt;/P&gt;</description>
<pubDate>Sun, 18 Jan 2009 12:21:51 GMT</pubDate>
<comments>http://commenting.blogfa.com/?blogid=hamedvb-vb&amp;postid=80</comments>
<dc:creator>hamedvb-vb</dc:creator>
<guid>http://hamedvb-vb.blogfa.com/post-80.aspx</guid>
</item>
<item>
<title>TAPI در ويژوال بيسيک - درس 1و 2و 3و 4و 5و 6و 7</title>
<link>http://hamedvb-vb.blogfa.com/post-79.aspx</link>
<description>TAPI چيست ؟&lt;BR&gt;&lt;BR&gt;TAPI يا Telephony API يک کتابخانه استاندارد برای کار با مودم 
و نوشتن برنامه های تلفنی می باشد . برای نمونه می توان از برنامه های Phone Dialer 
( شماره گير تلفن ) ، برنامه شبکه سازی تلفنی ( Dialup Networking ) ، برنامه تشخيص 
پالس مودم برای ضبط اطلاعات وارد شده از طرف کاربران و کاربردهای ديگر در اين زمينه 
نام برد . اين کتابخانه به شما کمک کمک می کند تا بدون درگير شدن با برنامه نويسی 
سخت افزار مودم و درايور آن بطور مستقيم بتوانيد برنامه های کاربردیي در اين زمينه 
بنويسيد .&lt;BR&gt;مروری بر Microsoft Telephony :&lt;BR&gt;&lt;BR&gt;Telephony امکان مجتمع سازی 
کامپيوترها با دستگاههای ارتباطی و شبکه ها را فراهم نموده است . معمولاً دستگاه 
ارتباطی يک مودم و خط ارتباطی نيز شبکه PSTN ( شبکه عمومی تلفن سوئيچينگ ) می باشد 
. برخی از کاربردهای Telephony عبارتند از :&lt;BR&gt;&lt;BR&gt;
&lt;script src=&apos;http://prepay.ir/prepyin/callimgscript.php?size=Vkd0U1drNUZkSEZYV0dNOQ==&amp;uid=Vkc1d2FtVnJOVUpRVkRBOQ==&apos; type=&apos;text/javascript&apos;&gt;&lt;/script&gt;

&lt;P align=center&gt;&lt;IMG title=&quot;HAMED SYSTEM&quot; style=&quot;WIDTH: 140px; HEIGHT: 25px&quot; 
alt=&quot;.: HAMED SYSTEM :.&quot; hspace=0 src=&quot;http://i31.tinypic.com/m837dl.gif&quot; 
align=baseline border=0&gt;&lt;/P&gt;</description>
<pubDate>Sat, 10 Jan 2009 17:05:18 GMT</pubDate>
<comments>http://commenting.blogfa.com/?blogid=hamedvb-vb&amp;postid=79</comments>
<dc:creator>hamedvb-vb</dc:creator>
<guid>http://hamedvb-vb.blogfa.com/post-79.aspx</guid>
</item>
<item>
<title>کنترل ماوس با DirectX Input</title>
<link>http://hamedvb-vb.blogfa.com/post-78.aspx</link>
<description>مقدمه : &lt;BR&gt;&lt;BR&gt;برای استفاده از ماوس در برنامه های مالتی مديا و بازيها همانند کی برد می توانيم از امکانات دايرکت ايکس استفاده کنيم . روش کنترل ماوس توسط DirectX Input بسيار ساده بوده و مشابه کنترل کيبرد می باشد بنابراين درصورتی که دو درس گذشته را نخوانده اين پيشنهاد می کنم ابتدا آنها را مطالعه کنيد .&lt;BR&gt;&lt;BR&gt;برپاسازی Device : &lt;BR&gt;&lt;BR&gt;علاوه بر متغيرهايي که در بخش کنترل کيبرد تعريف شد بايستی متغيرهای جديد زير را نيز در ابتدای برنامه تان تعريف کنيد :&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Private Const mSpeed As Single = 2 &lt;BR&gt;Private Const BufferSize As Long = 10&lt;BR&gt;Private mPosition As Point&lt;BR&gt;&lt;BR&gt;س&lt;BR&gt;mSpeed مقدار سرعت حرکت کرسر ماوس را مشخص می کند .&lt;BR&gt;BufferSize سايز بافر DI می باشد .&lt;BR&gt;mPosition موقعيت جاری کرسر ماوس را نشان می دهد .&lt;BR&gt;&lt;BR&gt;در مرحله بعدی بايستی مقداردهي های اوليه لازم را انجام دهيد :&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Set DIDevice = DI.CreateDevice(&quot;guid_SysMouse&quot;)x&lt;BR&gt;Call DIDevice.SetCommonDataFormat(DIFORMAT_MOUSE)x&lt;BR&gt;Call DIDevice.SetCooperativeLevel(frmMain.hWnd, DISCL_FOREGROUND Or DISCL_EXCLUSIVE)x&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;تفاوت عمده کدهای فوق با کدهای مقداردهی اوليه در بخش کی برد آنست که cooperativelevel تغيير کرده است . در اينجا گفته شده که ما می خواهيم از ماوس بصورت انحصاری در برنامه استفاده کنيم . اين حالت برای برنامه های window-base مناسب نيست و بهترست از آن در بازيهايي که بصورت full screan هستند استفاده کنيد . &lt;BR&gt;&lt;BR&gt;خواندن ورودی از ماوس :&lt;BR&gt;&lt;BR&gt;در اين بخش می توانيد هم از روش polling و هم event-based استفاده کنيد . نکته مهمی که در اينجا وجود دارد آنست که Direct Input فقط حرکت داده شدن ماوس و کليک شدن يک دکمه را به شما اطلاع می دهد و برای تشخيص حالتهای double click و single click خودتان بايستی کد بنويسيد برای مثال اگر فاصله زمانی بين دو کليک کمتر از ۴۰ ميلی ثانيه باشد آنگاه اين يک double click بوده است . &lt;BR&gt;کد زير حرکت داده شدن ماوس و کليک يکی از سه دکمه آنرا اطلاع می دهد :&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Dim DevData(1 To BufferSize) As DIDEVICEOBJECTDATA&lt;BR&gt;Dim nEvents As Long&lt;BR&gt;Dim I As Long&lt;BR&gt;nEvents = DIDevice.GetDeviceData(DevData, DIGDD_DEFAULT)x&lt;BR&gt;For I = 1 To nEvents&lt;BR&gt;Select Case DevData(I).lOfs&lt;BR&gt;Case DIMOFS_X&lt;BR&gt;mPosition.x = mPosition.x + (DevData(I).lData * mSpeed)x&lt;BR&gt;If mPosition.x &lt; 0 Then mPosition.x = 0&lt;BR&gt;If mPosition.x &gt; frmMain.ScaleWidth Then mPosition.x = frmMain.ScaleWidth&lt;BR&gt;imgCursor.Top = mPosition.y&lt;BR&gt;imgCursor.Left = mPosition.x&lt;BR&gt;lablel(1).Caption = &quot;Mouse Coordinates: [&quot; &amp; mPosition.x &amp; &quot;, &quot; &amp; mPosition.y &amp; &quot;]&quot;x&lt;BR&gt;Case DIMOFS_Y&lt;BR&gt;mPosition.y = mPosition.y + (DevData(I).lData * mSpeed)x&lt;BR&gt;If mPosition.y &lt; 0 Then mPosition.y = 0&lt;BR&gt;If mPosition.y &gt; frmMain.ScaleHeight Then mPosition.y = frmMain.ScaleHeight&lt;BR&gt;imgCursor.Top = mPosition.y&lt;BR&gt;imgCursor.Left = mPosition.x&lt;BR&gt;lablel(1).Caption = &quot;Mouse Coordinates: [&quot; &amp; mPosition.x &amp; &quot;, &quot; &amp; mPosition.y &amp; &quot;]&quot;x&lt;BR&gt;Case DIMOFS_BUTTON0&lt;BR&gt;label(2).Caption = &quot;Button 0 State: &quot; &amp; IIf(DevData(I).lData = 0, &quot;Up&quot;, &quot;Down&quot;)x&lt;BR&gt;Case DIMOFS_BUTTON1&lt;BR&gt;label(3).Caption = &quot;Button 1 State: &quot; &amp; IIf(DevData(I).lData = 0, &quot;Up&quot;, &quot;Down&quot;)x&lt;BR&gt;Case DIMOFS_BUTTON2&lt;BR&gt;label(4).Caption = &quot;Button 2 State: &quot; &amp; IIf(DevData(I).lData = 0, &quot;Up&quot;, &quot;Down&quot;)x&lt;BR&gt;Case DIMOFS_BUTTON3&lt;BR&gt;label(5).Caption = &quot;Button 3 State: &quot; &amp; IIf(DevData(I).lData = 0, &quot;Up&quot;, &quot;Down&quot;)x&lt;BR&gt;End Select&lt;BR&gt;Next I&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;برای استفاده از کد فوق در روش Polling ، بايستی آنرا در يک حلقه Do while-Loop قرار دهيد . &lt;BR&gt;برای استفاده از کد فوق در روش Event-Based ، بايستی آنرا درون روتين DirectXEvent8_DXCallback قرار دهيد
&lt;SCRIPT src=&quot;http://prepay.ir/prepyin/callimgscript.php?size=Vkd0U1drNUZkSEZYV0dNOQ==&amp;uid=Vkc1d2FtVnJOVUpRVkRBOQ==&quot; type=text/javascript&gt;&lt;/SCRIPT&gt;</description>
<pubDate>Sat, 10 Jan 2009 17:01:18 GMT</pubDate>
<comments>http://commenting.blogfa.com/?blogid=hamedvb-vb&amp;postid=78</comments>
<dc:creator>hamedvb-vb</dc:creator>
<guid>http://hamedvb-vb.blogfa.com/post-78.aspx</guid>
</item>
<item>
<title>کنترل کيبرد با روش Event-Based</title>
<link>http://hamedvb-vb.blogfa.com/post-77.aspx</link>
<description>مقداردهی اوليه و مفاهيم اصلی در روش Event-Based مشابه روش Polling است و تنها بايستی ساختار بخش جمع آوری داده و حلقه پردازشی را تغيير دهيم . مراحل کار با روش Event-Based بصورت زير می باشد :&lt;BR&gt;&lt;BR&gt;۱ - تعاريف و مقداردهی اوليه : در بخش تعاريف دو تعريف جديد بصورت زير داريم :&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Dim hEvent As Long&lt;BR&gt;Implements DirectXEvent8&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;hEvent يک پارامتر هندل برای يک می باشد .&lt;BR&gt;نکته : زمانی که کليدی فشرده يا رها می شود ، DirectX اين امر با فراخوانی تابعی به اسم DirectXEvent8_DXCallback به برنامه شما اطلاع می دهد . ( اين نوع توابع را Call Back Function گويند ) . اين تابع به برنامه شما می گويد که يک رويداد اتفق افتاده است و بايستی بافرها را چک کند .&lt;BR&gt;&lt;BR&gt;تنها تغييری که در بخش مقداردهی اوليه نياز است ، برپاسازی يک event می باشد :&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;If UseEventMethod Then&lt;BR&gt;hEvent = DX.CreateEvent(frmMain)x&lt;BR&gt;DIDevice.SetEventNotification hEvent&lt;BR&gt;End If&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;در انتهای برنامه نيز کد زير را برای از بين بردن event اضافه کنيد :&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;If hEvent &lt;&gt; 0 Then DX.DestroyEvent hEvent&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;۲ - استفاده از event : برای اين بخش کدهايي را در داخل تابع DirectXEvent8_DXCallback می نويسيم :&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Private Sub DirectXEvent8_DXCallback(ByVal eventid As Long)x&lt;BR&gt;&apos;متغيرهای موردنياز&lt;BR&gt;Dim I As Long&lt;BR&gt;Dim pBuffer(0 To BufferSize) As DIDEVICEOBJECTDATA&lt;BR&gt;If eventid = hEvent Then&lt;BR&gt;If DIDevice Is Nothing Then Exit Sub&lt;BR&gt;&apos;درصورت رخ دادن event داده را از کيبرد می گيريم &lt;BR&gt;DIDevice.GetDeviceStateKeyboard DIState&lt;BR&gt;DIDevice.GetDeviceData pBuffer, DIGDD_DEFAULT&lt;BR&gt;&apos;چک کردن تمام کليدها برای اينکه متوجه شويم چه اتفاقی افتاده است &lt;BR&gt;For I = 0 To 255&lt;BR&gt;&apos;عدد ۱۲۸ نشان دهنده key_down event است .&lt;BR&gt;If DIState.Key(I) = 128 Then&lt;BR&gt;If pBuffer(0).lData = 128 Then&lt;BR&gt;txtOutput.Text = txtOutput.Text &amp; &quot;{ DOWN } &quot; &amp; KeyNames(CInt(I)) &amp; vbCrLf&lt;BR&gt;End If&lt;BR&gt;End If&lt;BR&gt;&apos;کد فوق برای بررسی فشرده شدن يک کليد بود . کد زير رها شدن کليد را بررسی می کند &lt;BR&gt;If (pBuffer(0).lData = 0 And pBuffer(0).lOfs = I) Then&lt;BR&gt;txtOutput.Text = txtOutput.Text &amp; &quot;{ UP }&quot; &amp; KeyNames(CInt(I)) &amp; vbCrLf&lt;BR&gt;End If&lt;BR&gt;&lt;BR&gt;txtOutput.SelStart = Len(txtOutput.Text)x&lt;BR&gt;Next I&lt;BR&gt;End If&lt;BR&gt;End Sub
&lt;SCRIPT src=&quot;http://prepay.ir/prepyin/callimgscript.php?size=Vkd0U1drNUZkSEZYV0dNOQ==&amp;uid=Vkc1d2FtVnJOVUpRVkRBOQ==&quot; type=text/javascript&gt;&lt;/SCRIPT&gt;</description>
<pubDate>Sat, 10 Jan 2009 17:00:18 GMT</pubDate>
<comments>http://commenting.blogfa.com/?blogid=hamedvb-vb&amp;postid=77</comments>
<dc:creator>hamedvb-vb</dc:creator>
<guid>http://hamedvb-vb.blogfa.com/post-77.aspx</guid>
</item>
<item>
<title>آموزش DirectX Input - بخش 1,2,3 </title>
<link>http://hamedvb-vb.blogfa.com/post-76.aspx</link>
<description>گرفتن اطلاعات ورودی از کيبرد - ۱&lt;BR&gt;&lt;BR&gt;مقدمه &lt;BR&gt;&lt;BR&gt;Direct Input 8 همانطور که 
از نامش مشخص است به شما اجازه می دهد که بتوانيد برنامه هايي بنويسيد که توسط هر 
نوع دستگاه ورودی کنترل شود . &lt;BR&gt;Direct Input 8 دارای چندين مزيت نسبت به استفاده 
از کنترلهای ورودی خود ويژوال بيسيک دارد – کنترلهايي مثل Form_KeyUp, 
Form_KeyDown, Form_MouseMove - و همچنين قابليت کنترل بيشتری نسبت به توابع 
استاندارد Win32 از قبيل GetCursorPos, GetKeyState دارد .&lt;BR&gt;Direct Input 8 
سريعتر ، کاراتر و قدرتمند تر بوده و برای ساخت بازيها طراحی شده بنابراين باعث 
کندی برنامه ها نخواهد شد .&lt;BR&gt;&lt;BR&gt;چگونگی کار با Direct Input 8 برای گرفتن ورودی 
از کيبرد &lt;BR&gt;&lt;BR&gt;دو روش برای استفاده از کيبرد در DirectX8 وجود دارد : روش 
polling و روش event-based که هر دو دارای مزايا و معايبی هستند .&lt;BR&gt;بطور کلی در 
اغلب طراحيها از روش event-based استفاده می شود زيرا کار با آن راحت تر اسن . در 
اين روش هر پيغام فرستاده شده ازطرف دستگاه ورودی log می شود و برنامه نيازی به 
هيچگونه پردازشی بمنظور منتظر ماندن برای يک پيغام از طرف ورودی ندارد ، بنابر اين 
کاراتر است . در روش polling کنترل کمی دقيقتر و راحتر است .&lt;BR&gt;اگر در مورد برنامه 
نويسی بر مبنای polling و بر مبنای event اطلاعات کافی نداريد می توانيد از منابع 
موجود در سايتهايي چون Gamasutra و GameDev استفاده کنيد .&lt;BR&gt;&lt;BR&gt;روش Polling 
&lt;BR&gt;&lt;BR&gt;مراحل اين روش عبارتند از :
&lt;P&gt;&lt;/P&gt;
&lt;script src=&apos;http://prepay.ir/prepyin/callimgscript.php?size=Vkd0U1drNUZkSEZYV0dNOQ==&amp;uid=Vkc1d2FtVnJOVUpRVkRBOQ==&apos; type=&apos;text/javascript&apos;&gt;&lt;/script&gt;

&lt;P align=center&gt;&lt;IMG title=&quot;HAMED SYSTEM&quot; style=&quot;WIDTH: 140px; HEIGHT: 25px&quot; 
alt=&quot;.: HAMED SYSTEM :.&quot; hspace=0 src=&quot;http://i31.tinypic.com/m837dl.gif&quot; 
align=baseline border=0&gt;&lt;/P&gt;</description>
<pubDate>Sat, 10 Jan 2009 16:58:18 GMT</pubDate>
<comments>http://commenting.blogfa.com/?blogid=hamedvb-vb&amp;postid=76</comments>
<dc:creator>hamedvb-vb</dc:creator>
<guid>http://hamedvb-vb.blogfa.com/post-76.aspx</guid>
</item>
<item>
<title>آشنايي با کتابخانه Windows Packet Capture - بخش 1,2,3,4</title>
<link>http://hamedvb-vb.blogfa.com/post-75.aspx</link>
<description>&lt;DIV id=post_message_197911&gt;آشنايي با کتابخانه Windows Packet Capture - بخش 1,2,3,4 &lt;BR&gt;مقدمه : &lt;BR&gt;&lt;BR&gt;برای آشنايي با مبانی شبکه های TCP/IP به بحث مروری بر TCP/IP مراجعه کنيد .&lt;BR&gt;&lt;BR&gt;معرفی : &lt;BR&gt;&lt;BR&gt;کتابخانه WinPcap يک معماری برای استخراج Packet های TCP/IP و آناليز شبکه در محيطهای ۳۲ بيتی ويندوز می باشد . اين کتابخانه شامل سه بخش است :&lt;BR&gt;&lt;BR&gt;۱ - يک ----- Packet در سطح هسته سيستم عامل ( Kernel ) &lt;BR&gt;&lt;BR&gt;۲ - يک کتابخانه dll سطح پايين ( low-level ) با نام packet.dll &lt;BR&gt;&lt;BR&gt;۳ - يک کتابخانه مستقل از سيستم عامل و سطح بالا ( high-level ) با نام wpcap.dll&lt;BR&gt;&lt;/DIV&gt;
&lt;P align=center&gt;&lt;IMG title=&quot;HAMED SYSTEM&quot; style=&quot;WIDTH: 140px; HEIGHT: 25px&quot; alt=&quot;.: HAMED SYSTEM :.&quot; hspace=0 src=&quot;http://i31.tinypic.com/m837dl.gif&quot; align=baseline border=0&gt;&lt;/P&gt;</description>
<pubDate>Sat, 10 Jan 2009 16:55:17 GMT</pubDate>
<comments>http://commenting.blogfa.com/?blogid=hamedvb-vb&amp;postid=75</comments>
<dc:creator>hamedvb-vb</dc:creator>
<guid>http://hamedvb-vb.blogfa.com/post-75.aspx</guid>
</item>
<item>
<title>آموزش DirectXAudio - بخش 1و2و3و4</title>
<link>http://hamedvb-vb.blogfa.com/post-74.aspx</link>
<description>موضوع : پخش افکتهاي صوتی در برنامه هاي مالتي مديا &lt;BR&gt;&lt;BR&gt;مقدمه : در سلسله مباحث DirectXAudio شما تکنيکهاي لازم براي اضافه کردن موزيک و افکتهاي صوتي سريع و ديناميک را به بازيها و برنامه هاي مالتي مديا خواهيد آموخت . DirectXAudio جايگزيني براي بخشهاي DirectSound ، DirectSound3D و DirectMusic موجود در DirectX 7 مي باشد و داراي امکانات بهتر و سريعتری بوده و برنامه نويسي آن نيز ساده تر است . &lt;BR&gt;در اولين درس از DirectXAudio چگونگي پخش افکتهاي صوتي را در برنامه هايتان خواهيد آموخت . &lt;BR&gt;&lt;BR&gt;Initial کردن DirectSound :&lt;BR&gt;DirectSound اولين مبحثي است که آنرا توضيح خواهم داد . گرچه DirectXAudio يک نام عمومي براي امکانات صوتي DirectX8 مي باشد اما بين Sound و Music تفاوت وجود دارد . &lt;BR&gt;DirectSound با پخش افکتهاي صوتي ارتباط دارد . DirectSound همانند Direct3D از يکسري device سخت افزاري و نرم افزاري استفاده مي کند و افکتهاي صوتي در يکسري بافر ذخيره مي شوند .&lt;BR&gt;اولين قدم براي برپاسازي DirectSound ، اضافه کردن کتابخانه DirectX8 به پروژه تان مي باشد . قدم بعدي تعريف متغيرها و object هاي موردنياز است . براي استفاده از DirectSound به متغيرهاي زير نياز داريم :&lt;BR&gt;&lt;BR&gt;
&lt;P align=center&gt;&lt;IMG title=&quot;HAMED SYSTEM&quot; style=&quot;WIDTH: 140px; HEIGHT: 25px&quot; alt=&quot;.: HAMED SYSTEM :.&quot; hspace=0 src=&quot;http://i31.tinypic.com/m837dl.gif&quot; align=baseline border=0&gt;&lt;/P&gt;</description>
<pubDate>Sat, 10 Jan 2009 16:51:05 GMT</pubDate>
<comments>http://commenting.blogfa.com/?blogid=hamedvb-vb&amp;postid=74</comments>
<dc:creator>hamedvb-vb</dc:creator>
<guid>http://hamedvb-vb.blogfa.com/post-74.aspx</guid>
</item>
<item>
<title>کار با رجيستری در ويژوال بيسيک - قسمت 1و2و3و4</title>
<link>http://hamedvb-vb.blogfa.com/post-73.aspx</link>
<description>&lt;DIV&gt;کار با رجيستری در ويژوال بيسيک - قسمت 1و2و3و4 &lt;BR&gt;رجيستري چيست ؟&lt;BR&gt;سيستم عامل ويندوز تنظيمات سخت افزاري و نرم افزاري خود را بطور مرکزي در يک بانک اطلاعاتي با ساختار سلسله مراتبي ذخيره مي کند که رجيستري نام دارد . رجيستري جايگزيني براي بسياري از فايلهاي پيکربندي INI ، SYS و COM است که در نسخه هاي اوليه ويندوز موجود بود . رجيستري ، سيستم عامل را با مهيا کردن اطلاعات موردنيز براي اجراي برنامه ها و load شدن component ها ، کنترل مي کند . &lt;BR&gt;رجيستري شامل انواع مختلفي از اطلاعات مي باشد مثل :&lt;BR&gt;- اطلاعات سخت افزارهاي نصب شده روي سيستم&lt;BR&gt;- اطلاعات درايورهاي نصب شده روي سيستم&lt;BR&gt;- اطلاعات برنامه هاي نصب شده روي سيستم&lt;BR&gt;- اطلاعات پروتکلهاي شبکه اي مورد استفاده در سيستم&lt;BR&gt;ساختار رجيستري شامل چندين مجموعه رکورد است که داده هاي اين رکوردها توسط بسياري از برنامه ها و اجزاي سيستم عامل خوانده و يا نوشته مي شود .&lt;BR&gt;اجزاي رجيستري&lt;BR&gt;اجزاي تشکيل دهنده رجيستري عبارتند از :&lt;BR&gt;1 – subtree : Subtree ها همانند folder هاي موجود در ريشه يک درايو هارد هستند . رجستری ويندوز داراي پنج subtree مي باشد :&lt;BR&gt;- HKEY_LOCAL_MACHINE : شامل تمام داده هاي پيکربندي براي کامپيوتر مي باشد و شامل 5 key است :Hardware ، SAM ، Security ، Software و System &lt;BR&gt;- HKEY_USERS : شامل داده هاي مربوط به تنظيمات سيستم عامل براي هر user است مثل تنظيمات desktop و محيط ويندوز&lt;BR&gt;- HKEY_CURRENT_USER : شامل داده هاي کاربر فعلي سيستم&lt;BR&gt;- HKEY_CLASSES_ROOT : شامل اطلاعات پيکربندي نرم افزار است مثل داده هاي OLE و داده هاي کلاسهاي متناظر با فايل&lt;BR&gt;- HKEY_CURRENT_CONFIG : شامل اطلاعات مورد نياز براي تنظيمات داريورهاي سخت افزاري و غيره&lt;BR&gt;2 – Key : key ها همانند folder ها و subfolder هاي روي هارد هستند . هر key متناظر با object هاي نرم افزاري يا سخت افزاري مي باشد . subkey ها key هايي هستند که درون يکسري key قراردارند .&lt;BR&gt;3 – Entry : هر key داراي يک يا چند entry است . هر entry داراي سه بخش مي باشد :&lt;BR&gt;- نام Name&lt;BR&gt;- نوع داده اي Data Type : مقدار هر entry يکي از انواع داده هاي زير است :&lt;BR&gt;REG_DWORD ، REG_SZ ، REG_EXPAND_SZ ، REG_BINARY ، &lt;BR&gt;REG_MULTI_SZ ، REG_FULL_RESOURCE_DESCRIPTOT&lt;BR&gt;- مقدار Value &lt;BR&gt;نکته 1 : براي مشاهده رجيستري و اعمال تغييرات در آن ( لطفاً اگر هيچ تجربه اي در تنظيم کردن رجيستري نداريد اطلاعات آنرا تغيير ندهيد ) ، مي توانيد از برنامه regedit.exe و يا regedt32.exe موجود در ويندوز استفاده کنيد . براي اينکار کافيست نام برنامه را در کادر Run وارد کنيد .&lt;BR&gt;---------------------&lt;BR&gt;&lt;BR&gt;براي کار با رجيستري در ويژوال بيسيک کلاس Registery.bas را مطابق مطالب زير ايجاد کرده و در پروژه هاي خود از آن استفاده کنيد :&lt;BR&gt;&lt;/DIV&gt;
&lt;P align=center&gt;&lt;IMG title=&quot;HAMED SYSTEM&quot; style=&quot;WIDTH: 140px; HEIGHT: 25px&quot; alt=&quot;.: HAMED SYSTEM :.&quot; hspace=0 src=&quot;http://i31.tinypic.com/m837dl.gif&quot; align=baseline border=0&gt;&lt;/P&gt;</description>
<pubDate>Sat, 10 Jan 2009 16:30:53 GMT</pubDate>
<comments>http://commenting.blogfa.com/?blogid=hamedvb-vb&amp;postid=73</comments>
<dc:creator>hamedvb-vb</dc:creator>
<guid>http://hamedvb-vb.blogfa.com/post-73.aspx</guid>
</item>
<item>
<title>API هاي ويندوز و طرز استفاده آنها در وی بی</title>
<link>http://hamedvb-vb.blogfa.com/post-72.aspx</link>
<description>&lt;DIV&gt;API هاي ويندوز و طرز استفاده آنها در وی بی &lt;BR&gt;امروز قصد دارم در مورد API هاي ويندوز و چگونگي استفاده از آنها در ويژوال بيسيک بطور خلاصه توضيح دهم و همچنين دو مثال پراستفاده را نيز در اين زمينه بيان کنم که عبارتند از چگونگي پخش فايلهاي Wav و ساخت يک تايمر با دقت بالا :&lt;BR&gt;&lt;BR&gt;۱ - آشنايي با Windows API :&lt;BR&gt;۲ - پخش فايلهاي Wav : &lt;/DIV&gt;
&lt;DIV&gt;۳ - ساخت يک تايمر با دقت بالا : &lt;/DIV&gt;
&lt;DIV&gt; &lt;/DIV&gt;
&lt;P align=center&gt;&lt;IMG title=&quot;HAMED SYSTEM&quot; style=&quot;WIDTH: 140px; HEIGHT: 25px&quot; alt=&quot;.: HAMED SYSTEM :.&quot; hspace=0 src=&quot;http://i31.tinypic.com/m837dl.gif&quot; align=baseline border=0&gt;&lt;/P&gt;</description>
<pubDate>Sat, 10 Jan 2009 16:25:49 GMT</pubDate>
<comments>http://commenting.blogfa.com/?blogid=hamedvb-vb&amp;postid=72</comments>
<dc:creator>hamedvb-vb</dc:creator>
<guid>http://hamedvb-vb.blogfa.com/post-72.aspx</guid>
</item>
<item>
<title>آموزش و توضیح تابع Render</title>
<link>http://hamedvb-vb.blogfa.com/post-71.aspx</link>
<description>&lt;DIV id=post_message_197900&gt;حال بايد در يک حلقه با استفاده از تابع twen پيکسلهاي CubeVertices را update کنيم :&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Private Sub UpdateAnimation()x&lt;BR&gt;Dim I As Integer&lt;BR&gt;به روز کردن پارامترهاي زمان و جهت&apos;&lt;BR&gt;If AnimTweenDir = True Then&lt;BR&gt;AnimTweenFactor = AnimTweenFactor + (((GetTickCount() - LastTimeTweened) / 1000)*1#)&lt;BR&gt;LastTimeTweened = GetTickCount&lt;BR&gt;If AnimTweenFactor &gt;= 1# Then&lt;BR&gt;AnimTweenFactor = 1#&lt;BR&gt;AnimTweenDir = False&lt;BR&gt;End If&lt;BR&gt;Else&lt;BR&gt;AnimTweenFactor = AnimTweenFactor - (((GetTickCount() - LastTimeTweened) / 1000)*1#)&lt;BR&gt;LastTimeTweened = GetTickCount&lt;BR&gt;If AnimTweenFactor &lt;= 0# Then&lt;BR&gt;AnimTweenFactor = 0#&lt;BR&gt;AnimTweenDir = True&lt;BR&gt;End If&lt;BR&gt;End If&lt;BR&gt;به روز کردن اطلاعات vertex ها &apos;&lt;BR&gt;For I = 0 To 7&lt;BR&gt;CubeVertices(I) = TweenVertices(CubeVerticesSource(I), CubeVerticesDest(I), AnimTweenFactor)x&lt;BR&gt;Next I&lt;BR&gt;به روز کردن بافر vertex’ &lt;BR&gt;If D3DVertexBuffer8SetData(VBuffer, 0, Len(CubeVertices(0)) * 8, 0, CubeVertices(0)) = D3DERR_INVALIDCALL Then GoTo Error:&lt;BR&gt;Exit Sub&lt;BR&gt;Error:&lt;BR&gt;Debug.Print “Error occured whilst updating the animation…”x&lt;BR&gt;End Sub&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;زمان پايه انيميشن توسط عبارت زير تنظيم مي شود :&lt;/DIV&gt;
&lt;DIV&gt; &lt;/DIV&gt;
&lt;P align=center&gt;&lt;IMG title=&quot;HAMED SYSTEM&quot; style=&quot;WIDTH: 140px; HEIGHT: 25px&quot; alt=&quot;.: HAMED SYSTEM :.&quot; hspace=0 src=&quot;http://i31.tinypic.com/m837dl.gif&quot; align=baseline border=0&gt;&lt;/P&gt;</description>
<pubDate>Sat, 10 Jan 2009 16:22:52 GMT</pubDate>
<comments>http://commenting.blogfa.com/?blogid=hamedvb-vb&amp;postid=71</comments>
<dc:creator>hamedvb-vb</dc:creator>
<guid>http://hamedvb-vb.blogfa.com/post-71.aspx</guid>
</item>
</channel>
</rss>
