 به یاد جلسات شیرین امتحانات
نوشته شده توسط راسپینا در دوشنبه بیست و نهم خرداد 1385 و ساعت 4:21
 روند پیشرفت خاستگاری
    
يك هفته پس از خلقت آدم: چون حوا بدون پدر و مادر بود آدم اصلا مشكلي نداشت و چاي داغ را روي خودش نريخت.
پانصد سال پس از خلقت آدم: با يه دونه دامن از اون چيني خال پلنگي ها ميري توي غار طرف.بلند داد مي زني:هاكومبازانومبا(يعني من موقع زنمه(بعد ميري توي غار پدر و مادر دختره. با دامن چين چيني جلوت نشسته اند و مي گن:از خودت غار داري؟دايناسور آخرين مدل داري؟بلدي كروكديل شكار كني؟خدمت مقدس جنگ عليه قبيله ادم خوارها رو انجام دادي؟بعد عروس خانم كه اون هم از اين دامناي چين چيني پوشيده با ظرفي كه از جمجمه سر بچه دايناسور ساخته شده برات چاي مياره و تو مي ريزي روي خودت.
دو هزار و پانصد سال بعد از اختراع آدم: انسان تازه كشاورزي را آموخته.وقتي داري توي مزرعه به عنوان شخم زدن زمين عمل مي كني با ديدن يه دختر متوجه ميشي كه بايد ازدواج كني.براي همين با مقدار زيادي گندم به مزرعه پدر دختره ميري .اونجا از تو مي پرسند:جز خوت كه اومدي خواستگاري چند تا خر ديگه داري؟چند متر زمين داري؟چند تا خوشه گندم برداشت مي كني؟ آيا خدمت در لشگر پادشاه رو به انجام رسانده اي؟ بعد عروس خانم با كوزه چاي وارد ميشه و شما هم واسه اينكه نشون بدي خيلي هول شديد تمام كوزه رو روي سرتون خالي مي كنيد.
ده سال قبل: شما پس از اتمام خدمت مقدس سربازي به اين نتيجه مي رسيد كه بايد ازدواج كنيد و از مادرتان مي خواهيد كه دختري را برايتان انتخاب كند.در اينجا اصلا نيازي نيست كه شما دختر را بشناسيد چون پس از ازدواج به اندازه كافي فرصت براي شناخت وجود دارد.در ضمن سنت چاي ريزون كماكان پا بر جاست.
هم اكنون: به دليل پيشرفت تكنولوژي در حال حاضر شما به آخرين نسخه ياهو مسنجر احتياج داريد.البته از"ام اس ان" يا "آي سي كيو"هم مي توانيد استفاده كنيد ولي انها آيكنهاي لازم براي خواستگاري را دارا نمي باشند . پس از نصب ياهو مسنجر به يك روم شلوغ رفته هر اسمي كه به نظرتان زيباست "اد" مي كنيد و با استفاده از آيكنهاي مربوطه خواستگاري را انجام مي دهيد . البته ياهو قول داده كه نسخه جديد داراي امكانات ازدواج و زندگي مشترك نيز باشد.البته در نسخه جدید یاهو مسنجر که برای مسلمانان تهیه شده در آن از عاقد الکترونیکي و شكلكهاي اسلامي استفاده مي شود.
نوشته شده توسط راسپینا در یکشنبه بیست و هشتم خرداد 1385 و ساعت 17:18
 بدون شرح
19 دليل محكم براي اينكه به مرد بودنتون افتخار كنيد
1.هميشه از نام خانوادگی شما استفاده می شود
2.مدت زمان مكالمهي تلفني شما حداكثر30 ثانيه است
3.براي يك مسافرت يك هفته اي تنها يك ساك كوچك دستي نياز داريد
4.در تمام شيشه هاي مربا و ترشي را خودتان باز ميكنيد
5.دوستان شما توجهي به كاهش يا افزايش وزن شما ندارند
6.جنسيت شما در موقع مصاحبهي استخدام مطرح نيست
7.لازم نيست كيفي پر از لوازم بي استفاده را همه جا به دنبالتان بكشيد.
8.ظرف مدت 10دقيقه ميتوانيد حمام كنيد و براي رفتن به مهماني آماده شويد
9.همكارانتان نميتوانند اشك شما را در بياورند
10.گر در 34 سالگي هنوز مجرديد، احدي به شما ايراد نمی گیرد
11.رنگ اجزاء صورت شما در هر صورت طبيعي است
12. با يك دسته گل ميتوانيد بسياري از مشكلات احتمالي را حل كنيد
13.وقتي مهمان به خانهي شما ميآيد لازم نيست اتاق را مرتب كنيد
14.بدون هديه ميتوانيد به ديدن تمام اقوام و دوستانتان برويد
15.ميتوانيد آرزوي هر پست ومقامي را داشته باشيد
16.حداقل بيست راه براي بازكردن در هر بطري نوشابهي داخلي يا خارجي بلد هستيد
17.ضرورتي ندارد روز تولد دوستانتان را به خاطر داشته باشيد
18. هر ساعتی دلتون بخواد میتونید از خونه بیرون برید و هر ساعتی دلتون بخواد میتونین برگردین
19. ... و بالاخره روزي يك پيرمرد موفق خواهيد شد
خصوصيات اخلاقي دخترها بين 14 تا 28 سال
۱۴ سالگی: تا پارسال هر کی بهشون می گفت: چطوری؟ می گفتن: خوبم مرسی! حالا ميگن: مرسی خوبم! ۱۵ سالگی: هر کی بهشون بگه سلام ، ميگن: عليک سلام! ... نقاشيشون بهتر ميشه (بتونه کاری و رنگ آميزی و ...!) ۱۶ سالگی: يعنی يه عاشق واقعين! ... فردا صبح هم می خوان خودکشی کنن! ... شوخی هم ندارن! ۱۷ سالگی: نشستن و اشک می ريزن! ... بهشون بی وفايی شده! ... (کوران حوادث!) ۱۸ سالگی: ديگه اصلا عشق بی عشق! ... توی خيابون جلوی پاشون رو هم نگاه نمی کنن! ۱۹ سالگی: از بی توجهی يه نفر رنج می برن! ... فکر می کنن اون يه آدم به تمام معناست! ۲۰ سالگی: نه ، نه! ... اون منو نمی خواست! ... آخرش منو يه کور و کچلی می گيره! می دونم ۲۱ سالگی: فقط ۲۷-۲۸ سالگی قصد ازدواج دارن! فقط! ۲۲ سالگی: خوش تيپ باشه! پولدار باشه! تحصيلکرده باشه! قد بلند باشه! خوش لباس باشه! ... (آخ که چی نباشه!) ۲۳ سالگی: همه ء خواستگارا رو رد می کنن ۲۴ سالگی: زياد مهم نيست که چه ريختيه يا چقدر پول داره! فقط شجاع باشه! ما رو به اون چيزی که نرسيديم برسونه! ۲۵ سالگی: اااااااه! پس چرا ديگه هيچکی نمياد؟! ... هر کی می خواد باشه ، باشه! ۲۶ سالگی: يه نفر مياد! ... همين خوبه! ... بــــــــــله! ۲۷ سالگی: آخيـــــــــــش!
۲۸ سالگی: کاش قلم پات می شکست و خواستگاری من نمیومدی
خبر تکراری
دوباره می نویسم چون شاید بعضی ها ندیده باشن
قرار شد تحویل پروژه ویژوال همون ۲۵ تیر باشه
با آرزوی موفقیت برای همه
خان داداش (محبوب قلبها )
نوشته شده توسط الياس در یکشنبه بیست و هشتم خرداد 1385 و ساعت 5:19
 فوتبال !

نوشته شده توسط  در جمعه بیست و ششم خرداد 1385 و ساعت 15:54
 ويروس Document
ايتنا - اين ويروس با بررسي كلماتي مانند Sex از باز كردن فايلها يا سايتهايي در اين زمينه جلوگيري مينمايد، اين در حالي است كه در بسياري از سايتهاي پزشكي نيز از اين كلمات استفاده شده است و كاربران آلوده به اين ويروس قادر به استفاده از اطلاعات مفيد اين سايتها نيستند.

بررسي ويروس Yusufali.B نيما مجيدي Nima_Majidi(at)hat-squad.com Hat-Squad گروه تحقيقات امنيتي «...و در آيندهاي نزديك زياد دور از ذهن نيست كه ويروسهاي محلي توسط برنامهنويسان ايراني توليد شوند و به علت ويژگيهايي مانند استفاده از زبان فارسي و اطلاعات موجود از فرهنگ ايراني، رايانههاي هزاران كاربر ايراني را در سرار جهان آلوده سازند و ضربههاي غيرقابل جبراني را به اطلاعات فارسي وارد كنند...» (ايتنا - روزنامه ايران - پنجشنبه 21 خردادماه 1383)
پاراگراف بالا قسمتي از مقالهاي است كه به عنوان «Cycle اولين كرم رايانهاي ايراني» حدود يك سال پيش توسط اينجانب به رشته تحرير در آمد. اين ويروس با دنبال كردن اهداف سياسي توانست نظر كارشناسان خارج از ايران را به خود جلب نمايد. پس از گذشت روزها از انتشار آن هيچ خبري از بازتاب گسترش ويروس Cycle در داخل كشور نشد. پيشگويي من بار ديگر به حقيقت پيوست با گذشت زمان شاهد انتشار اولين ويروس بومي در كشور هستيم. و حال پس از گذشت يك سال، شاهد انتشار اولين ويروس بومي ايراني هستيم. اين ويروس با نام Yusufali در ميان كارشناسان امنيت مشهور گرديده و از ورود كاربران به سايتهاي غيراخلاقي جلوگيري مينمايد. البته اين قسمتي از داستان است كه توسط سايتهاي خبري ايراني منتشر گرديده است و با وجود استفاده شدن از زبان فارسي در ساختار اين برنامه مخرب، هيچ يك از سايتهاي خبري در داخل كشور به بومي بودن اين ويروس، اشارهاي نكرده و تنها به ترجمه خبر از سايتهاي خارجي قناعت كردهاند، گرچه به سايتهاي خبري نميتوان خرده گرفت.
زمان در ادامه به بسياري نشان خواهد داد كه بيتوجهي به مسائلي از اين دست، به بهاي گراني تمام خواهد شد. امروزه در دنياي امنيت، كوتاه بودن زمان بررسي حوادث و هشداردهي به كاربران به عنوان اصل اول براي پيشگيري مورد توجه قرار ميگيرد. علت آن نيز برنامهريزهاي درازمدت و سازماندهي تيمهاي فعالي است كه در جهان غرب با صرف هزينههاي دولتي و بخش خصوصي روز به روز ديوار محكمتري را در مقابل حملات ويروسنويسان و نفوذگران پديد ميآورند. كشورهاي پيشرو در صنعت IT پذيرفتهاند كه قدم برداشتن در راه تامين امنيت فضاي تبادل اطلاعات، به يك كنفرانس دانشجويي و چاپ كردن تعدادي مقاله و راهاندازي يك وب سايت خلاصه نميشود، بلكه نياز اصلي آن به نيروهاي متخصصي است كه قادر باشند خود را با حملات و تكنيكهاي جديد آشنا سازند و در مقابل آنها به ارائه راه حل بپردازند. گرچه معلوم نيست اندك نيروي محدودي كه در ايران در حال فعاليت در زمينه امنيت اطلاعات هستند نيز تا به كي صبر را پيشه كنند و حرفه اصلي خود را فداي ندانمكاريهاي مسئولين نمايند. بسياري كه از ايران رفتهاند و احتمالا بازماندگان ديگر نيز راهي جز رفتن به جايي كه بهاي فعاليت آنها را بدانند نمييابند.
اين بار نيز ويروس Yusufali با ظاهر ساختن آيهاي از قرآن مجيد بر روي كامپيوترهاي آلوده شده، توانست نظر كارشناسان خارج از ايران را بار ديگر به خود جلب نمايد و با عنوان يك ويروس عربي شناخته شود، گر چه متن فارسي نيز در مقابل كاربران ظاهر ميگشت كه متاسفانه به علت نزديك بودن ظاهري كلمات فارسي و عربي كارشناسان خارجي قادر به تشخيص آن نشدهاند. اين ويروس با بررسي كلماتي مانند Sex از باز كردن فايلها يا سايتهايي در اين زمينه جلوگيري مينمايد، اين در حالي است كه در بسياري از سايتهاي پزشكي نيز از اين كلمات استفاده شده است و كاربران آلوده به اين ويروس قادر به استفاده از اطلاعات مفيد اين سايتها نيستند. بازتاب خبري اين ويروس در خارج از ايران، حرفها و حديثهاي زيادي را به دنبال داشته است. گروهي آن را فعاليت تروريستي ناميدهاند، و گروهي ديگر، انتشار ويروس را در جهت ترويج مسائل ديني، كاري اشتباه دانستهاند. در جايي خبرنگار گاردين از يكي از متخصصين امنيت ميپرسد كه معني كلمه jeggar كه در ساختار اين ويروس از آن استفاده شده است چيست!؟ و متخصص جوابي را براي بيان كردن نمييابد. گرچه تمام كاربران ايراني در داخل كشور به زبان بيان اين كلمه آشنايي كامل دارند.
در ادامه به بررسي نسخه جديد اين ويروس ميپردازيم كه در داخل ايران رواج يافته است.
بررسي روش شروع به كار خودكار ويروس(StartUp Method): در قدم اول پس از اجراي برنامه Documents.exe توسط كاربر يك نسخه از فايل برنامه ويروس به نام Systemdll.exe در زير پوشه System32 كپي ميشود. ويروس با اضافه ساختن كليدهاي زير به رجيستري قادر است تا پس از هر بار بوت شدن، خود را فعال سازد اين كليدها عبارتند از:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ CurrentVersion\Run”LoadService”=””
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ CurrentVersion\Run”System4224411”=”\system32\systemdll.exe”
نكته : كليد اول به علت اشتباه برنامهنويس ويروس با هيچ مقداري پر نميشود.
بررسي عملكردهاي منفي ويروس(Virus Payloads): اين ويروس در قدم بعد به جستوجوي فايلي به نام Systask.exe در پوشه System32 ميپردازد. در صورتي كه اين فايل موجود بوده و فعال نباشد، آن را از پوشهSystem32 حذف مينمايد، هدف از انجام اين عمل مشخص نيست. همچنين اين ويروس پس از اجرا شدن به بررسي مقادير كليدهاي زير از رجيستري ميپردازد:
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Control\Terminal Server\”TSAppCompat”]
مقدار عددي اين كليد، وضعيت نوع فعاليت سرويس Terminal Server را مشخص ميسازد كه در كدام يك از حالاتApplication يا Remote Administrators قرار دارد.
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Control\Terminal Server\”TSUserEnabled”]
مقدار اين كليد در مورد وضيت گروه كاربري است كه اجازه استفاده از سرويس راه دور Terminal Server را دارا ميباشد. نكته: با تغيير مقادير عددي اين كليدها ميتوان حالت يا حتي نوع سطح دسترسي كاربران به سرويس Terminal Server كه براي مديريت ويندوز از راه دور استفاده ميشود را تغيير داد اما به نظر ميرسد بار ديگر به علت اشتباه در برنامهنويسي اين ويروس، تنها اين مقادير مورد بازبيني قرار ميگيرند و تغييري در آنها ايجاد نميشود. پس از فعال شدن ويروس بر روي ماشين كاربر، اين برنامه به بررسي فعاليتهاي كاربر ميپردازد و Title Bar تمام پنجرههاي فعال را مورد بررسي قرار مي دهد تا در صورت مشاهده كلمات حساس كه به برنامه معرفي شده است، از خود وا كنش نشان دهد اين كلمات عبارتند از :
Sex, Teen, xx, Phallus, Jeggar, Priapus, Phallic, Penis, Exhibitionism
در صورتي كه هر يك از اين كلمات در قسمت Title Bar يك پنجره فعال موجود باشند، پنجره مورد نظر در مدت چند ثانيه به حال Minimize در آمده و سه جعبه براي كاربر به نمايش درميآيد:

اين جعبه از نوع پنجره اخطار است و عدد 7 مانند يك شمارنده ميباشد كه تعداد فعاليت اين ويروس را بيان ميكند، در ادامه به بررسي دقيقتر آن خواهيم پرداخت. پس از كليلك كردن بر روي دكمه ok پنجره بعد باز ميشود كه مربوط به نمايش ساعت فعلي سيستم است:

در صورتي كه كاربر نشانه گر Mouse خود را بر روي اين پنجره به حركت در بياورد، پنجره بعدي ظاهر ميشود:

در اين پنجره، كاربر قادر نيست تا نشانهگر Mouse خود را از محيط قرمز رنگ خارج سازد و در صورت فشار دادن هر يك از سه دكمه، از ويندوز خارج ميشود و به اصطلاح فني، از سيستم عامل ويندوز Logoff ميشود. نكته: هر يك از اين سه كليد عمل Log Off را انجام ميدهند كه به نظر ميرسد باز برنامهنويس اين ويروس، اشتباهي را در كدنويسي مرتكب شده است. همچنين صفحه كليد، فعاليت طبيعي خود را دنبال ميكند و ميتوان با باز كردن Task Managerبه فعاليت اين برنامه پايان داد و برنامه ويروس را از ليست پردازش هاي موجود End Task نمود.
شمارشگر : پس از شروع فعاليت منفي ويروس و بعد از اولين نمايش پنجره اخطار، برنامه ويروس، كليدي را در رجيستري ايجاد مينمايد تا از آن به عنوان يك شمارشگر ساده استفاده نمايد. آدرس كليد شمارشگر در رجيستري:
[HKEY__CURRENT_USER\Software\VB and VBA Program Settings\ sexing\sex”tedad”=”1”]
پس از مقداردهي اوليه در هر مرتبه باز شدن پنجره اخطار، مقدار اين شمارشگر از كليد مورد نظر خوانده شده و در انتهاي پيام جعبه اخطار به كاربر نشان داده ميشود. سپس يك عدد به آن اضافه شده و در كليد Tedad ذخيره ميشود.

نكته : با انجام عمليات مهندسي معكوس بر روي فايل باينري ويروس مشاهده شد كه برنامهنويس، هدفي خاصي را از ايجاد اين شمارشگر دنبال ميكرده است. در واقع اين شمارشگر به عنوان متغيري از يك شرط است تا با رسيدن به عدد مورد نظر، ويروس عمليات مخربي را آغاز نمايد. كه اين قسمت نيز به علت نامعلوم درست طراحي نشده است.روش گسترش ويروس(Spreading Method):اين ويروس از روشهاي امروزي براي گسترش خود مانند ويروسهاي Blaster از طريق سوءاستفاده كردن از يك ضعف امنيتي شناخته شده و يا Mydoom به طريق ارسال ضميمه نامههاي پستي آلوده استفاده نميكند، بلكه روش سنتي يعني استفاده از ديسكهاي فلاپي را براي توزيع خود برگزيده است. برنامه فعال ويروس در حافظه منتظر ميماند تا در نام يكي از پنجرههاي باز شده عبارات حساس زير را بيايد:
Format 3.5 Floppy (A:) Formating 3.5 Floppy (A:) Floppy A:
سپس در صورت استفاده كاربر از درايو فلاپي، ويروس يك نسخه از فايل خود را به نام Documents.exe  در درايو A: بر روي فلاپي ديسك كپي كرده و همچنين يك پوشه مخفي به اسم Documents در همين درايو ايجاد مينمايد. شكل ICON اين فايل اجرايي به صورت يك پوشه است كه كه كاربر را ترغيب به باز كردن اين برنامه و در نتيجه اجراي فايل آلوده ميكند. پس از اجراي برنامه Documents.exe، ويروس پوشه مخفي را براي كاربر به نمايش درميآورد تا كاربر متوجه اجراي برنامه آلوده نشود و نوار Address در پنجره فلاپي درايو به صورت زير درميآيد: A:\Documents\ نكته : چهار جمله حساس بيان شده به غير از كلمه Floppy، در ويندوز تنها به عنوان اسم پنجره فلاپي درايو مورد استفاده قرار ميگيرند. در نتيجه، اين ويروس با اين روش متوجه ميشود در چه زماني كاربر از فلاپي استفاده ميكند تا در موقع موردنظر، فلاپي ديسك را آلوده سازد. همچنين كلمه Formtaing داراي غلط املايي است و درست آن كلمه Formatting ميباشد، كه اين نيز جزو اشتباهات ويروسنويس محسوب ميشود.روش پاكسازي ويروس:1 – در ابتدا Task Manager را با فشار دادن همزمان كليدهاي Ctrl+shift+Esc باز كرده سپس به قسمت Process رفته و از آنجا فايلهاي Documents.exe و Systemdll.exe را End Task نماييد. 2 – به قست Start و Run رفته و برنامه Regedit را صدا بزنيد. پس از باز شده برنامه به آدرس:
HKEY_LOCAL_MACHINE\Software\Microsoft\ Windows\CurrentVersion\Run
برويد و سپس كليدهاي System4224411 و LoadService را پاك نماييد. 3- به پوشه ويندوز و از آنجا به پوشه System32 برويد، سپس فايل System32.exe را جستوجو كنيد و آن را پاك نماييد.
رديابي: علمي كه امروزه به عنوان Forensics مشهور گشته، متخصصين جرايم رايانهاي را قادر ميسازد تا با بررسي شواهد بدست آمده از فايل آلوده، و رديابي اطلاعات از نقطه گسترش ويروس، برنامهنويسان كدهاي مخرب را شناسايي كنند. اشاره به تكنيكهاي خاص Forensics از حوصله اين مقاله خارج است از اين رو تنها به بررسي قسمتي از اطلاعات بدست امده از فايل Ducuments.exe ميپردازيم.
اين اطلاعات به ما نشان ميدهند كه به طور فيزيكي، سورس ويروس در پوشهاي به نام virus بر روي Desktop شخص كاربري به نام محمد قرار داشته است. همچنين اين ويروس بوسيله زبان برنامهنويسي MS Visual Basic 6 توليد شده است. برنامه Visual Basic نيز بر روي سيستم ويروسنويس(محمد) در درايو E و تحت پوشه VB98 نصب شده است. اين ويروس براي اولين بار در خارج از كشور در اوايل سپتامبر 2005 مشاهده شده است و در ايران نيز در ماه هاي خرداد و تير 84 مشاهده شده است.گرچه هنوز زمان دقيقي از انتشار آن در دست نيست.
لینک منبع
نوشته شده توسط  در جمعه بیست و ششم خرداد 1385 و ساعت 15:52
 از بین بردن ويروس Document
این ویروس از طریق Email و Floppy به کامپوتر ها نفوذ می کند.
يك فلاپي آلوده به اين ويرس حاوي فولدرها و فايل هاي زير می باشد:
فایل Document.exe و فولدر Document
به محض اجراي فايل Document.exe پوشه Document باز مي شود.
در شاخه Run درون رجيستري كليدي در مسير زير به نام LoadService ايجاد مي شود كه بدون مقداراست.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\
CurrentVersion\Run
در همان شاخه Run درون رجيستري كليدي به نام System4224411 ايجاد ميشود كه به فايلي به نام systemdll.exe در پوشه System32 اشاره ميكند.
فايلي به نام systemdll.exe در پوشه Windows\system32 كپي ميكند.
به محض restart شدن سيستم فايل systemdll.exe اجرا شده و در برنامه هاي اجرا شده كه بوسيله task manager ديده ميشود برنامه اي به نام Yahosin ظاهر مي گردد. و از اين به بعد هر فلاپي كه روي اين سيستم آلوده باز شود آلوده مي شود.
راههاي مقابله با اين ويروس:
اگر کامپیوتر شما به این ویروس آلوده نیست و فايل Document .exe درون فلاپي خود مشاهده می کنید ، آن را اجرا نكنيد. كامپيوتر شما به اين ويروس آلوده نمي شود و براحتي مي توانيد آن را از روي فلاپي حذف كنيد.
در صورتي كه كامپيوتر شما به اين ويروس آلوده است اقدامات زير را جهت از بين بردن آن انجام دهيد:
الف ) در رجيستري ويندوز خود در مسير ياد شده هر دو كليد افزوده شده توسط اين ويروس كه در بالا شرح داده شده را delete كنيد.
ب ) پنجره task manager را با گرفتن سه كليد CTRL+ALT+DELETE باز كرده و برنامه اي به نام Yahosin را از قسمت applications در پنجره،End Task كنيد.
ج ) پوشه Windows\system32 را باز كرده و سپس فايل Systemdll.exe را يافته و delete نماييد.
د ) كامپيوتر را restart نماييد. كامپيوتر شما از اين آلودگي پاك شده است.
لینک منبع
نوشته شده توسط  در جمعه بیست و ششم خرداد 1385 و ساعت 13:51
تفاوت درس خواندن دختر ها و پسرها:
دخترها:
بعضي از اونا واقاً مي خونند وقتي ميرن سر كتاب تا يكي دو ساعت ديگه كلشونو از كتاب بر نمي دارند . عادت دارند زير مطالب كتاب خط بكشند كه بعدا بخونند ولي نمي خونند بعضي هاشون هم كه مثلا درس مي خونند كتاب جلوشونه چشمشون هم روي كتابه ولي حواسشون يه جاي ديگست ،توي دوست پسراشون تو اينكه چه جوري اذيتش كنندو پدرشو در بيارند، تو باقاليا توي .............
يه عده اي هم هستند كه به بهونه اينكه مشكل دارن زنگ ميزنند خونه دوستشونو دوستشون هم از خدا خواسته حدود يك ساعت و اندي به طوري كه اشك و دود تلفن در مياد براي هم قصه بي بي چساره تعريف مي كنند.
و اما پسر ها:
يا درس نمي خونند يا وقتي مي خواند بخونند بايد حسش بياد. وقتي حسش مياد كه شب امتحانه . يه كم كه درس خوندند يه موردي پيش مياد و بهش خيره مي شوند و به يه چيزي فكر مي كنند بعد انگار كه درس خوندند بلند ميشند ميرن استراحت مي كنند بعد از يك ساعت استراحت دوباره ميرند ميشينند فكر مي كنند . وقتي فكرشون تموم شد كتاب را ورق ميزنند يه كم براندازش ميكنند وزنش مي كنند استخاره مي كنند براي خودشون تقسيمش مي كنند ميگند تا ساعت فلان اينقدر مي خونم تا ساعت فلان اينقدر بعد ميرن استراحت كنند . حين استراحت حسشون تموم ميشه حال ندارند برند بخونند ولي چون مي دونند فردا امتحان دارند پا ميشند ميرند سر كتابشون.
همينجور كه مي خونند هيچي حاليشون نمیشه چون جاي ديگه فكر مي كنند(لازم به ذكر است كه هيچ وقت در هيچ موقعيتي فكر نمي كنند فقط موقع درس خوندن فكرشون مياد) بعد از نيم ساعت دوباره ميرن استراحت، بعد سه ربع استراحت مي بينند خيلي دير شده .دوباره ميرنند درس بخونند اين بار مي خونند يه چيزايي هم ياد ميگيرند ولي چيزايي كه ياد نمي گيرند را ميذارند كه فردا از دوستاش بپرسند يه كم به معلمشون فحش ميدند مي گند اينارو درس نداده . خلاصه آخرش نميرسند كتاب را تموم كنند فردا ميرند ميبينند كه دوستاشون يه چيزايي مي گند كه تا حالا به گوششون نخورده بعد اعصابشون خرد ميشه اونايي هم كه خونده بودند يادشون ميره به همين سادگي.!!!!
نوشته شده توسط راسپینا در یکشنبه بیست و یکم خرداد 1385 و ساعت 7:25
 وقتی به کاراکتر نمی آئیم ؟؟!!!!
سلام
وقتی که به وبلاگمون سر نمی زنیم ممکنه هر کدوممون دلائل خاص خودمون رو داشته باشیم که با توجه به یه ساله شدن کاراکتر بد نیست یک کمی در این مورد صحبت کنیم.بله ممکنه دلائلمون اینا باشه :
خان داداش (الیاغ - الیاس - روح الیاس - استاد خرناس - عمو پورنگ - eligator - شکلات پسته ای - شکلات پسته ای بی مزه ی لوس - یک نفر چند شخصیتی - شیر الیاس یا الیاغ برره - روح الیاس - ..... - روح ..... و ... ) : ممکن است مشکلات شخصی داشته باشد (باشند) ممکن است زنش با ملاقه توی سرش زده باشد (باشند)ممکن است کارت اینترنت شبانه نداشته باشد (باشند) .
جزقلی ( شکلات فندقی - جوجه اردک زشت ) : ممکن است تاریخ انقضائش گذشته باشد. ممکن است مشغول انداختن سیستم باشد. عین جان او را در دست شوئی زندانی کرده باشد.
ته تقاریه : ممکن است از فرط الیاغ خوانی از حال رفته باشد. ممکن است جو گرفته باشدش و خودش را به جای رونالدینهو اشتباه گرفته باشد و به آلمان رفته باشد.ممکن است کارت اینترنتش تمام شده باشد و عین جان به او پول توی جیبی نداده باشد. ممکن است مشغول شکستن روروئک خواهر کوچکترش باشد. ممکن است در حال خود شیرینی باشد.
عین جان (عابر پیاده - ع-پ ) : ممکن است مشغول تجدید فراش باشد. ممکن است از دست فرزندانش فراری شده باشد. ممکن است کابوس ریاضی یک را ببیند. ممکن است مشغول تنظیم متن سخنرانی اش در اولین جلسه ی انجمن در ترم بعد باشد. ممکن است خساست خود را فراموش نکرده باشد و نخواهد که بعدا خودش را برای این ناپرهیزی سرزنش کند.
منیژه ( کارآگاه منیژه ) : ممکن است مجوز کارآگاهی اش را باطل کرده باشند. ممکن است بعد از خوردن غذائی که خان داداش دستورش را داده در اثر تاثیر بد بوی پیازچه راهی بیمارستان شد ه باشد. ممکن است از اینکه اندازه برادرش خودشیرین نیست و نمی تواند که ۲/۹۸ درصد را نصیب خودش کند شاکی شده باشد.
مژده (خدا بیامرز ) : اصلا اگر بیاید : همه تعجب می کنند. منیژه آمدنش را تبریک می گوید. حتما جائی اینترنت مجانی ( مفته ی سابق ) می دادند یا کوپن کارت اینترنت می دادند. اصلا آمدن مژده خانم به این وبلاگ مثل این است که یک اصفهانی موز بخورد یا کسی از پهلوی پیازچه رد بشود و بیهوش نشود.
تربچه : ممکن است وقتی که برای آخرین بار توی ظرف سبزی خوردن بوده یکی زحمت خوردنش را کشیده باشد.
پیازچه : ممکن است در آخرین عملیات درست کردن سالاد توسط دو پا که سالاد را هم می رنن له شده باشد. ممکن است فصلش تمام شده باشد. ممکن است خوردنش ممنوع اعلام شده باشد. ممکن است وبا آمده باشد. ممکن است خودش از بوی خودش از پا درآمده باشد ( از ریشه درآمده باشد. ). ممکن است دیگر سس هزار جزیره تولید نشده باشد. ممکن است به این وبلاگ نیامده باشد و او کسی را برای گیر دادن پیدا نکرده باشد.
راسپینا : ممکن است زمستان شده باشد. ممکن است مجله موفقییت دیگر چاپ نشده باشد. ممکن است یکی از مطالب طنزش برایش گران تمام شده باشد.
فقط خودم می دونم : ممکن است خودش هم فراموش کرده باشد که کیست.
گلابتون گیس طلائی : ممکن است کچل شده باشد (دیگر گیس طلائی نداشته باشد. ) . ممکن است در اثر الیاغ خوانی بیش از حد این کچلی رخ دهد.
دنیا : ممکن است در کار اتوبوس خطی مشهد فریمان یا مینی بوس خطی مشهد چناران به دلایلی خللی ایجاد شده باشد.
طکس : ممکن است این وسیله ی ارتباطی ( طلکس ) خراب شده باشد. ممکن است در کلاس املا شرکت کرده باشد و دیگر وقتی برای آمدن به این وبلاگ را نداشته باشد ( کلاس املا را برای این شرکت کرده است که بتواند طلکس را صحیح بنویسد. )
تورنتو ( فقط خودت باش خودت ) : ممکن است اینترنت متری اش دچار مشکل شده باشد. ممکن است واحد جدیدی برای اینترنتش پیدا نکرده باشد. ممکن است دشلمه بیش از اندازه برایش نگران شده باشد و آمدنش را به وبلاگ مخالف با انحصارگری های این وبلاگ بداند. ممکن است گردنش در اثر آن حرکت شدید در جریان آشوب جلسه انجمن مصدوم شده باشد. ممکن است اینترنتش کیلوئی ۴۰۰۰۰ تومان شده باشد و او نتوانسته باشد یک قواره اینترنت بخرد. ممکن است آنچنان سوتی ای داده باشد که دیگر رویش نشده باشد به وبلاگ بیاید که البته این آخری کمی بعید است نه از نظر سوتی دادن بلکه از نظر کم روئی.
دشلمه ( نگین - یک پسر خوب ؟ ) : ممکن است در شهرشان آتش فشان شده باشد و به اینترنت دسترسی نداشته باشند ( چون ممکن است توی این دنیا کسی باشد که به اینترنت دسترسی نداشته باشد. ) ممکن است در قرن چهارم و پنجم هجری گیر کرده باشد و یکمی طول بکشد تا به این وبلاگ بیاید. ممکن است برای خوابیدن برخی قائله ها نیاید نه به خاطر اینکه در این وبلاگ انحصارگری هست یا برایش برای حضور در جلسه ی انجمن دعوت نامه ی رسمی نفرستاده اند به خاطر این دو مورد نبوده است. ممکن است نگین خانم بی چادر مانده باشد یا مشغول مراسم ازدواجش با یک پسر خوب شده باشد.ممکن است بیش از اندازه احساسی شده باشد یا احساسش بهش گفته باشد که نیا.
مهرگان : ممکن است کسی را پیدا نکرده باشد که به او گیر بدهد.
توضیح نکات زیر لازم و ضروری است :
۱ - در این مطلب توجه نظر از نوع طنز بوده است و هیچ محلی از توهین و کنایه ندارد.
۲ - در این مطلب از نوع ادبیات و نگارش امروزی استفاده شده است و ادبیات آن مربوط به قرن چهار و پنج هجری نیست.
۳ - اگر شخصیتی بود که معرفی نشد خوش به حالش ولی خوب ممکن است علتش این باشد که این قدر کم آمده باشد که اسمش جا افتاده باشد. در ضمن خود خان داداش ماشا الله بیست تا شخصیته.
۴ - ازین که در این مطلب چند خانوم هم یاد شدن از دشلمه خان عذرخواهی می کنم.
۵ - از این که آقای دشلمه آخرین نفر بودند عذرخواهی می کنم. مطمئن باشید که هیچ هدف انحصارگرانه ای در کار نبوده است.
ارادتمند شما مهرگان ایرانی 
نوشته شده توسط دانشجویان رشته کامپیوتر در شنبه بیستم خرداد 1385 و ساعت 18:27
 سفره ايراني
سلام خدمت بينندگان عزيز برنامه سفره ايراني
با توجه به يه سري مسائلي كه توي وبلاگ مشاهده كردم تصميم گرفتم جلسه دوم آشپزي رو در خدمتتون باشم
امروز مي خوايم جوجه اردك سرخ شده با سالاد درست كنيم اسم سالاد "چگونه پسر عمه شويم". اين قسمت از برنامه نحوه پسر عمه شدن رو به تربچه ياد ميده و نحوه هم زدن سالاد رو به پيازچه آموزش ميده اميدوارم بقيه خانومها و آقايان نيز از اين سالاد استفاده كنن
مواد لازم: پيازچه ، تربچه ، شكلات فندقي ، جوجه اردك (ترجيا زشت باشه كه وقتي كشتينش دلتون نسوزه)
نــــــــمــــــــك و روغــــــــــــــــن به ميزاني كه بهتون گير ندن نمك و روغنش كمه
ابتدا يه پيازچه رو ريـــــــــز ريـــــــــزش مي كنين تا جيگرتون حــــــــــال بياد سپس يه ظرف مسي برداشته شكلاتهاي فندقي رو درون ظرف ريخته سپس توي فر گذاشته با حرارت 200كيلومتر بر ساعت اونا رو ذوب كنيد. سپس فتدق ها رو از شكلاتها جدا كرده توي يه ظرف ديگه اونا رو با همون پيازچه كه ريـــــز ريـــــزش كردين بكوبين تا پيازچه به خوبي لــــــه بشه. سپس با چنگال يا قاشق محتويات ظرف رو هم زده تا بوي بد پيازچه توسط فندق ها گرفته بشه (خواهشا با پا اونم پايي كه جوراب بهشه هم نزنيد چون اگه بخواين سالاد رو ميل كنين مسموم ميشين) اگرپس از اتمام كار هنوز پيازچه بو مي داد مي تونين از سس هزار جزيره استفاده كنيد تا بوي بد پاي پيازچه از بين بره در آخر هم مي تونين براي خودشيريني يه تربچه نقلي رو يه نيم ساعت روش وقت بذارين به شكل يه گل طراحي كنين و بدون اينكه بذارينش رو سالاد فعلا بذارين تو جيبتون تا بعد بگم باهاش چكار كنين. فعلا سالادتون حاضره مي ريم سر درست كردن جوجه اردك. يه جوجه اردك زشته زشت رو انتخاب كنيد بعد باهاش پسرعمه بشين و اينقدر بهش بگين تو زشتي تو زشتي كه خودش از زنده بودنش بيزار بشه بعد كه خودش اومد بهتون گفت منو بدين گربه بخوره بهش بگين عزيزم چرا گربه مگه من مردم.بعد به وضع فجيعي جوجه اردك رو از لنگاش آويزون كنين بعد سرشو قطع كنين تا خون همه آشپزخونه رو پر كنه (اين قسمت از برنامه رو اوني ميفهمه كه بهش گير ميدن نمك و روغنش كمه اگه بقيه نفهميدن تقصير شما نيست دست به گيرنده هاتون نزنين) بعد جوجه اردك رو سرخ كنين به همين راحتي .
خوب حالا مي رسيم به قسمت اصلي برنامه يعني آماده سازي غذا براي خوردن. خوب خانوماي محترم هر چي مي تونين به اين چيزي كه پختين و اسمشو گذاشتين "غذا" پروبال بدين مثل درست كردن ميز شام به نحوي كه مـــــــــــــــــخ شوهرتون بخوره و فكر كنه كه چــــــــــــي درست كردين (خانوماي محترم اين قسمت رو به خودتون واگذار مي كنم چون مي دونم تو اين كار تبهر خاصي دارين و بيشتر توضيح نمي دم) بعد با يه ملاقه بشينين سر ميز و كفشاي نوك تيز پاشنه بلندتونم پاتون كنين الان خانوما حاضرن. نوبته آقايونه ، آقايون لطف كنن گاردشونو بالا بگيرن تا اگه احتمالا از غذا ايرادي گرفتن ملاقه تو سرشون فرود نياد يا اگه اومد بهشون آسيبي نرسه. ساق بند هم ببندين تا اگه احيانا نوك كفش همسرتون از قضاي روزگار به پاي شما اثابت كرد مشكلي براتون پيش نياد (اگه از آقايون كسي هوگو داره حتما ببنده خانومها غير قابل پيش بيني هستن و كار از محكم كاري عيب نمي كنه)
راستي تا حالا به اين نكته توجه كرده بودين كه چرا خانومها وقتي غذا رو درست مي كنن اول به همسرشون تعارف مي كنن و مي گن اول تو بخور عزيزم بعد من مي خورم؟ حتما همه مي گيد چون همسرشونو خيلي دوست دارن (خيلي ساده ايد) اونا اين كارو مي كنن تا ببينن اين غذايي رو كه درست كردن همسرشونو مي كشه يا نه اگه نمرد كه ديپرس ميشن اگه مرد هم مي فهمن كه خودشون نبايد از اين غذا بخورن(تا بخوان اين دخترا آشپز بشن نسل مردا منقرض ميشه) يه جورايي مرداي بيچاره رو موش آزمايشگاهي تصور كردن(اينو گفتم كه آقايون بي گدار به آب نزنن و مـــــــخــــــــشــــــــون نـــــخـــــوره (قابل توجه نمك و روغنش كمه))
براي اينكه اين وسط حق خانومها پايمال نشه اگه ديديد همسرتون تونست تمام اين موانع رو پشت سر بذاره اون تربچه رو كه گفتم بذارين تو جيبتون از جيبتون در بيارين و بكوبين تو سر شوهرتون (كه باز مي دونم خانومها در پرتاب اجسام رتبه اول رو تو كشور دارن پس ديگه بيشتر توضيح نمي دم)
خوب خانومها و آقايون گرامي اميدوارم از اين غذا(دعوا) امروز ما كمال استفاده رو برده باشين ان شاا... باز هم در خدمتتون خواهم بود (البته اگه غذا رو درست كردين و زنده موندين)
اميدوارم بچه هاي گل وبلاگمون از اين قسمت ناراحت نشده باشن چون همش جنبه شوخي داشت(شكلك پينوكيو)
خان داداش (محبوب قلبها)
نوشته شده توسط الياس در پنجشنبه هجدهم خرداد 1385 و ساعت 19:55
 جلسه یازدهم ( جلسه ی اول کار با مودم )
سلام
دوست های مهربون و خوب من. اگه تا حالا فکری برای پروژه برنداشتین آستین هاتون بالا بزنین تا شایداین سری مطالب بشه پروژه ی ارسال فایل از طریق مودم که از نظر من آسون تر از دو پروژه ی دیگه هم هست رو به استاد تحویل بدیم. از طریق کد های زیر که اونها رو در فرم لود برنامتون قرار می دین و با گذاشتن یک کلید می تونید برنامتون رو به صورت اتوماتیک به یک مودم متصل کنین:
https://www.sharemation.com/mojsad/modem.rtf
ارادتمند شما مهرگان ایرانی 
نوشته شده توسط دانشجویان رشته کامپیوتر در دوشنبه پانزدهم خرداد 1385 و ساعت 15:1
 سايتهاي آموزشي
نوشته شده توسط  در دوشنبه پانزدهم خرداد 1385 و ساعت 1:9
 پيشي كوچولو

نوشته شده توسط  در دوشنبه پانزدهم خرداد 1385 و ساعت 1:8
 اینم برای طرفدارای سینما (آنجلینا جولی)
نام : آنجلینا جولی ویت . لقب: آنجی ، . قد: 173 سانتیمتر او در تاریخ 4 ژانویه 1975 و در ساعت 9:09 در لس آنجلس متولد و در همانجا بزرگ شد. نام پدرش "جان ویت" ( برنده جایزه آکادمی ) و نام مادرش "مارچلین برتلند" است. همچنین او خواهرزاده "چیپ تایلور " می باشد. در ضمن "جولی" در زبان فرانسه به معنای "زیبا" است. او در سن 14 سالگی به کار مدلینگ روی آورد و در 16 سالگی از دبیرستان "بورلی هیل" فارغ التحصیل شد. "آنجلینا" بعدها در انستیتو تئاتر "لی استرابرگ" آموزش دید. آنجا جایی بود که او در تولیدات کارآموزی متعددی ایفای نقش کرد. او بعدها به عنوان مدل حرفه ای در لندن ، نیویورک و لس آنجلس کار کرد و در ویدئوکلیپهای هنرمندانی همچون : "میت لف" ، "لنی کراویتز" ، آنتنلو وندیتی" و گروه "لمون هدتز" ایفای نقش نمود. در ضمن او در دانشگاه نیویورک در رشته سینما که تمام آنها را برادرش نوشته بود کارکرد.وی در پنج فیلم دانشجویی برای مدرسه سینمایی USC که تمام آنها را برادرش نوشته بود کارکرد.
"آنجلینا" در تاریخ سوم فوریه 1995 با "جانی لی میلر" ازدواج کرد و در سال 1999 از او جدا شد. او در مراسم ازدواجش با "جانی لی میر" به جای لباس عروس (!) یک شلوار چرم سیاه رنگ و تی شرت سفید رنگ به تن داشت که بر روی آن نام همسرش را با خون خودش نوشته بود!
"آنجلینا" یک کلکسیونر چاقو نیز هست و می گوید که به علم غسال خانه بسیار علاقمند است! از آرزوهای دوران کودکی او نویسندگی مراسم آئین کفن و دفن می باشد! رابطه او و برادرش بسیار صمیمی و نزدیک است و به طور جدی تحت حمایت برادرش "جیمزهاون" می باشد. برادرش اغلب او را در نمایشهایش همراهی می کند و "آنجلینا" نیز از نام او در نمایشهایش استفاده می کند. مانند : "جیمی کجاست؟ (1999)
شخصیت مورد علاقه او در فیلمهای دیسنی "دومبو" فیل پرنده می باشد. وی عنوان کرده : "زمانیکه دمبو قادر به پرواز شد ، او گریه کرده است!"
شهرت وی از فیلم "عشق همان است که هست" ( 1996) آغاز شد. دومین ازدواج "آنجلینا" در تاریخ پنجم می 2000 با "بیلی باب تورنتون" بود که حاصل آن فرزند پسری به نام "مادوگس" است. "جولی" نگهداری از کودکش را زمانیکه برای بازی در فیلم "خارج از مرزها" ( 2003) در افریقا به سر می برد آغاز کرد.
او در ماه می 2002 به عنوان سفیر خوشبختی ، از کمپ پناهندگان تام هین در تایلند بازدید کرد. او در تاریخ 27 می 2003 از همسر دومش "بیلی باب تورنتون" جدا شد
بر اساس تحقیقات یک مرکز سینمایی مشخص شد که 35 درصد پاسخ دهندگان می گویند که "آنجلینا" اولین انتخاب آنها برای مراسم شام سال نو می باشد. در این تحقیق "کاترین زتا جونز" رتبه دوم را دارد.
"جولی" تصمیم گرفته که از حرفه بازیگری کناره گیری کند و همراه پسرش "مادوگس" در انگلیس اقامت داشته باشد. او می گوید : "می خواهم با دنیای فیلم وداع کنم و یک مادر تمام عیار برای مادوگس باشم و بیشتر در برنامه ها و جلسات مربوط به والدین و مربیان شرکت کنم!"
او بیشتر برنامه های مربوط به گیاهان و حیات وحش را از تلویزیون تماشا می کند.
قبل از جدایی او و همسر دومش ( بیلی باب تورنتون ) ، از "آنجلینا" پرسیده شده بود که اگر "بیلی" به تو خیانت کند ، با او چه می کنی ؟ پاسخ داده بود که : "او را نمی کشم! چون عاشق فرزندمان هستم و پسرم به پدر احتیاج دارد. ولی او را کتک میزنم! "آنجلینا" در جایی دیگر در مورد جدایی از همسر دومش گفته بود :"رابطه ما یک رابطه واقعی و عمیق بود. برایم آسان نیست که بخواهم بگویم چه چیز باعث ایجاد مشکلات و جدایی ما شد. بیلی شبها با موزیک و شغلش سرگرم می شد و من هم با فرزندم بودم. به هر حال از این مسئله هم عصبی هستم و هم غمگین. این دوران برای من ، سخت ناراحت کننده است.
امیدوارم خوشتون اومده باشه و استفاده کرده باشین (می دونم علمی نبود ولی شاید یه زنگ تفریح باشه اونم زنگ تفریحی که به درس ربطی نداره)
از دشلمه هم عذر می خوام که یه بازیگر زن رو معرفی کردم
نوشته شده توسط الياس در یکشنبه چهاردهم خرداد 1385 و ساعت 7:23
 زنگ تفریح
سلام دوست های خوبم
توی این زنگ تفریح می خواهیم با کمک هم یه ساعت دیجیتالی بسازیم ( به قول مرحوم کاووسی دیجیتالم کجا بود ) ولی خوب چون ساعت عقربه ای رو گفتم بدک نیست ساعت دیجیتالی رو هم با هم تمرین کنیم تا این استاد رضائی نگه شما ها برنامه های کودکستانی ویژوال رو هم نمی تونید بنویسید. آخه دوست جون های من ویژوال رو باید واقعا خوب همه با هم امتحان بدیم تا اثبات کنیم اگه یک کم به دانشجوی پیام نوری برسن می تونه دنیا رو هم کن فیکون بکنه.
حالا دوست های مهربونه من لطفا یه فرم جدید باز کنید و دو تا لیبل به نام های labelSec و labelMin و کپشن اونها رو صفر قرار بدین. بعد یه تایمر به نام timer1 به فرمتون اضافه کنین. حالا با نوشتن کد های زیر می تونیم اون ساعت دیجیتالی رو داشته باشیم:
Option Explicit
()Private Sub Form_Load Timer1_Timer End Sub
()Private Sub Timer1_Timer
Timer1.Interval = 1000 LabelSec.Caption = LabelSec.Caption + 1 If LabelSec.Caption = 60 Then LabelSec.Caption = "00" LabelMin.Caption = LabelMin.Caption + 1 If LabelMin.Caption > 0 And LabelMin.Caption < 10 Then LabelMin.Caption = "0" & LabelMin.Caption End If End If If LabelSec.Caption > 0 And LabelSec.Caption < 10 Then LabelSec.Caption = "0" & LabelSec.Caption End If End Sub ارادتمند شما مهرگان ایرانی 
نوشته شده توسط دانشجویان رشته کامپیوتر در جمعه دوازدهم خرداد 1385 و ساعت 12:15
 جلسه ی دهم ( جلسه آخر متحرک سازی )
سلام دوست های مهربونم
موضوع : ترسيم اشيا سه بعدي با استفاده از شي Meshشي Mesh که جزو اشيا D3DX مي باشد امکان ترسيم اشيا سه بعدي پايه و همچنين ترسيم مش هاي custom دلخواه را به شما مي دهد . در اين درس از شي Mesh براي ترسيم يک کره ( sphere ) استفاده مي کنيم . ابتدا متغير sphere را بصورت زير تعريف کنيد :
Dim sphere as D3DXMesh
همچنين براي نورپردازي و اختصاص material به کره به متغيرهاي زير نياز داريم :
Dim d3dLight As D3DLIGHT8 Dim material As D3DMATERIAL8 Dim Col As D3DCOLORVALUE
در تابع Initial پس از ساخت اشيا D3D و D3DX و D3DDevice بايستي پارامترهاي رنگ ، نورپردازي و اختصاص ماده ( material ) به کره را بصورت زير تنظيم کنيد :
Col.a = 1 Col.b = 1 Col.g = 1 Col.r = 1 d3dLight.Type = D3DLIGHT_DIRECTIONAL d3dLight.diffuse = Col d3dLight.Direction = vec(-1, -1, -1)x
نورپردازي از نوع جهت دار با رنگ col و بردار جهت (1-,1-,1-) است . نکته : رنگ ambient رنگي است که هنگاميکه جسم در سايه باشد به خود مي گيرد . بعبارت ديگر اين رنگ را جسم وقتي که در معرض يک نور ambient باشد از خود منعکس مي کند . رنگ diffuse رنگي است که هنگاميکه جسم در معرض نور مستقيم قرار بگيرد از خود منعکس مي کند .
material.Ambient = Col material.diffuse = Col d3dDevice.SetMaterial material d3dDevice.SetLight 0, d3dLight d3dDevice.LightEnable 0, 1
سپس بايستي پارامترهاي rendering را تنظيم کنيد :
d3dDevice.SetRenderState D3DRS_LIGHTING, 1 d3dDevice.SetRenderState D3DRS_ZENABLE, 1 d3dDevice.SetRenderState D3DRS_LIGHTING, 1 d3dDevice.SetRenderState D3DRS_ZENABLE, 1 d3dDevice.SetRenderState D3DRS_SHADEMODE, D3DSHADE_GOURAUD d3dDevice.SetRenderState D3DRS_AMBIENT, &H202020 d3dDevice.SetTextureStageState 0, D3DTSS_MAGFILTER, D3DTEXF_LINEAR d3dDevice.SetTextureStageState 0, D3DTSS_MINFILTER, D3DTEXF_LINEAR
حال بايستي شي sphere را بسازيم :
Set Sphere = d3dx.CreateSphere(d3dDevice, 2, 1000, 20, Nothing)x
که ۲ شعاع کره و ۱۰۰۰ تعداد slice هايي است که کره با آن ساخته مي شود . سپس بردارهاي نقطه ديد و مکان دوربين و رنگ زمينه را تنظيم کنيد ( viewpoint و camerapoint از نوع D3DVECTOR هستند ) .
ViewPoint = vec(0, 0, 0) CameraPoint = vec(4, 4, 4) BackColor = &H404040
در روتين Render ابتدا ماتريسها و بردارهاي صحنه را تنظيم مي کنيم :
D3DXMatrixIdentity matWorld d3dDevice.SetTransform D3DTS_WORLD, matWorld D3DXMatrixRotationY matView, Rotation D3DXMatrixLookAtLH matTemp, CameraPoint, ViewPoint, vec(0, 1, 0) D3DXMatrixMultiply matView, matView, matTemp d3dDevice.SetTransform D3DTS_VIEW, matView D3DXMatrixPerspectiveFovLH matProj, pi / 4, 1, 0.1, 500 d3dDevice.SetTransform D3DTS_PROJECTION, matProj
در پايان نيز شروع به رندر صحنه مي کنيم :
d3dDevice.Clear 0, ByVal 0, D3DCLEAR_TARGET Or D3DCLEAR_ZBUFFER, BackColor, 1, 0 d3dDevice.BeginScene Sphere.DrawSubset 0 d3dDevice.EndScene d3dDevice.Present ByVal 0, ByVal 0, 0, ByVal 0
ارادتمند شما مهرگان ایرانی 
نوشته شده توسط دانشجویان رشته کامپیوتر در جمعه دوازدهم خرداد 1385 و ساعت 11:26
 جلسه نهم
سلام دوست های خوبم
موضوع :ترسيم متن دو بعدي در DirectX
در اين درس روش ترسيم متن با دو نوع فونت را نشان خواهم داد : براي رسم يک متن با فونت تعريف شده در سيستم از شي D3DXFont استفاده مي کنيم :
Dim MainFont as D3DXFont Dim MainFontDesc as IFont Dim TextRect as RECT Dim fnt as new stdFont
در حاليکه براي ايجاد يک متن با فونت custom ابتدا يک texture تعريف مي کنيم :
Dim fntTex as Direct3DTexture8
همچنين براي ترسيم هر کاراکتر يک آرايه vertex اي را از نوع TLVERTEX تعريف مي نمائيم :
Dim vertchar(3) as TLVERTEX
حال به سراغ تابع Initialize مي رويم . در اين تابع ابتدا دستورات مربوط به ايجاد اشيا D3D و D3Dx را قرا دهيد سپس دستورات مربوط به اختصاص آداپتور و نيز ايجاد شي D3DDevice را انجام مي دهيم . حال دستورات تنظيم shader و rendering را مي آوريم :
D3DDevice.SetVertexShader TL_FVF D3DDevice.SetRenderState D3DRS_LIGHTING, False
سپس تنظيمات پارامترهاي transparency براي rendering را انجام مي دهيم :
D3DDevice.SetRenderState D3DRS_SRCBLEND, D3DBLEND_SRCALPHA D3DDevice.SetRenderState D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA D3DDevice.SetRenderState D3DRS_ALPHABLENDENABLE, True
حال بايستي textureرا طوري فيلتر کنيم که در زمان stretch شدن يا squash شدن بهتر بنظر برسد :
D3DDevice.SetTextureStageState 0, D3DTSS_MAGFILTER, D3DTEXF_LINEAR D3DDevice.SetTextureStageState 0, D3DTSS_MINFILTER, D3DTEXF_LINEAR
حال فيلتر Z را فعال مي کنيم :
D3DDevice.SetRenderState D3DRS_ZENABLE, 1
سپس ماتريسهاي world ، view و projection را تنظيم مي کنيم :
D3DXMatrixIdentity matWorld D3DDevice.SetTransform D3DTS_WORLD, matWorld D3DXMatrixLookAtLH matView, MakeVector(0, 9, -9), MakeVector(0, 0, 0), MakeVector(0, 1, 0) D3DDevice.SetTransform D3DTS_VIEW, matView D3DXMatrixPerspectiveFovLH matProj, pi / 4, 1, 0.1, 500 D3DDevice.SetTransform D3DTS_PROJECTION, matProj
حال به بخش تنظيم پارامترهاي فونت مي رسيم . در مورد فونت دو بعدي عادي :
fnt.Name = "Verdana"x fnt.Size = 18 fnt.Bold = True Set MainFontDesc = fnt Set MainFont = D3DX.CreateFont(D3DDevice, MainFontDesc.hFont)x
و در مورد فونت custom :
Set fntTex = D3DX.CreateTextureFromFileEx(D3DDevice, yourfilename, 256, 128, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_FILTER_POINT, D3DX_FILTER_POINT, &HFF00FF00, ByVal 0, ByVal 0)x end function
روتين Render بصورت زير خواهد بود :
Public Sub Render()x D3DDevice.Clear 0, ByVal 0, D3DCLEAR_TARGET Or D3DCLEAR_ZBUFFER, 0, 1#, 0 D3DDevice.BeginScene
براي رندر متن با فونت عادي بصورت زير عمل مي کنيم :
TextRect.Top = 440 TextRect.Left = 1 TextRect.bottom = 480 TextRect.Right = 640 D3DX.DrawText MainFont, &HFFCCCCFF, "Current Frame Rate: " & FPS_Current, TextRect, DT_TOP Or DT_CENTER
براي رندر متن با فونت custom بصورت زير عمل مي کنيم :
RenderStringFromCustomFont_2D "mehregan irani", 1, 1, 16, 16 D3DDevice.EndScene D3DDevice.Present ByVal 0, ByVal 0, 0, ByVal 0 End Sub
همانطور که مشاهده مي کنيد از روتيني با نام RenderStringFromCustomFont_2D استفاده شده است :
Private Sub RenderStringFromCustomFont_2D(strText As String, startX As Single, StartY As Single, Height As Integer, Width As Integer)x Dim I As Integer Dim CharX As Integer, CharY As Integer Dim Char As String Dim LinearEntry As Integer If Len(strText) = 0 Then Exit Sub For I = 1 To Len(strText)x
1 - ابتدا بايستي مختصات texture را انتخاب کنيم . براي اينکار بايستي هر entry را در texture جدا کنيم :
Char = Mid$(strText, I, 1)x If Asc(Char) >= 65 And Asc(Char) <= 90 Then LinearEntry = Asc(Char) - 65 ElseIf Asc(Char) >= 97 And Asc(Char) <= 122 Then LinearEntry = Asc(Char) - 71 ElseIf Asc(Char) >= 48 And Asc(Char) <= 57 Then LinearEntry = Asc(Char) + 4 ElseIf Char = " " Then LinearEntry = 63 ElseIf Char = "." Then LinearEntry = 62 ElseIf Char = ";" Then LinearEntry = 66 ElseIf Char = "/" Then LinearEntry = 64 ElseIf Char = "," Then LinearEntry = 65 End If
بعد از مقداردهي LinearEntry بايستي مختصات grid کاراکتر را پردازش کنيم :
If LinearEntry <= 15 Then CharY = 0 CharX = LinearEntry End If If LinearEntry >= 16 And LinearEntry <= 31 Then CharY = 1 CharX = LinearEntry - 16 End If If LinearEntry >= 32 And LinearEntry <= 47 Then CharY = 2 CharX = LinearEntry - 32 End If If LinearEntry >= 48 And LinearEntry <= 63 Then CharY = 3 CharX = LinearEntry - 48 End If If LinearEntry >= 64 And LinearEntry <= 79 Then CharY = 4 CharX = LinearEntry - 64 End If
۲ - حال بايستي vertex هاي مورد نياز براي رسم کاراکتر را توليد کنيم :
vertChar(0) = CreateTLVertex(startX + (Width * I), StartY, 0, 1, &HFFFFF (F,0,(1/16)*CharX,(1/8)*CharY vertChar(1) = CreateTLVertex(startX + (Width * I) + Width, StartY, 0, 1, &HFFFFF (F, 0,((1 / 16) * CharX) + (1 / 16), (1 / 8) * CharY vertChar(2) = CreateTLVertex(startX + (Width * I), StartY + Height, 0, 1, &HFFFFF ((F, 0, (1 / 16) * CharX, ((1 / 8) * CharY) + (1 / 8 vertChar(3) = CreateTLVertex(startX + (Width * I) + Width, StartY + Height, 0, 1, HFFFFFF, 0, ((1 / 16) * CharX) + (1 / 16), ((1 / 8) * CharY) + (1 / 8))x
۳ - رندر vertex ها :
D3DDevice.SetTexture 0, fntTex D3DDevice.DrawPrimitiveUP D3DPT_TRIANGLESTRIP, 2, vertChar(0), Len(vertChar(0))x Next I End Sub
ارادتمند شما مهرگان ایرانی 
نوشته شده توسط دانشجویان رشته کامپیوتر در چهارشنبه دهم خرداد 1385 و ساعت 22:6
 شعار تیم های حاضر در جام جهانی
اینم برای فوتبالیها : شعارها را با روحیه ملتها مقایسه کنید پیشنهادمیکنم کتاب روح ملتها را نوشته "آندره زیگفرید" ترجمه" احمد آرام "را اگه گیر آوردین حتما بخونین
آلمان: «ما فوتبال هستيم» اكوادور: «اكوادور زندگيام، فوتبال تعصبم، جام هدفم» لهستان: «سفيد و قرمز، خطرناك و دلير» كاستاريكا: «تيم ما، ارتش ما، اسلحهمان توپ، بيا بريم به جام جهاني و همه چيز را بگيريم»
انگلستان:«يك ملت، يك جام، يازده شير» پاراگوئه:«از قلب آمريكا... اين روحيهي گواراني است» ترينيدادوتوباگو:«اين هم دلاوران سوكا، روحيه جنگندگي كارائيب» سوئد:«جنگ! روحيه را نشان بده! بيا! همه شما را حمايت ميكنند.
آرژانتين:«برخيز! آرژانتين در راه است.» ساحل عاج:«فيلها بجنبيد! پيروز جام شويد» صربستان و مونتهنگرو:« تنها به عشق بازي» هلند:«نارنجيها، طلايي ميشوند»
مكزيك:«هيجان آستك در جهان» ايران: «ستارگان پارسي» آنگولا:«آنگولا در راه است، تيم مردم ما هستند» پرتغال:« با پرچمي در پنجره و ملتي در ميدان»
ايتاليا:«آبي افتخار ما، ايتاليا افتخار ما» غنا:«ستارگان سياه برويد، ستارگان جهان ما» ايالت متحده:«متحد بازي ميكنيم، متحد ميبريم» جمهوري چك:«باور و قدرت شير، براي پيروزي و هوادارانمان»
برزيل:«وسيلهاي كه يكصد و هشتاد ميليون قلب آن را كنترل ميكند» كرواسي:«با آتشي در وجودمان، پيش به مرحله نهايي» استراليا:«ساكروهاي استراليا، پيش به سوي افتخار» ژاپن:«روحيهي ساموراييتان را نشان دهيد»
فرانسه:«آزادي ، برابري، جام جهاني» سوييس:«2006 ، ساعت سوييس است» كره جنوبي:«اسطورهي تمام نشدني، كرهاي و متحد» توگو:«انگيزه براي پيروزي، تشنگي براي موفقيت»
اسپانيا:«اسپانيا، يك كشور و يك هدف» اوكراين:«با حمايت ما، اوكراين نميتواند موفق نشود!» تونس:«عقابهاي كارتيج، بالاتر و قدرتمندتر از هميشه» عربستان سعودي:«شاهينهاي سبز نميتوانند متوقف شوند»
نوشته شده توسط دشلمه در چهارشنبه دهم خرداد 1385 و ساعت 21:1
 جلسه هشتم
سلام به همه ی دوستان
موضوع : نورپردازي و اختصاص بافت به اشيای سه بعدي
در اين درس مي خواهيم به مکعب درس قبل بافت اختصاص داده و نيز آنرا با يک منبع نور ، نورپردازي کنيم . ابتدا تايپ vertex ها را بصورت زير تعريف مي کنيم :
Private Type UnlitVertex X As Single Y As Single Z As Single nx As Single ny As Single nz As Single tu As Single tv As Single End Type
توصيفگر اين فرمت بصورت زير خواهد بود :
Const Unlit_FVF = (D3DFVF_XYZ Or D3DFVF_NORMAL Or D3DFVF_TEX1)
همچنين مکعب ما توسط ارايه زير مشخص مي شود :
Dim Cube2(35) As UnlitVertex
دو ثابت pi و rad را نيز بصورت زير تعريف مي کنيم :
Const pi As Single = 3.141592 Const Rad = pi / 180
براي اختصاص بافت به مکعب ، از شي Direct3DTexture8 استفاده مي شود :
Dim CubeTexture As Direct3DTexture8
براي نورپردازي ، از شي D3DLIGHT8 استفاده مي شود :
Dim Lights As D3DLIGHT8
تغييرات مورد نياز در تابع Initialize بعد از ساخت شي D3DDevice در اين تابع ، پارامترهاي آنرا بصورت زير تنظيم مي کنيم :
D3DDevice.SetVertexShader Unlit_FVF D3DDevice.SetRenderState D3DRS_LIGHTING, 1 D3DDevice.SetRenderState D3DRS_ZENABLE, 1 D3DDevice.SetRenderState D3DRS_AMBIENT, &H202020
مقدار ambient يک کد هگزا RRGGBB است . بعد از دستورات فوق ماتريسهاي matworld ، matview و matproj مطابق مطابل درس قبل تعريف مي شوند . پس از آن بايستي بافت مکعب را از درون فايل تصويري مورد نظرتان load کنيد :
Set CubeTexture = D3DX.CreateTextureFromFileEx(D3DDevice, yourfilename, 128, 128, D3DX_DEFAULT, 0, DispMode.Format, D3DPOOL_MANAGED, D3DX_FILTER_LINEAR, D3DX_FILTER_LINEAR, 0, ByVal 0, ByVal 0)x
حال بايستي تابع InitializeGeometry صدا زده شود و سپس تابع SetupLights فراخواني شوند . ابتدا به توضيح تابع InitializeGeometry مي پردازيم :
Private Function InitialiseGeometry() As Boolean
ابتدا يک بردار نرمال تعريف مي کنيم :
Dim vN As D3DVECTOR
سپس آرايه cube2 را با مقادير عددي پر مي کنيم . نرمالهاي تمام vertex ها را ابتدا با بردار [0,0,0 ] تعريف مي کنيم . اين مقدا بعداً تغيير خواهد کرد :
Cube2(0) = CreateVertex(-1, -1, 1, 0, 0, 0, 0, 0) Cube2(1) = CreateVertex(1, 1, 1, 0, 0, 0, 1, 1) Cube2(2) = CreateVertex(-1, 1, 1, 0, 0, 0, 0, 1) vN = GenerateTriangleNormals(Cube2(0), Cube2(1), Cube2(2)) Cube2(0).nx = vN.X: Cube2(0).ny = vN.Y: Cube2(0).nz = vN.Z Cube2(1).nx = vN.X: Cube2(1).ny = vN.Y: Cube2(1).nz = vN.Z Cube2(2).nx = vN.X: Cube2(2).ny = vN.Y: Cube2(2).nz = vN.Z
Cube2(3) = CreateVertex(1, 1, 1, 0, 0, 0, 1, 1) Cube2(4) = CreateVertex(-1, -1, 1, 0, 0, 0, 0, 0) Cube2(5) = CreateVertex(1, -1, 1, 0, 0, 0, 1, 0) vN = GenerateTriangleNormals(Cube2(3), Cube2(4), Cube2(5)) Cube2(3).nx = vN.X: Cube2(3).ny = vN.Y: Cube2(3).nz = vN.Z Cube2(4).nx = vN.X: Cube2(4).ny = vN.Y: Cube2(4).nz = vN.Z Cube2(5).nx = vN.X: Cube2(5).ny = vN.Y: Cube2(5).nz = vN.Z
'Back Cube2(6) = CreateVertex(-1, 1, -1, 0, 0, 0, 0, 1) Cube2(7) = CreateVertex(1, 1, -1, 0, 0, 0, 1, 1) Cube2(8) = CreateVertex(-1, -1, -1, 0, 0, 0, 0, 0) vN = GenerateTriangleNormals(Cube2(6), Cube2(7), Cube2(8)) Cube2(6).nx = vN.X: Cube2(6).ny = vN.Y: Cube2(6).nz = vN.Z Cube2(7).nx = vN.X: Cube2(7).ny = vN.Y: Cube2(7).nz = vN.Z Cube2(8).nx = vN.X: Cube2(8).ny = vN.Y: Cube2(8).nz = vN.Z
Cube2(9) = CreateVertex(1, -1, -1, 0, 0, 0, 1, 0) Cube2(10) = CreateVertex(-1, -1, -1, 0, 0, 0, 0, 0) Cube2(11) = CreateVertex(1, 1, -1, 0, 0, 0, 1, 1) vN = GenerateTriangleNormals(Cube2(9), Cube2(10), Cube2(11)) Cube2(9).nx = vN.X: Cube2(9).ny = vN.Y: Cube2(9).nz = vN.Z Cube2(10).nx = vN.X: Cube2(10).ny = vN.Y: Cube2(10).nz = vN.Z Cube2(11).nx = vN.X: Cube2(11).ny = vN.Y: Cube2(11).nz = vN.Z
'Right Cube2(12) = CreateVertex(-1, -1, -1, 0, 0, 0, 0, 0) Cube2(13) = CreateVertex(-1, 1, 1, 0, 0, 0, 1, 1) Cube2(14) = CreateVertex(-1, 1, -1, 0, 0, 0, 1, 0) vN = GenerateTriangleNormals(Cube2(12), Cube2(13), Cube2(14)) Cube2(12).nx = vN.X: Cube2(12).ny = vN.Y: Cube2(12).nz = vN.Z Cube2(13).nx = vN.X: Cube2(13).ny = vN.Y: Cube2(13).nz = vN.Z Cube2(14).nx = vN.X: Cube2(14).ny = vN.Y: Cube2(14).nz = vN.Z
Cube2(15) = CreateVertex(-1, 1, 1, 0, 0, 0, 1, 1) Cube2(16) = CreateVertex(-1, -1, -1, 0, 0, 0, 0, 0) Cube2(17) = CreateVertex(-1, -1, 1, 0, 0, 0, 0, 1) vN = GenerateTriangleNormals(Cube2(15), Cube2(16), Cube2(17)) Cube2(15).nx = vN.X: Cube2(15).ny = vN.Y: Cube2(15).nz = vN.Z Cube2(16).nx = vN.X: Cube2(16).ny = vN.Y: Cube2(16).nz = vN.Z Cube2(17).nx = vN.X: Cube2(17).ny = vN.Y: Cube2(17).nz = vN.Z
'Left Cube2(18) = CreateVertex(1, 1, -1, 0, 0, 0, 1, 0) Cube2(19) = CreateVertex(1, 1, 1, 0, 0, 0, 1, 1) Cube2(20) = CreateVertex(1, -1, -1, 0, 0, 0, 0, 0) vN = GenerateTriangleNormals(Cube2(18), Cube2(19), Cube2(20)) Cube2(18).nx = vN.X: Cube2(18).ny = vN.Y: Cube2(18).nz = vN.Z Cube2(19).nx = vN.X: Cube2(19).ny = vN.Y: Cube2(19).nz = vN.Z Cube2(20).nx = vN.X: Cube2(20).ny = vN.Y: Cube2(20).nz = vN.Z
Cube2(21) = CreateVertex(1, -1, 1, 0, 0, 0, 0, 1) Cube2(22) = CreateVertex(1, -1, -1, 0, 0, 0, 0, 0) Cube2(23) = CreateVertex(1, 1, 1, 0, 0, 0, 1, 1) vN = GenerateTriangleNormals(Cube2(21), Cube2(22), Cube2(23)) Cube2(21).nx = vN.X: Cube2(21).ny = vN.Y: Cube2(21).nz = vN.Z Cube2(22).nx = vN.X: Cube2(22).ny = vN.Y: Cube2(22).nz = vN.Z Cube2(23).nx = vN.X: Cube2(23).ny = vN.Y: Cube2(23).nz = vN.Z
'Top Cube2(24) = CreateVertex(-1, 1, 1, 0, 0, 0, 0, 1) Cube2(25) = CreateVertex(1, 1, 1, 0, 0, 0, 1, 1) Cube2(26) = CreateVertex(-1, 1, -1, 0, 0, 0, 0, 0) vN = GenerateTriangleNormals(Cube2(24), Cube2(25), Cube2(26)) Cube2(24).nx = vN.X: Cube2(24).ny = vN.Y: Cube2(24).nz = vN.Z Cube2(25).nx = vN.X: Cube2(25).ny = vN.Y: Cube2(25).nz = vN.Z Cube2(26).nx = vN.X: Cube2(26).ny = vN.Y: Cube2(26).nz = vN.Z
Cube2(27) = CreateVertex(1, 1, -1, 0, 0, 0, 1, 0) Cube2(28) = CreateVertex(-1, 1, -1, 0, 0, 0, 0, 0) Cube2(29) = CreateVertex(1, 1, 1, 0, 0, 0, 1, 1) vN = GenerateTriangleNormals(Cube2(27), Cube2(28), Cube2(29)) Cube2(27).nx = vN.X: Cube2(27).ny = vN.Y: Cube2(27).nz = vN.Z Cube2(28).nx = vN.X: Cube2(28).ny = vN.Y: Cube2(28).nz = vN.Z Cube2(29).nx = vN.X: Cube2(29).ny = vN.Y: Cube2(29).nz = vN.Z
'Top Cube2(30) = CreateVertex(-1, -1, -1, 0, 0, 0, 0, 0) Cube2(31) = CreateVertex(1, -1, 1, 0, 0, 0, 1, 1) Cube2(32) = CreateVertex(-1, -1, 1, 0, 0, 0, 0, 1) vN = GenerateTriangleNormals(Cube2(30), Cube2(31), Cube2(32)) Cube2(30).nx = vN.X: Cube2(30).ny = vN.Y: Cube2(30).nz = vN.Z Cube2(31).nx = vN.X: Cube2(31).ny = vN.Y: Cube2(31).nz = vN.Z Cube2(32).nx = vN.X: Cube2(32).ny = vN.Y: Cube2(32).nz = vN.Z
Cube2(33) = CreateVertex(1, -1, 1, 0, 0, 0, 1, 1) Cube2(34) = CreateVertex(-1, -1, -1, 0, 0, 0, 0, 0) Cube2(35) = CreateVertex(1, -1, -1, 0, 0, 0, 1, 0) vN = GenerateTriangleNormals(Cube2(33), Cube2(34), Cube2(35)) Cube2(33).nx = vN.X: Cube2(33).ny = vN.Y: Cube2(33).nz = vN.Z Cube2(34).nx = vN.X: Cube2(34).ny = vN.Y: Cube2(34).nz = vN.Z Cube2(35).nx = vN.X: Cube2(35).ny = vN.Y: Cube2(35).nz = vN.Z
سپس يک بافر vertex خالي با ساير موردنظر مي سازيم :
Set VBuffer = D3DDevice.CreateVertexBuffer(Len(Cube2(0)) * 36, 0, Unlit_FVF, D3DPOOL_DEFAULT)x
سپس اين بافر vertex ساخته شده را با داده هاي cube2 پر مي کنيم :
D3DVertexBuffer8SetData VBuffer, 0, Len(Cube2(0)) * 36, 0, Cube2(0)x
در دستورات فوق تابعي با نام GenerateTraingleNormals استفاده شده است . اين تابع دو بردار را از روي سه vertex داده شده با آن مي سازد و سپس ضرب برداري ايندو را حساب مي کند و سپس بردار حاصله را نرمال مي نمايد :
Private Function GenerateTriangleNormals(p0 As UnlitVertex, p1 As UnlitVertex, p2 As UnlitVertex) As D3DVECTOR Dim v01 As D3DVECTOR 'Vector from points 0 to 1 Dim v02 As D3DVECTOR 'Vector from points 0 to 2 Dim vNorm As D3DVECTOR 'The final vector
'Create the vectors from points 0 to 1 and 0 to 2 D3DXVec3Subtract v01, MakeVector(p1.X, p1.Y, p1.Z), MakeVector(p0.X, p0.Y, p0.Z) D3DXVec3Subtract v02, MakeVector(p2.X, p2.Y, p2.Z), MakeVector(p0.X, p0.Y, p0.Z)
'Get the cross product D3DXVec3Cross vNorm, v01, v02
'Normalize this vector D3DXVec3Normalize vNorm, vNorm
'Return the value GenerateTriangleNormals.X = vNorm.X GenerateTriangleNormals.Y = vNorm.Y GenerateTriangleNormals.Z = vNorm.Z End Function
حال به توضيح تابع SetupLights مي پردازيم . در اين تابع دو شي D3DMATERIAL8 و D3DCOLORVALUE استفاده شده است :
Private Function SetupLights() As Boolean Dim Mtrl As D3DMATERIAL8, Col As D3DCOLORVALUE Col.a = 1: Col.r = 1: Col.g = 1: Col.b = 1 Mtrl.Ambient = Col Mtrl.diffuse = Col D3DDevice.SetMaterial Mtrl
Lights.Type = D3DLIGHT_DIRECTIONAL Lights.diffuse.r = 1 Lights.diffuse.g = 1 Lights.diffuse.b = 1 Lights.Direction = MakeVector(1, -1, 0)
D3DDevice.SetLight 0, Lights
SetupLights = True End Function
تابع Render بصورت زير است :
Public Sub Render() D3DDevice.Clear 0, ByVal 0, D3DCLEAR_TARGET Or D3DCLEAR_ZBUFFER, 0, 1#, 0 '//Clear the screen black D3DDevice.BeginScene 'Draw the cube D3DDevice.SetTexture 0, CubeTexture D3DDevice.SetStreamSource 0, VBuffer, Len(Cube2(0)) D3DDevice.DrawPrimitive D3DPT_TRIANGLELIST, 0, 12 D3DDevice.EndScene D3DDevice.Present ByVal 0, ByVal 0, 0, ByVal 0 End Sub
ساختار اصلي برنامه بصورت زير است :
Call Initialise Do While bRunning RotateAngle = RotateAngle + 0.1 If RotateAngle >= 360 Then RotateAngle = RotateAngle - 360
D3DXMatrixIdentity matWorld
D3DXMatrixIdentity matTemp D3DXMatrixRotationX matTemp, RotateAngle * (pi / 180) D3DXMatrixMultiply matWorld, matWorld, matTemp
D3DXMatrixIdentity matTemp D3DXMatrixRotationY matTemp, RotateAngle * (pi / 180) D3DXMatrixMultiply matWorld, matWorld, matTemp
D3DXMatrixIdentity matTemp D3DXMatrixRotationZ matTemp, RotateAngle * (pi / 180) D3DXMatrixMultiply matWorld, matWorld, matTemp
D3DDevice.SetTransform D3DTS_WORLD, matWorld
D3DDevice.LightEnable 0, 0 خاموش کردن light
D3DDevice.LightEnable 0, 1 روشن کردن light
Render DoEvents Loop
ارادتمند شما مهرگان ایرانی 
نوشته شده توسط دانشجویان رشته کامپیوتر در سه شنبه نهم خرداد 1385 و ساعت 23:5
 کاریکاتور توهین آمیز روزنامه ایران

اینروزها همه جا صحبت از کاریکاتوریست که بر علیه هموطنان آذری در روزنامه ایران چاپ شد و باعث گردید تا موسسه ۷۰۰۰ نفری ایران تا اطلاع ثانوی تعطیل باشد
ما هم گفتیم که بچه های وبلاگ ما اگه این کاریکاتو رو ندیدند ببینند هر طور بود یک نسخه از اونو گیر آوردیمو براتون آپ کردیم
قابل شما رو نداره
نوشته شده توسط دشلمه در سه شنبه نهم خرداد 1385 و ساعت 21:16
 جلسه هفتم
سلام دوست های خوب و مهربونم
در بحث قبلي به تعريف ماترسها رسيديم .
1 - World Matrix : اين ماتريس براي نگهداري تمام vertex هايي که براي رندر فرستاده مي شوند بکار مي رود . مقادير موجود در اين ماتريس ، موقعيت يک vertex را مي تواند تغيير دهد . يکي از کاربردهاي آن انجام دورانrotation ، انتقال transmittion و تغییر اندازه scaling است . برای ساخت اين ماتريس از دستور زير استفاده می کنيم :
D3DXMatrixIdentify matworld
حال اين ماتريس را براي device مربوطه تاييد مي کنيم :
D3DDevice.SetTransform D3DTS_WORLD,matworld
۲ - View Matrix : اين ماتريس را بعنوان يک دوربين در نظر بگيريد که بوسيله يک نقطه شروع و يک نقطه پاياني مشخص مي شود ( مشابه يک up vector که معمولاً در طول محور y رو به بالاست ) :
D3DXMatrixLookAtLH matView, MakeV(0, 5, 9), MakeV(0, 0, 0),MakeV(0, 1, 0) x D3DDevice.SetTransform D3DTS_VIEW, matView
تابع MakeV که در اينجا استفاده شده بصورت زير است :
Private Function MakeV(x As Single, y As Single, z As Single) As D3DVECTOR MakeV.x = x MakeV.y = y MakeV.z = z End Function
۳ - Projection Matrix : اين ماتريس مشخص مي کند چه منطقه اي از فضاي جهاني براي رندر کردن visible باشد . همچنين مشخص مي کند چه مقدار مي توانيم بطور افقي ببينيم ( زاويه ديد بزرگتر منجر به ديد بزرگتر مي شود ) :
D3DXMatrixPerspectiveFovLH matProj, pi / 4, 1, 0.1, 500
در دستور فوق از زاويه ديد pi/4 راديان استفاده شده همچنين نسبت 1:1 استفاده شده است . قسمتهاي سوم و چهارم مشخص مي کنند فقط مثلثهايي کشيده شوند که با ابعاد بزرگتر از يکدهم دوربين و کوچکتر از ۵۰۰ برابر دوربين هستند . حال دستور اختصاص به device را خواهيم داشت :
D3DDevice.SetTransform D3DTS_PROJECTION, matProj
بعد از تعريف ماتريسها بايستي تابع InitializeGeometry را صدا کنيم . در اين تابع از يک ثابت با نام DFC استفاده شده است . اگر DFC=1 باشد مکعب بطور کامل کشيده مي شود و اگر بزرگتر از يک باشد ، face هاي آن جدا از هم ديده خواهند شد . همچنين توجه کنيد که از بافرهاي vertex براي ذخيره داده vertex ها استفاده شده است . ساختار اين تابع بصورت زير خواهد بود : ۱ - پر کردن ساختارهاي vertex
'Front Cube(0) = CreateLitVertex(-1, 1, DFC, color, 0, 0, 0)x Cube(1) = CreateLitVertex(1, 1, DFC, color, 0, 0, 0)x Cube(2) = CreateLitVertex(-1, -1, DFCcolor, 0, 0, 0)x Cube(4) = CreateLitVertex(-1, -1, DFC, color, 0, 0, 0)x Cube(5) = CreateLitVertex(1, -1, DFC, color, 0, 0, 0)x 'Back Cube(6) = CreateLitVertex(-1, 1, -DFC, color, 0, 0, 0)x Cube(7) = CreateLitVertex(1, 1, -DFC, color, 0, 0, 0)x Cube(8) = CreateLitVertex(-1, -1, -DFC, color, 0, 0, 0)x Cube(9) = CreateLitVertex(1, 1, -DFC, color, 0, 0, 0)x Cube(10) = CreateLitVertex(-1, -1, -DFC, color, 0, 0, 0)x Cube(11) = CreateLitVertex(1, -1, -DFC, color, 0, 0, 0)x 'Right Cube(12) = CreateLitVertex(-DFC, 1, -1, color, 0, 0, 0)x Cube(13) = CreateLitVertex(-DFC, 1, 1, color, 0, 0, 0)x Cube(14) = CreateLitVertex(-DFC, -1, -1, color, 0, 0, 0)x Cube(15) = CreateLitVertex(-DFC, 1, 1, color, 0, 0, 0)x Cube(16) = CreateLitVertex(-DFC, -1, -1, color, 0, 0, 0)x Cube(17) = CreateLitVertex(-DFC, -1, 1, color, 0, 0, 0)x 'Left Cube(18) = CreateLitVertex(DFC, 1, -1, color, 0, 0, 0)x Cube(20) = CreateLitVertex(DFC, -1, -1, color, 0, 0, 0)x Cube(21) = CreateLitVertex(DFC, 1, 1, color, 0, 0, 0)x Cube(22) = CreateLitVertex(DFC, -1, -1, color, 0, 0, 0)x Cube(23) = CreateLitVertex(DFC, -1, 1, color, 0, 0, 0)x 'Top Cube(24) = CreateLitVertex(-1, DFC, 1, color, 0, 0, 0)x Cube(25) = CreateLitVertex(1, DFC, 1, color, 0, 0, 0)x Cube(26) = CreateLitVertex(-1, DFC, -1, color, 0, 0, 0)x Cube(27) = CreateLitVertex(1, DFC, 1, cocolor, 0, 0, 0)x Cube(29) = CreateLitVertex(1, DFC, -1, color, 0, 0, 0)x 'Bottom Cube(30) = CreateLitVertex(-1, -DFC, 1, color, 0, 0, 0)x Cube(31) = CreateLitVertex(1, -DFC, 1, color, 0, 0, 0)x Cube(32) = CreateLitVertex(-1, -DFC, -1, color, 0, 0, 0)x Cube(33) = CreateLitVertex(1, -DFC, 1, color, 0, 0, 0)x Cube(34) = CreateLitVertex(-1, -DFC, -1, color, 0, 0, 0)x Cube(35) = CreateLitVertex(1, -DFC, -1, color, 0, 0, 0)x
2 - ساخت يک بافر vertex خالي با سايز مورد نظر :
Set VBuffer = D3DDevice.CreateVertexBuffer(Len(Cube(0)) * 36, 0, Lit_FVF, D3DPOOL_DEFAULT)x
3 - پر کردن بافر مربوطه با داده ها :
D3DVertexBuffer8SetData VBuffer, 0, Len(Cube(0)) * 36, 0, Cube(0)x
حال به سراغ روتين Render مي رويم :
Public Sub Render D3DDevice.Clear 0, ByVal 0, D3DCLEAR_TARGET Or D3DCLEAR_ZBUFFER, 0, 1#, 0 '//Clear the screen black D3DDevice.BeginScene D3DDevice.SetStreamSource 0, VBuffer, Len(Cube(0))x D3DDevice.DrawPrimitive D3DPT_TRIANGLELIST, 0, 12 D3DDevice.EndScene D3DDevice.Present ByVal 0, ByVal 0, 0, ByVal 0 End Sub
ساختار اصلي برنامه بصورت زير خواهد بود :
Dim RotateAngle As Single Dim matTemp As D3DMATRIX '//To hold temporary call Initialize Do While bRunning RotateAngle = RotateAngle + 0.1 If RotateAngle >= 360 Then RotateAngle = RotateAngle - 360 D3DXMatrixIdentity matWorld '//Reset our world matrix D3DXMatrixIdentity matTemp D3DXMatrixRotationX matTemp, RotateAngle * (pi / 180) x D3DXMatrixMultiply matWorld, matWorld, matTemp D3DXMatrixIdentity matTemp D3DXMatrixRotationZ matTemp, RotateAngle * (pi / 180) x D3DXMatrixMultiply matWorld, matWorld, matTemp D3DDevice.SetTransform D3DTS_WORLD, matWorld Render DoEvents Loop ارادتمند شما مهرگان ایرانی 
نوشته شده توسط دانشجویان رشته کامپیوتر در دوشنبه هشتم خرداد 1385 و ساعت 22:37
 جلسه ششم
سلام
موضوع : مفاهيم اوليه رسم اشکال سه بعدي در DirectX 8
در اين درس با استفاده از Direct3D يک مکعب را رسم مي کنيم . براي اين منظور ابتدا نياز به يک بافر داريم که بتوانيم شکل مورد نظر خود را در آن ذخيره کنيم :
Dim VBuffer as Direct3DVertexBuffer8
براي رسم مکعب از vertex هاي سه بعدي استفاده مي کنيم . براي اينکار نياز به تعريف يک تايپ جديد داريم :
Private Type LITVERTEX x as single y as single z as single color as long specular as long tu as single tv as single end type
توصيف گر اين فرمت ، بصورت زير است :
Const Lit_FVF = (D3DFVF_XYZ Or D3DFVF_DIFFUSE Or D3DFVF_SPECULAR Or D3DFVF_TEX1)x
براي توصيف مکعب در اين درس از روشي غيرکارامد استفاده شده است . به اين ترتيب که از ۳۶ عدد vertex استفاده شده ( در درسهاي بعدي متدهايي معرفي خواهند شد که اجازه مي دهند از ۸ عدد vertex باري توصيف مکعب استفاده کنيد ) .
Dim cube(35) as LITVERTEX
سپس بايد يکسري ماتريس سه بعدي تعريف کنيم : اولين ماتريس ، matworld است که نشان مي دهد چگونه vertex ها در فضاي سه بعدي قرار گرفته اند . دومين ماتريس ، matview است که نشان مي دهد دوربين ( نقطه ديد ) در کجا قرار گرفته و سومين ماتريس ، matproj است که نشان مي دهد دوربين چگونه دنياي سه بعدي را روي صفحه دو بعدي نشان مي دهد :
Dim matworld as D3DMATRIX Dim matview as D3DMATRIX Dim matproj as D3DMATRIX
در تابع Initialize قبل از ساخت device بايستي چک کنيم که آيا مي توانيم از يک بافر Z شانزده بيتي استفاده کنيم يا نه ؟
If D3D.CheckDeviceFormat(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, DispMode.Format, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, D3DFMT_D16) = D3D_OK Then D3DWindow.AutoDepthStencilFormat = D3DFMT_D16 '16 bit Z-Buffer
حال بايستي متد D3DCreateDevice را اجرا کنيد . سپس بايد سيستم سايه زني vertex را با فرمت vertex مان تنظيم کنيم :
D3DDevice.SetVertexShader Lit_FVF
همچنين سيستم نورپردازي را غير فعال مي کنيم :
D3DDevice.SetRenderState D3DRS_LIGHTING, False
Direct3D هيچ مثلثي را که در ديد شما نباشد رسم نخواهد کرد . براي متوقف کردن اين امر بايستي حالت culling آنرا متوقف کنيد همچنين vertex ها را بترتيب عقربه هاي ساعت معرفي کنيد :
D3DDevice.SetRenderState D3DRS_CULLMODE, D3DCULL_NONE
سپس بايد فرمت بافر Z را فعال سازيد :
D3DDevice.SetRenderState D3DRS_ZENABLE, 1
حال به بخش تعريف ماتريسها مي رسيم : ان شا الله بحث ماتریس ها در جلسه ی بعد.
ارادتمند شما مهرگان ایرانی 
نوشته شده توسط دانشجویان رشته کامپیوتر در دوشنبه هشتم خرداد 1385 و ساعت 12:15
 رايت800 مگا بايت و بيشتر بر روی سی دی های معمولی
شايد برايتان پيش آمده باشد که مثلا يک برنامه داريد که حجمش از 700 مگابايت بيشتر باشد و مي خواهيد آن را رايت کنيد در اين مواقع مي بايست اون برنامه رو فشرده کنيد که البته شايد باز هم اون برنامه تو سی دی جا نشه . با اين ترفند مي تونيد بر روي سي دي هاي معمولي حتي تا 1 گيگا بايت اطلاعات ذخيره کنيد .
ابتدا مي بايست ببينيد رايتر شما overburning ساپورت مي کنه يا نه . براي تستاين کار مراحل زير را دنبال کنيد :
ابتدا به برنامه Nero رفته و سپس کليد هاي ترکيبي Ctrl + R را فشار دهيد . تو اين پنجره ببينيد که
در قسمت Recorder information ، رو به روي عبارت Over burn عبارت suported نوشته شده است يا نه . اگر عبارت ساپورت نوشته شده باشد شما مي تو نيد از اين ترفند استفاده کنيد .
حال به منوي File رفته و قسمت preferences رو انتخاب کنيد سپس در قسمت Expert features دقت کنيد که عبارت enable overburn فعال باشد . در زير همين گزينه مقدار مجاز overburn رو به دقيقه مشخص کنيد .
حال به منوي File رفته و گزينه New را انتخاب کنيد و در قسمت Multisession گزينه No Muttisession را انتخاب نماييد. سپس در قسمت Burn عبارت Write Method رو به Disc at Onec تبديل کنيد .
حال مي توانيد سي دي خود را رايت کنيد البته مقدار رايت هم بستگي خيلي زيادي به رايتر دارد.
نوشته شده توسط راسپینا در دوشنبه هشتم خرداد 1385 و ساعت 10:23
 فعال کردن فکس در ویندوز XP
اگر شما در خانه یا محل کارتان دستگاه فکس ندارید ناراحت نباشید چون مایکروسافت لطف کرده و مشکل رو حل کرده !
مایکروسافت امکان ارسال و دریافت فکس رو در حالت پیش فرض ویندوز غیر فعال قرار داده که ما الان می خواهیم با هم این امکان را فعال کنیم :
ابتدا از منوي Start وارد Control Panel شوید وقتی Control Panel باز شد به قسمت Printers & Faxes وارد می شوید. در قسمت چب بالا صفحه دو گزینه مشاهده می کنید : یکی Add a Printer و دومی Set Up faxing شما گزینه دوم را انتخاب کنید .
پس از کلیک روی آن صفحه باید مدت بسیار کمی منتظر بمانید . سپس صفحه ای به نام Configuring Components باز می شود . ( دقت داشته باشید باید سی دی ویندوز در سی دی رام باشد در غیر این صورت ویندوز از شما می خواهد که سی دی را در سی دی رام قرار دهید و سپس گزینه OK را بزنید )
ویندوز به صورت اتوماتیک شروع به کپی کردن فایل های مربوط به فکس می کند ....
حالا دیگر شما یک فکس بر روی کامپیوتر خود دارید که بوسیله آن می توانید به هر کجای دنیا فکس ارسال کنید .
نوشته شده توسط راسپینا در دوشنبه هشتم خرداد 1385 و ساعت 9:46
 ریجستری
اینم برای تلافی اون مدتی که کاراکتر چنگی به دل نمیزد و آمدن به وبلاگ صلاح نبود
مقدمه ای کوتاه در باره رجيستری
براي اجراي rgistry از منوی Start گزينه Run را انتخاب كرده و كلمه Regedit را تایپ کرده و OK را بزنيد. اين برنامه دارای دو پنجره ميباشد که پنجره سمت چپ شامل شاخه ها وريشه های رجيستری و پنجره سمت راست شامل دستورات و مقادير آن است
HKEY_CLASSES_ROOT : شامل تناظر پسوند فايلها و تنظيمات سيستم است . HKEY_CURRENT_USER : شامل تنظيماتي است كه مختص كاربر فعلي است. HKEY_LOCALL_MACHINS : شامل تنظيماتي كه به صورت سراسري اعمال ميشود و به كاربر وابسته نيست .
HKEY_USERS : شامل تنظيمات كاربران از جمله كاربر فعلي است . HKEY_CURRENT_CONFIG : شامل تنظيمات سخت افزار موجود ميباشد
حروف کوچک و بزرگ در Rgistery
رجيستری به حروف بزرک يا کوچک خيلی حساس است وقتی ما میخواهیماز منوی New يک زير کليد بسازيم بايد Key را تيک بزنيم تا کليد ساخته شودنام کليد را ميگذاريم Shell کليد فرمان را هم ميگذاريم Command حال حرف اول Shell که S ميباشد وحرف اول Command که C ميباشد با حروف بزرگ تایپ شده حال در صفحه راست رجيستری وقتی يک Dword value ايجاد ميکنيم ميخواهيم دستور آن را Open بگذاريم حرف اول که O ميباشد بايد بزرگ ثبت گردد در غير اين صورت از کارمان نتيجه نخواهيم گرفت یک مثال وقتی ما یک دستور در پنجره راست رجیستری از نوع DWORDمیسازیم و نام آن را NoRecentDocsMenu میگذاریم این دستور از ۴ قسمت تشکیل شده وحرف اول هر کدام با حرف بزرگ تایپ شده پس در تمام موارد چه شاخه یا زیر شاخه یا دستور اول هر حرف باید بزرگ نوشته شود .
وبرای شروع اینم سه تا از ترفندهای ریجستری :
ü اگر دوست نداريد كسي فايلي را در كامپيوتر شما جستجو كند ميتوانيد Search را از منوي Start حذف كنيد
براي اين كار به آدرس زیر بروید
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVresion\Polisies\Explorer
و يك مقدارDWORD به نام NoFind بسازيد و به آن مقدار یک بدهيد .
ü عير فعا ل کردن C D رايتر
چنانچه مايليد در مدت نبود شما کسی از سی دی رايتر شما استفاده نکند اين آدرس را پيدا کنيد واعمال زير را انجام دهيد
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
حال يک مقدار DWORD بسازيد و نام آن را NoCDBurning بگذاريد و عدد برابر يک به آن
بدهيد توجه فر ماييد که تغيراتی را که در رجيستری انجام ميدهيد بايد سيستم را
راه اندازی مجدد يا لا گاف کنيد .
ü پیغامی به کاربران قبل از ورود به ویندوز :
اگر ميخواهيد هر بار كه ويندوز شروع به كار ميكند پیغامی برای کاربر بعد از خودتان بگذاريد ميتوانيد از طریق این آدرس ها در رجیستری متن پیامتان را تایپ کنید و کار بر بعدی ملزم به خواندن آن است در ويندوز اکسپی از طريق دو آدرس زير وبرای ويندوز ۹۸ از آدرس سوم در ویندوز ۹۸ یا ME باید دو مقدار رشته را بسازید ولی در ويندوز XP دو رشته وجود دارد HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\policies\system HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon
و دو مقدار رشته اي به نامهاي LegalNoticeCaption و LegalNoticeText وجود دارد LegalNoticeCaption نام كادر پيغام و به LegalNoticeText متني كه دوست داريد . نمایش داده شود برای باز گشت متن پیام را حذف کنید .
*************
v اگر ابر و باد و مه و خورشید و فلک و مشکلات شخصی و غیر شخصی و انحصار گریها و آشوبگریها وادعاها و جرو بحثها و بایکوت کردنها گذاشتند و خلاصه روزگار بر وفق مراد بود و بلاگ و بلاگیها سرمون تو لاک خودمون بود هر از چند گاهی از این ترفندهای ریجستری و یا شاید هم دنیا رو چه دیدین شعری و دکلمه ای براتون خواهم نوشت اخه دشلمه خیلی وقته مطلب آپ نکرده و یه جورایی مظلوم واقع شده دیگه . حق بدین که این مطلب طولانی تر باشه . 
نوشته شده توسط دشلمه در یکشنبه هفتم خرداد 1385 و ساعت 7:52
 × حذفیات ×
فيزيك 2
از فصل 1 تا 10 بايد تدريس بشه
بخش 2-6 صفحه 39 حذف
بخش 4-4 صفحه 93 حذف
بخش 4-6 صفحه 99 حذف
بخش 5-6 صفحه 132 حذف
بخش 8-3 صفحه 207 حذف
بخش 8-6 صفحه 219 حذف
بخش 9-3 صفحه 234 حذف
بخش 10-4 صفحه 269 حذف
بخش 10-7 صفحه 275 حذف
رياضي 2
از كتاب رياضي 2 فصل 4و5 بايد تدريس شود و از كتاب رياضي 3 همه فصلها
از فصل 4 كتاب رياضي 2 يك مثال مربوط به ماتريسهاست كه در فصل 3 نحوه حل كردن اين ماتريس بيان شده كه قاعدتا اون مثال و تمرينهاي مربوط به اون بخش حذفه
اصول سيستمها
فصول 1و2و3و4و5و6و8و15 مباحثي است كه براي امتحان بايد خوانده شود
ساختمان داده ها
از كتاب آقاي مقسمي حذفيات نداريم
از كتاب آقاي عليخانزاده به غير از مباحث زير حذفيات محسوب مي شود:
زير برنامه هاي بازگشتي ، پيچيدگي زماني و مرتبه اجرايي ، آرايه ، پشته ، صف ، ليست پيوندي ، درخت ، گراف ، مرتب سازي
با آرزوی موفقیت
خان داداش
نوشته شده توسط الياس در یکشنبه هفتم خرداد 1385 و ساعت 4:47
 جلسه ی پنجم
موضوع : اختصاص بافت Texture به اشکال دو بعدي در اين درس مي خواهيم يک مربع که داراي بافت مي باشد را رسم کنيم . براي اينکار از کتابخانه کمکي D3DX8 استفاده مي کنيم . همچنين شي Direct3DTexture8 را نيز استفاده مي نمائيم .
Dim D3DX as D3DX8 Dim Texture as Direct3DTexture8
حال بايستي در تابع Initialize بافت مربوطه را از روي يک فايل تصويري load کنيم :
Private Function Initialize as boolean . . . Set Texture=D3DX8.CreateTextureFromFile(D3DDevice,app.path & yourfilename) x end function
تابع Render نيز بصورت زير خواهد بود :
Private Sub Render D3DDevice.clear 0,byval 0,D3DCLEAR_TARGET,0,1#,0 D3DDevice.beginscence D3DDevice.SetTexture 0,Texture D3DDevice.DrawprimitiveUP D3DPT_TRIANGLESTRIP,2,Tripstrip(0),len(Tristrip(0))x . . . end function
ارادتمند شما مهرگان ایرانی 
نوشته شده توسط دانشجویان رشته کامپیوتر در شنبه ششم خرداد 1385 و ساعت 22:45
 دخترای....

نوشته شده توسط راسپینا در جمعه پنجم خرداد 1385 و ساعت 17:38
 زنگ تفریح
سلام
دوستان خوب و مهربونم این هم یه زنگ تفریح. خیلی ها فکر می کنن نوشتن یه ساعت عقربه ای آنالوگ خیلی سخته من که این طور فکر نمی کنم شما هم بخونین بعد ببینین که سخته یا نه:
اول يک تايمر به فرم اضافه کنيد و Interval اون رو برابر ۱۰۰۰ قرار بدين. بعد :
Private Sub Form_Load() Me.BackColor = vbBlack End Sub
Private Sub Timer1_Timer() Form1.Refresh X = Form1.Width / 2 Y = Form1.Height / 2.2 Circle (X, Y), Y - 200, vbWhite Circle (X, Y), Y - 220, vbWhite For i = 1 To 12 Circle (X + (Y - 400) * Cos(i * 22 / 42), Y + (Y - 400) * Sin(i * 22 / 42)), 50, vbRed Next h = Hour(Time()) If h > 12 Then h = h - 12 End If m = Minute(Time()) s = Second(Time()) Line (X, Y)-(X + (Y - 600) * Cos((66 / 14 + s * (44 / 420))), Y + (Y - 600) * Sin((66 / 14 + s * (44 / 420)))), vbBlue Line (X, Y)-(X + (Y - 800) * Cos((66 / 14 + m * (44 / 420))), Y + (Y - 800) * Sin((66 / 14 + m * (44 / 420)))), vbYellow Line (X, Y)-(X + (Y - 1200) * Cos(66 / 14 + h * (44 / 84) + (m / 12) * (44 / 420)), Y + (Y - 1200) * Sin(66 / 14 + h * (44 / 84) + (m / 12) * (44 / 420))), vbWhite
End Sub
ارادتمند شما مهرگان ایرانی
نوشته شده توسط دانشجویان رشته کامپیوتر در جمعه پنجم خرداد 1385 و ساعت 14:32
 جلسه چهارم
سلام
بیشتر با این ابزار آشنا شویم:
موضوع : آشنايي با برخي اصطلاحات
1- Mesh : مش ، مجموعه اي از face ها است که يک شي سه بعدي را روي صفحه تشکيل مي دهند .
۲ - Face : يک چند ضلعی است که توسط مجموعه ای از نقاط به نام vertex ساخته مي شود .
۳ - Vertex : يک نقطه در فضاي سه بعدي است که براي دادن موقعيت ، scale و زاويه يک face استفاده مي شود .
۴ - Direct3D از شيي بنام D3DVERTEX براي نمايش يک Vertex استفاده مي کند . براي ساخت face نيز از آرايه اي از vertex ها استفاده مي شود . آرايه هميشه بايستي قابل تقسيم به سه باشد زيرا اشکال از face هاي مثلثي ساخته مي شوند . هنگاميکه اين مثلثها کنار هم گذاشته شوند ، شي سه بعدي را مي سازند . Direct3D از بافري با نام Index Buffer استفاده مي کند که با direct3D مي گويد که با چه ترتيبي vertex ها را رسم نمايد . index ها بايستي هميشه در جهت عقربه هاي ساعت مشخص شوند .
ارادتمند شما مهرگان ایرانی
نوشته شده توسط دانشجویان رشته کامپیوتر در جمعه پنجم خرداد 1385 و ساعت 12:24
 ترفند هايي براي شاد زيستن
آنجه در اينجا مشاهده مي كنيد راههايي براي افزايش ميزان شادی شماست فقط هر چند روز آنها را مرور كنيد يا آنها را به خاطر بسپاريد تا اثر بخشي  آنها را دريابيد.
خوشحالي و غمگيني را مي توانيد خود انتخاب كنيد. پس خوشحالي را انتخاب كنيد.
هر روز سه انسان را ستايش كنيد.
در صورت امكان طلوع خورشيد را تماشا كنيد.
اولين نفري باشيد كه سلام مي كنيد.
اگر افرادي را دوست داريد، براي گفتن آن وقت را تلف نكنيد.
با همه به گونه اي رفتا ر كنيد، كه دوست داريد با شما رفتار كنند.
هيچگاه تسليم كسي نشويد و آنگاه است كه معجزه رخ مي دهد.
سعي كنيد هر روز اسم افرادي را به خاطر بياوريد .
از نطر فكري خشن و از نظر احساسي نازك دل باشيد.
از آنچه بايد مهربانتر باشيد.
بدانيد يكي از بزرگترين نيازهاي محيطي نياز به قدر داني است.
به قول خود وفا كنيد .
ياد بگيريد حتي زمانكه احساس خوبي نداريد ، خود را بشاش نشان دهيد.
هر چيز بهتري را كه پيدا مي كنيد رها كنيد.
به خاطر داشته باشيد برنده ها كارهايي را انجام مي دهند كه بازنده ها مي خواهند آن كار را انجام دهند .
وقتي به سر كار خود مي رسيد، اجازه دهيد اولين چيزي كه به زبان مي آوريد باعث افزايش روحيه همكارانتان شود .
تحت تاثير اهدافتان زندگي كنيد.
كلنجار رفتن با گذشته را متوقف كنيد.
نوشته شده توسط راسپینا در پنجشنبه چهارم خرداد 1385 و ساعت 23:58
 جلسه ی سوم
سلام
کم کم می تونیم اشکال دو بعدی رو رسم کنیم البته قبل از هر چیز مطلب زیر رو با دقت بخونید:
موضوع : رسم اشکال دو بعدي
مروري بر object هاي DirectX8 1 - DirectX8 : اين شي ، شي مرکزي براي directX است و به شما امکان دسترسي به توابع و اشيا DirectX را مي دهد . ۲ - Direct3D8 : شي اصلي براي کار با محيط سه بعدي مي باشد . هدف از آن ، ساخت Direct3DDevice8 است و همچنين شامل توابعي براي مشخص کردن توانايي هاي کارت گرافيک است . ۳ - Direct3DDevice8 : اين شي مسئول ساخت بافتها textures ، مديريت نورها در يک صحنه ، مديريت مواد materials و همچنين render صحنه است . در واقع اين شي ، قلب نمايشي کار شماست . 4 - D3DX8 : گر چه هميشه نيازي به استفاده از اين شي نيست ، اما اين شي شامل توابعي براي ساخت برنامه هاي userfriendly تر توسط DirectX است . مثلاً ساخت اشيا سه بعدي ( مثل کره ، مکعب و ... ) ، ساخت بافتها ، ساخت سطوح و غيره شروع کار براي رسم اشيا دوبعدي ابتدا ثابت FVF را تعريف مي کنيم . اين ثابت توصيف " فرمت قابل انعطاف نقطه flexible-vertex-format " براي يک vertex دو بعدي انتقال يافته و ساده شده مي باشد . سپس بايستي يک ساختار براي توصيف اين vertex معرفي کنيم :
Const FVF = D3DFVF_XYZRHW Or D3DFVF_TEX1 Or D3DFVF_DIFFUSE Or D3DFVF_SPECULAR Private Type TLVERTEX X As Single Y As Single Z As Single rhw As Single color As Long specular As Long tu As Single tv As Single End Type
فرض کنيد بخواهيم يک مربع را در صفحه رسم کنيم . براي رسم آن نياز به 4 عدد vertex داريم . بنابراين آرايه TriStrip را از نوع TLVERTEX تعريف ميکنيم :
Dim TriStrip (0 To 3) As TLVERTEX
حال به سراغ تابع initialize که در درس ۱ با آن آشنا شديد مي رويم و دستورات زير را به آن اضافه مي کنيم :
Private Function Initialize as boolean . . .
ابتدا سيستم سايه زني vertex را طوري تنظيم مي کنيم که از FVF استفاده کند .
D3DDevice.SetVertexShader FVF
حال سيستم lighting را براي vertex هاي دو بعدي غير فعال مي کنيم زيرا نيازي به آن نداريم :
D3DDevice.SetRenderState D3DRS_LIGHTING,false
حال بايستي تابع initializeGeometry را اجرا کنيم . اين تابع را در ادامه توضيح خواهم داد . اگر نتيجه اين تابع true باشد دراينصورت initialize به درستي انجام شده است :
if initializeGeometry()=true then initialize=true end function
تابع initializeGeometry در اين درس ، تابعي ساده است که تنها آرايه Vertex ها را مقدار دهي مي کند . براي رسم يک مربع نياز به مقداردهي ۴ vertex در جهت عقربه هاي ساعت داريم ( اين مربع شامل ۲ مثلث است )
Private Function InitialiseGeometry() As Boolean On Error GoTo BOut: color = RGB(200, 100, 0) TriStrip(0) = CreateTLVertex(100, 100, 0, 1, color, 0, 0, 0) TriStrip(1) = CreateTLVertex(300, 100, 0, 1, color, 0, 0, 0) TriStrip(2) = CreateTLVertex(100, 300, 0, 1, color, 0, 0, 0) TriStrip(3) = CreateTLVertex(300, 300, 0, 1, color, 0, 0, 0) InitialiseGeometry = True Exit Function BOut: InitialiseGeometry = False End Function
همانطور که مشاهده مي کنيد براي تعريف vertex از تابع CreateTLVERTEX استفاده شده است . اين تابع صرفاً مقادير ساختار TLVERTEX را مقداردهي مي کند :
Private Function CreateTLVertex(X As Single, Y As Single, Z As Single, rhw As Single, color As Long, specular As Long, tu As Single, tv As Single) As TLVERTEX
نکته : ضمن اينکه شما مي توانيد مقادير اعشاري floating point را براي مختصاتهاي x و y و z بکار ببريد ، Direct3D مختصاتها را با گردکردن آنها تخمين مي زند و بنابراين ممکنست باعث ايجاد نتايج ناخواسته شود .
CreateTLVertex.X = X CreateTLVertex.Y = Y CreateTLVertex.Z = Z CreateTLVertex.rhw = rhw CreateTLVertex.color = color CreateTLVertex.specular = specular CreateTLVertex.tu = tu CreateTLVertex.tv = tv End Function حال بايستي تابع Render را بنويسيم : Public Sub Render() D3DDevice.Clear 0, ByVal 0, D3DCLEAR_TARGET, 0, 1#, 0 D3DDevice.BeginScene D3DDevice.DrawPrimitiveUP D3DPT_TRIANGLESTRIP, 2, TriStrip(0), Len(TriStrip(0))x D3DDevice.EndScene D3DDevice.Present ByVal 0, ByVal 0, 0, ByVal 0 End Sub
ساختار اصلي براي اجراي توابع فوق بصورت زير است :
--Main part-- Initialize Do While yourevent=true Render DoEvents Loop
ارادتمند شما مهرگان ایرانی 
نوشته شده توسط دانشجویان رشته کامپیوتر در پنجشنبه چهارم خرداد 1385 و ساعت 22:30
 جلسه دوم
سلام
ادامه ی مطلب ساخت انیمشن های دو بعدی و سه بعدی:
موضوع : بدست آوردن مشخصات و تواناييهاي گرافيکي يک سيستم توسط DirectX-Graphic
1 - شمارش تعداد آداپتورهاي گرافيکي يک سيستم : فرض کنيد متغير nAdapters متغيري از نوع long باشد . همچنين شي D3DADAPTER_IDENTIFIER8 يک ساختار است که اطلاعات مربوط به آداپتور را نگه مي دارد . در اينصورت روتين enumerateAdapters بصورت زير خواهد بود :
Dim adapterinfo as D3DADAPTER_IDENTIFIER8 Private Sub EnumerateAdapters Dim i as integer nadapters=D3D.Getadaptercount
براي بدست آوردن جزئيات آداپبورها بصورت زير عمل مي کنيم :
for i=0 to nadapters-1 D3D.GetadapterIdentifier i ,0,adapterinfo
نام اين آداپتور بصورت ليستي از کدهاي اسکي است که بايستي آنها را درون يک string قرار دهيم :
for j=0 to 511 name=name & chr$(adapterinfo.description(j)) x next j name=replace(name,chr$(0)," ") x end sub
بنابراين در متغير name نام آداپتور قرار خواهد گرفت .
۲ - مشخص کردن نوع Rendering : فرض کنيد شي D3DCAPS8 توانايي rendering آداپتور را نشان دهد . در اينصورت روتين EnumerateDevices بصورت زير خواهد بود :
Private EnumerateDevices On Local Error resume next Dim Caps as D3DCAPS8 deviceindex=0 'For Example D3D.Getdevicecaps deviceindex,D3DDEVTYPE_HAL,caps if err.number=D3DERR_NOTAVAILABLE then
اگر آداپتور امکان رندر سخت افزاري نداشته باشد در اينصورت :
MsgBox("Reference Rasterizer(REF)") x else MsgBox("Hardware Acceleration(HAL)+Reference Rasterizer(REF)") x end if end sub
3 - شمارش تعداد Mode نمايشي آداپتور : فرض کنيد در صورت REF بودن امکان رندر ، متغير r=2 و در غيراينصورت r=1 باشد . همچنين شي D3DDISPLAYMODE اطلاعات مدهاي نمايشي را در خود دارد . همچنين فرض کنيد متغير nModes از نوع longباشد . در اينصورت روتين enumeratedispmodes بصورت زير خواهد بود :
Private Sub EnumerateDispModes(r as Long,n as Long) x Dim i as integer Dim mode_tmp as D3DDISPLAYMODE deviceindex=0 'For Example nModes=D3D.Getadaptermodecount(deviceindex) x for i=0 to nModes-1 D3D.EnumAdapterModes(deviceindex,i,mode_tmp) x
ابتدا Mode ها را به دو گروه ۱۶ بيتي و ۳۲ بيتي تقسيم مي کنيم :
if mode_tmp.format=D3DFMT_R8G8B8 or mode_tmp=D3DFMT_X8R8G8B8 or mode_tmp=D3DFMT_A8R8G8B8 then
حال چک مي کنيم که device قابل پذيرش و معتبر است يا نه :
if D3D.checkdevicetype(deviceindex,r,mode_tmp.format,mode_tmp.format,Flase)>=0 then MsgBox(mode_tmp.width & "X" & mode_tmp.height & "32 Bit FMT:" & mode_tmp.format ) x & " end if else if D3D.checkdevicetype(deviceindex,r,mode_tmp.format,mode_tmp.format,Flase)>=0 then MsgBox(mode_tmp.width & "X" & mode_tmp.height & "16 Bit FMT:" & mode_tmp.format ) x & " end if end if next i
4 - مشخص کردن توانايي هاي آداپتور گرافيکي : فرض کنيد در صورت REF بودن امکان رندر ، متغير r=2 و در غيراينصورت r=1 باشد :
Private Sub EnumerateHardware(r as long) x Dim caps as D3DCAPS8 D3D.Getdevicecaps deviceindex,r,caps If Caps.MaxActiveLights = -1 Then MsgBox "Maximum Active Lights: Unlimited" x Else MsgBox "Maximum Active Lights: " & Caps.MaxActiveLights End If MsgBox "Maximum Point Vertex size: " & Caps.MaxPointSize MsgBox "Maximum Texture Size: " & Caps.MaxTextureWidth & "X" & Caps.MaxTextureHeight MsgBox "Maximum Primatives in one call: " & Caps.MaxPrimitiveCount If Caps.TextureCaps And D3DPTEXTURECAPS_SQUAREONLY Then MsgBox "Textures must always be square" x End If If Caps.TextureCaps And D3DPTEXTURECAPS_CUBEMAP Then MsgBox "Device Supports Cube Mapping" x End If If Caps.TextureCaps And D3DPTEXTURECAPS_VOLUMEMAP Then MsgBox "Device Supports Volume Mapping" x End If If Caps.DevCaps And D3DDEVCAPS_PUREDEVICE Then MsgBox "Device supports the Pure Device Option" x End If If Caps.DevCaps And D3DDEVCAPS_HWTRANSFORMANDLIGHT Then MsgBox "Device supports hardware transform and lighting" x End If If Caps.DevCaps And D3DDEVCAPS_HWRASTERIZATION Then MsgBox "Device can use Hardware Rasterization" x End If If Caps.Caps2 And D3DCAPS2_CANCALIBRATEGAMMA Then MsgBox "Device can Calibrate Gamma" x End If If Caps.Caps2 And D3DCAPS2_CANRENDERWINDOWED Then MsgBox "Device can Render in Windowed Mode" x End If If Caps.Caps2 And D3DCAPS2_FULLSCREENGAMMA Then MsgBox "Device can calibrate gamma in fullscreen mode" x End If If Caps.RasterCaps And D3DPRASTERCAPS_FOGRANGE Then MsgBox "Device supports range based fog calculations" x End If If Caps.RasterCaps And D3DPRASTERCAPS_ANISOTROPY Then MsgBox "Device supports Anisotropic Filtering" x End If If Caps.RasterCaps And D3DPRASTERCAPS_ZBUFFERLESSHSR Then MsgBox "Device does not require a Z-Buffer/Depth Buffer" x End If
ارادتمند شما مهرگان ایرانی 
نوشته شده توسط دانشجویان رشته کامپیوتر در چهارشنبه سوم خرداد 1385 و ساعت 23:9
 چگونه هارد مجازی بدون نیاز به نرم افزار بسازیم ؟؟
هنگامی که صحبت از درایو مجازی می شود، ذهن بسیاری از کاربران به سمت نرم افزارهای خاصی می رود که قابلیت ساخت یک درایو مجازی را دارند. اما در حقیقت نیازی به تهیه و نصب این چنین نرم افزارهایی نیست. کمی صبر و حوصله و بی تردید دقت، می تواند یاورشما در ایجاد این چنین درایوی در محیط ویندوز باشد. شاید نتوان قابلیت های ویژه ایی که سری نرم افزارهای فوق در ساخت درایو مجازی بکار می برند را ایجاد کرد، اما ساخت یک درایو مجازی آن هم بدون نرم افزار، خالی از جذابیت نخواهد بود. قبل از شروع عملیات لازم است ذکر کنم ایجاد چنین درایوهایی هیچ ربطی به پارتیشن بندی هارد دیسک ندارد و سلامت سیستم عامل شما را به خطر نخواهد انداخت. بنابراین نگران از دست رفتن اطلاعات خود نباشید. ضمنا اگر خوشتان نیامد راهی برای از بین بردن درایو مجازی وجود دارد. تا انتهای این مقاله با ما باشید. برای ساخت درایو مجازی در این آموزش از فایل های خود ویندوز کمک می گیریم. اینبار به سراغ فایل اجرایی Subst.exe می رویم. این فایل در پوشه system32 که در پوشه windows قرار گرفته موجود است. این فایل به همراه سیستم عامل داس ارائه شده و اجرای آن در حالت اولیه کار هیچ عکس العملی نشان نخواهد داد. کلمه Subst برگرفته از کلمه Substitution به معنای جایگزینی و علی البدلی است و در حقیقت برای جانشین کرد یک دایرکتوری به یک درایو بکار می رود. به این معنی که با اجرای این دستور می توانید محتویات یک فولدر خاص را به یک درایو تبدیل کنید و آن را در My Computer نشان دهید. گاهی اوقات گشتن به دنبال پوشه ایی در میان انبوه فایل ها و فولدرهای در یک درایو خاص وقت گیر است. این کار می تواند این امر را تسهیل بخشد. مسلما عملیاتی مانند کپی و کات فایل ها یا حتی نصب برنامه ها در درایو هایی که به این روش ایجاد می شوند مقدور خواهد بود اما در مورد عملیات سیستمی مانند فرمت یا اسکن دیسک امکان پذیر نیست. حال چگونه از این Subst استفاده کنیم؟ به Run یا Command Prompt ویندوز وارد شوید ( توضیح: Run در خود منوی استارت ویندوز موجود است و همچنین برای ورود به Command Prompt در فیلد Run کلمه cmd را تایپ و اینتر کنید ) حال باید دستوری مطابق شکل زیر تایپ کنید (شکل کلی فرمان): Subst NewDriveName: Folder Direction فکر نکنم نیاز به توضیح چندانی باشه NewDriveName نام درایو جدیدی که قصد دارید ایجاد کنید. دقت کنید که این نام مشابه نام درایوهای موجود نباشه و Folder Direction مسیر پوشه ایی که قصد دارید اون رو به صورت درایو مجازی در بیارید. برای نمونه، مثال های زیر درایوهایی با نام K و L ایجاد خواهند کرد. درایو K جایگزینی برای محتویات پوشه C:\part و درایو L جایگزینی برای مسیر C:\ Program Files\Adobe . Subst K: C:\part Subst L: C:\ Program Files\Adobe توجه! مدت دوام این درایو های مجازی بعد از ریستارت سیستم پایان می پذیرد و با یک بار ریستارت سیستم، دیگر این درایوها را نخواهید دید. برای جلوگیری از این امر چندین راه وجود دارد که یکی را شرح می دهم. در سیستم عامل های Dos و Win9x ساده ترین راه ویرایش فایل Autoexec.bat خواهد بود. این فایل را در درایو C بیابید و خطوط مربوط به Subst را در آن تایپ کنید تا در هر بار ریستارت سیستم به تبع آن Subst ایجاد شود. در سیستم عامل های xp و 2000 بهترین و راحترین کار این است که یک فایل اجرایی با پسوند .bat یا همان BatchFile ایجاد کنیم و خود فایل یا Shortcut آنرا در استارتاپ سیستم قرار دهیم. یا می توانیم مسیر را در رجیستری ایجاد کنیم. حال چگونه فایل اجرایی یا همان BatchFile را ایجاد کنیم. مسیر زیر را برای باز کردن یک صفحه notepad طی کنید: Start \All Programs\Accessories\notepad از منوی فایل Save as را انتخاب و در مسیری دلخواه فایل را با پسوند bat ذخیره کنید. حال به سراغ فایلی که ایجاد کرده اید بروید. بر روی آن راست کلیک و Edit را برگزینید و دستورات مربوط به Subst را در آن تایپ و فایل را ذخیره کنید. حال نوبت به مسیردهی این فایل در رجیستری می رسد. به رجیستری وارد شوید( در فیلد Run کلمه Regedit را تایپ کنید). مسیر زیر را طی کنید: HKEY_CURRENT_USER\SOFTWARE\ Microsoft\Windows\Current Version\Run حال در بخش سمت راست محیط رجیستری راست کلیک کرده و پس از انتخاب گزینه New گزینه String Value را انتخاب سپس یک نام به ارزش ایجاد شده داده و با دابل کلیک بر روی آن در قسمت Value Date آدرس BatchFile را که در مرحله قبل ایجاد کرده اید، وارد کنید. بر روی ok کلیک و از رجیستری خارج شوید. اگر مراحل را درست طی کرده باشید این بار با ریستارت ویندوز درایوهای مجازی دوباره ایجاد خواهند شد. حال اگر پشیمان شدید و قصد حذف درایو مجازی را داشتید طبق زیر عمل کنید: پس از پاک کردن دستورات اضافه شده در فایل Autoexec.bat در سیستم عامل های Dos و Win9x و یا پاک کردن Shortcut یا خود فایل bat از استارتاپ سیستم و یا پاک کردن ارزش رشته در رجیستری برای سیتم عامل های xp و 2000 سیستم را یک بار دیگر ریستارت کنید. اگر هم بخواهید این کار را بدون ریستارت انجام دهید کافیست در Run یا Command Prompt دستور زیر را تایپ کنید: Subst NewDriveName: /d که NewDriveName نام درایوی که قصد پاک کردن آن را دارید می باشد.
نوشته شده توسط راسپینا در چهارشنبه سوم خرداد 1385 و ساعت 10:0
 تا بیست و پنج تیرماه هر روز یک مطلب راجع به ویژوال بیسیک
سلام
دوستان گرامی در نظر داریم امتحان ویژوال رو همگی با هم خیلی قدرتمند بدیم به همین دلیل تصمیم گرفتم هر روز یک مطلب راجع به ویژوال بنویسم:
فکر می کنم یه تعدادی از دوستان پروژه شون رو در مورد طراحی یه نرم افزار انیمشن سازی برداشتند فکر می کنم این سلسله مطلب بهشون کمک کنه:
موضوع : ساخت يک واسط direct3D DirectX8 ابزاري براي ساخت تصاوير ثابت و متحرک دو بعدي و سه بعدي مي باشد . براي کار با DirectX8 ابتدا بايستي آنرا روي سيستم خود نصب کنيد . سپس در محيط vb از منوي project گزينه References را انتخاب کنيد . در فرمي که ظاهر مي شود اطمينان حاصل کنيد که گزينه DirectX8 for VB type library فعال باشد . براي کار با DirectX8 بايستي از تعريف نمودن شي پايه DirectX8 شروع نمود :
Dim Dx as DirectX8
شي Direct3D8 براي کنترل اشيا سه بعدي بکار مي رود :
Dim D3D as Direct3D8
شي Direct3DDevice8 ، سخت افزار مربوط به رندر تصاوير را مشخص مي کند :
Dim D3DDevice as Direct3DDevice8
حال براي شروع کار با Direct3D ، تابع ( ) initialise را تعريف مي کنيم . اگر اينکار درست انجام شود تابع ، مقدار true را برمي گرداند :
public function initialise () as boolean Dim DispMode as D3DISPLAYMODE
شي D3DISPLAYMODE حالت نمايش را مشخص مي نمايد .
Dim D3Dwindow as D3DPRESENT_PARAMETERS
شي فوق مشخص مي کند که viewport شما چگونه باشد . حال شي اصلي DirectX8 را مي سازيم :
Set Dx=New DirectX8
سپس شي اصلي ساخت واسط سه بعدي را مي سازيم :
()set D3D.Dx.Direct3Dcreate
سپس حالت فعلي نمايش را با دستور زير استخراج مي کنيم :
D3D.getadapterdisplaymode D3DADAPTER_DEFAULT,dispmode
حال دو حالت براي کار با DirectX داريم : 1 - windowed mode 2 - fullscrean mode 1 - براي کار با حالت پنجره اي ابتدا اين موضوع را به DirectX اطلاع مي دهيم :
D3Dwindow.windowed=1
سپس نوع referesh تصوير را مشخص مي کنيم
D3Dwindow.swapeffect=D3DSWAPEFFECT_COPY_VSYNC
سپس بايستي فرمت بافر نگهدارنده تصاوير را مشخص کنيم :
D3Dwindow.backbufferformat=dispmode.format
2 - براي کار با حالت تمام صفحه ، ابتدا نوع refresh را مشخص کرده سپس تعداد بافر هاي تصوير و سرانجام نوع و سايز بافر را مشخص مي نمائيم :
D3Dwindow.swapeffect=D3DSWAPEFFECT_DISCARD D3Dwindow.backbuffercount=1 D3Dwindow.backbufferformat=dispmode.format D3Dwindow.backbufferheight=dispmode.height D3Dwindow.backbufferwidth=dispmode.width
سپس پنجره نمايش مشخص مي گردد :
D3Dwindow.hdevicewindow=frmMain.hwnd
@حال بايستی يک device ساخته شود که يا از طريق سخت افزار و يا نرم افزار تصاوير را رندر نمايد :
Set D3DDevice=D3Dcreatedevice(D3DADAPTER_DEFAULT ,D3DDEVTYPE_HAL, frmMain.hwnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING, D3Dwindow)x, end sub
درصورتي که کارت گرافيک شما امکانات رندر سخت افزاري تصاوير را ندارد از D3DDEVTYPE_REF بجاي D3DDEVTYPE_HAL استفاده کنيد . حال بايستي روتين render را بنويسيم . البته در اين درس تصويري براي رندر نداريم و تنها چگونگي نوشتن اين روتين را بيان خواهم کرد : ۱ - ابتدا بايستي device مربوط به رندر ، قبل از کشيدن تصوير در آن پاک شود :
D3DDevice.clear 0,byval 0,D3DCLEAR_TARGET,&H0,1#,0
عدد hex اي که در دستور فوق آمده رنگ زمينه صفحه را مشخص مي کند ۲ - سپس بايستي تصاوير مورد نظر را رندر کنيم . اينکار توسط دستورات زير انجام مي شود :
D3DDevice.beginscence all rendering calls go between these two lines ' D3DDEvice.endscence
3 - در پايان بايستي صفحه را update کنيد :
D3DDevice.present byval 0,byval 0,0,byval 0
ارادتمند شما مهرگان ایرانی
نوشته شده توسط دانشجویان رشته کامپیوتر در سه شنبه دوم خرداد 1385 و ساعت 21:6
 مخفي كردن درايو ها با استفاده از Disk Management
1- ابتدا در منوي run عبارت diskmgmt.msc را تايپ كنيد و بر روي دكمه ok كليك كنيد.
2- حال در پنجره باز شده (disk management) بر روي درايو مورد نظري كه مي خواهيد مخفي شود كليك راست كنيد و گزينه change drive letter and paths را انتخاب كنيد سپس در صفحه باز شده بر روي دكمه remove كليك كنيد . البته بديهي است كه با انجام اين كار به هيچ وجه اطلاعات شما بر روي آن درايو از بين نمي رود . بلكه فقط ايكون آن درايو در My Computer ديده نخواهد شد اما از طريق diskmgmt.msc شما همچنان مي توانيد درايو مذكور را مشاهده كنيد.
3- ضمنا براي برگشت به حالت اوليه يعني براي اينكه درايو خود را از حالت مخفي خارج كنيد دوباره در پنجره diskmgmt.msc مراحل قبل را طي ميكنيد و فقط به جاي remove دكمهadd را مي زنيد . در . در ضمن در نظر داشته باشيد نمي توان درايوي را كه ويندوز در آن نصب شده است را مخفي كرد.
نوشته شده توسط راسپینا در دوشنبه یکم خرداد 1385 و ساعت 18:23
 لطفا كامل خاموش كنيد!!!!
را به صورت كامل خاموش كنيم؟ windows xp چگونه
وارد شويد power Options برويد و سپس به قسمت control panel براي انجام اين كار به*
را فعال كنيد Enable Advanced Power support Management كليك كنيد و سپس APM بر روي *
كامپيوتر خود را خاموش كنيد در اين حالت كامپيوتر شما به صورت كامل خاموش ميشود*
نوشته شده توسط راسپینا در دوشنبه یکم خرداد 1385 و ساعت 11:8
|
|