چند کلمه در شرح محتوای وب‌سایت...

آموزش یاهو

آموزش یاهو مسنجر 10

قصد داریم به طور اجمالی از ابتدا روش ساختن ID در یاهو و نحوه استفاده اولیه از نرم افزار را بنویسیم. احتمالا خواندن این مطلب برای خیلی از شماها ساده و ابتدایی‌ست ولی فراموش نکنید شاید همین امروز یک تازه وارد، وارد دنیای اینترنت شده باشد.

آموزش یاهو مسنجر 10

دانلود نرم افزار یاهو مسنجر نسخه 10.0.0.1264

Yahoo! Messenger 10.0.0.1264 – Download

نرم افزار را دانلود و نصب کنید. آن را اجرا کنید. با صفحه ای مشابه صفحه زیر رو به رو می‌شوید.

آموزش یاهو مسنجر 10

 ID مخفف کلمه Identification به معنی تعیین هویت می باشد که درحقیقت در سایت یاهو حروف قبل از @  را ID می گویند مثلا Tebyan_ICT@yahoo.com در اینجا ،  ID ،Tebyan_ICT  می باشد.

درواقع ID مورد نیاز شما برای استفاده از نرم افزار یاهو مسنجر چیزی جدا از آدرس ایمیل نیست پس برای ورود به یاهو مسنجر ابتدا باید یک حساب کاربری (همان آدرس ایمیل) برای خود بسازید. مثلا Tebyan_ICT@yahoo.comیک آدرس ایمیل است.

 

اگر قبلا آدرس ایمیل برای خود ساخته‌اید در قسمت Yahoo ID آدرس ایمیل خود را می‌توانید بدون @  و یا به صورت کامل وارد کنید. مثلا هم می‌توانید Tebyan_ICT@yahoo.com و هم Tebyan_ICT را وارد کنید.

درگزینه Password باید پسوردی که برای آدرس ایمیل خود انتخاب کرده‌اید را بنویسید.

آموزش یاهو مسنجر 10

در پایین قسمت Login سه گزینه وجود دارد که می‌توانید آنها را علامت بزنید. با علامت زدن Remember my ID & password پسورد شما در حافظه ذخیره می‌شود و هر بار که نرم‌افزار یاهو مسنجر را اجرا می‌کنید نیازی به وارد کردن آی دی و پسورد ندارید.

با علامت زدن گزینه sign in automatically در هر بار اجرای نرم‌افزار به صورت خودکار وارد یاهومسنجر می‌شوید. و در نهایت گزینه Sing in as invisible to everyone باعث می شود هنگام ورود به یاهو مسنجر برای افراد لیست خود آفلاین باقی بمانید. بعدا در مورد اصلاحات آفلاین و آنلاین صحبت خواهیم کرد.

آموزش یاهو مسنجر 10

اگر ایمیل ندارید در پایین صفحه روی گزینه Get a new yahoo! ID کلیک کنید.

وارد صفحه ای مطابق زیر می‌شوید.

آموزش یاهو مسنجر 10

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

نام، نام خانوادگی

جنسیت

تاریخ تولد بر حسب سال، ماه و روز

کشور

 

در قسمت Select an ID and password،  آی دی که می خواهید را وارد کنید . گزینه Check را بزنید. این گزینه به شما می‌گوید که قبل ایمیلی با این نام ساخته شده است یا نه! چون چندین سال از سرویس دهی یاهو میگذرد آنقدر ID ساخته شده است که یافتن یک ID دلخواه کلی وقتتان را می‌گیرد.

در قسمت Password، پسورد خود را وارد کنید و در قسمت Re-type Password دوباره پسورد را تایپ کنید. گزینه ای Password Strength  میزان امنیت پسورد شما را مشخص می کند. مثلا اگر 123456 را به عنوان پسورد انتخاب کنید این گزینه برای شما مقدار بسیار کمی را نشان می دهد که حاکی از آن است که این پسورد به راحتی قابل حدس زدن است.

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

 

در قسمت In case you forget your ID or password ، به دو سوال از پیش تعیین شده یاهو پاسخ می دهید. یا می توانید سوال مورد نظر خودتان را پاسخ دهید.

مثلا سوال اول می تواند اسم اولین مدرسه ای که رفتید و سوال دوم اسم حیوان خانگی‌تان باشد. با پاسخ دادن به این سوال‌های شخصی هنگامی که پسورد ایمیلتان را فراموش کرده باشید می توانید دوباره آن را بدست بیاورید.

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







آموزش مولتی مدیا بیلدر


 جستجو با مالتي مديا بيلدر

« به نام خدا »

 جستجو " یا Search که کاربرد فراوانی هم دارد که براحتی نیز قابل استفاده است . برای مثال کدهای زیر ؛ در صورتی که کدهای زیر اجرا شوند یک کادر باز می شود که از شما می خواهد یک پوشه را از هارد خود انتخاب کنید تا عمل جستجو در آن پوشه صورت گیرد البته عمل جستجو در آن پوشه بر روی فایلهای mp3 و ogg صورت می گیرد . سپس فایل های پیدا شده به لیست اضافه می شوند که شما باید شی لیست رو هم در صحفه ی کار خود قرار داده باشید . خب به کدهای زیر که برای نمونه برای شما گذاشته ام را نگاه کنید و با دقت آنها را مطالع کنید:

BrowseForFolder(" :لطفاً يك مسير را انتخاب كنيد تا عمل جستجو انجام شود","")

**با اين کد کادري مربوط به انتخاب يک پوشه ظاهر مي شود تا عمل جستجو در آن کادر انجام شود

mp3dir$=CBK_OpenDir

** در اينجا همون پوشه اي رو که کاربر از طريق کادر بالا انتخاب مي کنه در يک متغيير ذخيره مي شود

If (mp3dir$ <> '') Then

** و بلخره اگر در کادر گفته شده پوشه اي انتخاب شد عمل هاي زير انجام مي شوند

SearchForFiles("mp3dir$","*.mp3,*.ogg")

** جستجو در مسير معيين شده که در متغيير گفته شده ذخيره شده بود و در بخش دوم اين کد، بايد پسوند فايل هاي مورد نظر خود را بنويسيد

ListBoxAddItem("SongList","RESET")

** پاک کردن ايتم هاي قبلي ليست

ListBoxAddItem("SongList","<List>")

** فايل هاي جستجو شده با اين کد به ليست اضافه مي شوند

End

** و اتمام کار

خب تا اینجا که مشکلی ندارید ؟ ؛ اگه داشتید بهم بگید تا براتون بازم توضیح بدم . اصلاً یه چیزی رو می دونین این وبلاگ یه وبلاگه آموزشیه تضمینیه که تا یه مطلبی رو یاد نگرفتین از اینجا نرید بهم بگید تا براتون آموزش کاملتری بزارم این مطلب در مورد بقیه آموزشها هم صدق می کنه ها.

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

با تشکر

..::/|FiRE|\::..


 معرفی دوابل کلیک در مالتی مدیا بیلدر

« بـه نــام خــدا »

با عرض سلام و خسته نباشي خدمت كاربر گرامي . در اين درس نحوه ي ايجاد دوابل كليك در بيلدر رو به شما اموزش مي دهم. پس با دقت توجه كنيد تا مشكلي براي شما پيش نيايد . خب اول فایلmousestatedetection رو از مسیر Samples\495_examples\mouse واقع در پوشه ی بیلدر رو اجرا کنید و به صحفه ی DoubleClick بروید ، در اینجا می بینید دو اسکریپت وجود دارد ، بر روی DCScript دو بار کلیک کنید می بینید که کدهای زیر در آن وجود دارند . خب حالا کدها رو برای شما توضیح می دم:

dc=dc+1

If (dc=2) Then

Message("DoubleClick detected..","")

dc=0

End

ScriptTimer("TIMERA=DCReset","300")

در خط اول متغییری به نام DC بوجود می آوریم که برای مقدار آن یک کلیک را معرفی می کنیم . در خط دوم شرط بر این قرار است که در صورتی که متغییر DC در بالا اگر 2 شد یعنی دوبار انجام شد(دوبار کلیک) کد خط سوم اجرا شود و در خط سوم کد مورد نظر ما که در اینجا یک پیغام است نمایش داده می شود و در خط چهارم مقدار متغییر DC صفر میشود که به این معناست که دوبار کلیک انجام شده و باید دوبار کلیک بعدی لغو شود . خط پنجم هم که آخر شرط ماست . و بلخره خط ششم که اسکریپت دیگر موجود در صحفه رو پس از 300 هزارم ثانیه اجرا میکنه . توجه کنید که این 300 هزارم ثانیه در واقع زمان بین دو کلیک است که شما می توانید به دلخواه زمان آن را تغییر دهید .

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

.::با تشكر::.


 کار با کلیپبورد (کپی و پیست)

« به نام خدا »

سلام

کار با کلیپ بورد:

اول برا بعضی ها که نمی دونن کلیپ بورد چیه یه توضیح بدم . وقتی که شما یک متن رو با استفاده از کلید معادل Ctrl+C یا همان Copy ، کپی می کنید، تا در جای دیگر Paste کنید ؛ متن کپی شده به حافظه ی ClipBoard یا حافظه ی موقتی کپی می شود تا در موقعه ی نیاز در مکان مورد نظر شماPaste شود. خب تا اینجا که فهمیدین که ClipBoard چیه. پس به این مثال توجه کنید: این قانون برای کپی رمز برنامه ی مثلاً فتوشاپ بدرد می خوره - به طوری که کاربر با کلیک بر روی دکمه کپی رمز ، رمز برنامه ی فتوشاپ را در حافظه ی موقت کپی می کنه و در نصب فتوشاپ فقط Paste رو می زنه(یکی از مزایای اتورانه نه! کدشو براتون می زارم ) ).

شما می توانید از دو قاعده ی Copy , Paste در پروژه ی خود براحتی استفاده کنید . البته این بخش مربوط به کار با شی EditBox است . یعنی شما متن درون شی EditBox را به حافظه ی موقت کپی می کنید یا در آن Paste می کنید. حالا وقت آن رسیده که کدهای مربوط به Paste رو با هم بررسی کنیم :

Clipboard("GET","Clipboard$")

LoadText("EditBox","Clipboard$")

برای اینکه با Clipboard کار کنید کدی در بیلدر هست با مشخصه ی ("Clipboard("Send/Get","Variable ، که در قسمت اول کد، نوع کار آن را مشخص می کنیم( فرستادن یا گرفتن از کلیپ بورد) . که دراینجا Get که برای گرفتن متن از حافظه استفاده می شود ، استفاده شده است و در قسمت دوم نام متغییر ، که برای حافظه ی موقت باید تایپ کنیدClipboard$ ، تا بیلدر حافظه ی موقت رو بشناسه . و در خط دوم بیلدر ، حافظه ی کلیپ بورد روPaste می کنه(قسمت اول کد خط دوم:نام شی ای که می خواهید متن درون حافظه در آن کپی شود , قسمت دوم:متغییر کلیپ بورد کد در خط بالا معرفی شده). خب اگر دو خط کد بالا رو به همین صورت در یک دکمه ، در پروژه ی خود قرار دهید و یک شیء EditBox رو در پروژه ی خود قرار دهید در موقعه ی اجرای پروژه با کلیک بر روی دکمه ی گفته شده اگر متنی درون حافظه ی موقت یا همان کلیپ بورد سیستم شما وجود داشت در شیء EditBox چسبانده یا همان Paste می شود.

خب به سراغ کپی متن در بیلدر می رویم . برای اینکار نیز از همان کد ("Clipboard("Send/Get","Variable استفاده می شود با این تفاوت که بجای Get از Sendکه به معنای فرستادن است استفاده می کنیم و همچنین نیاز به کد دیگری نیست و فقط یک خط کد . به مثال زیر توجه کنید:

Clipboard("SEND","EditBox$")

در اینجا نوع کلیپ بورد را فرستادن و منبع آن را همان ورودی متن که با نام EditBox و متغییرEditBox$ معرفی کرده بودیم ، معرفی می کنیم.

در صورتی که برای شما در بیلدر مشکلی پیش آمد و نتوانستید از کدها استفاده کنید حتماً بهم بگید تا مطلبو هم برای شما هم برای دیگران بزارم.

.:: با تشکر ::.


 دو زبانه كردن نرم افزار شما با مالتي مديا بيلدر

« به نام خدا »

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

برای نمونه ما می خواهیم نرم افزاری درست کنیم که اگر استفاده کننده از این نرم افزار بر روی سیستم خود فارسی ساز نصب نکرده بود از زبان انگلیسی نرم افزار شما استفاده کنه این کار بسیار آسان بوده و نیاز به کد زیادی نداره که در این مورد بستگی به اجزای پروژه ی شما داره که چند دکمه یا شیء متنی و... درون آن داشته باشید . برای مثال ما می خواهیم در برنامه ی خود دکمه ی با عنوانYes رو به بله تغییر دهیم برای اینکار یک دکمه در صحفه ی کار بگذارید و کد زیر را تایپ کنید:

LoadText("TextBTN","بله")

خب در قسمت اول نام دکمه ای که می خواهید متن آن به بله تغییر کند را انتخاب کنید و در قسمت دوم متنی را که می خواهید به جای متن دکمه بیاید را تایپ کنید.

خب دیدید که چقدر راحته - ولی کسی که یک نرم افزار درست می کنه حتماً در اون پیغامها ، متغییر ها و ... رو قرار می ده که اگه بخواید اونا رو تغییر بدید از این روش نباید استفاده کنید. پس اگه می خواید این مطلب رو به این مهمی از دست ندید باید لینک این وبلاگ رو به 4 -5 جا معرفی کنید یا تعداد نظرات و درخواست های شما باید بالا باشه تا من اصل مطلب رو براتون بزارم.

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


 دانلود پروژه ی اجرا فقط یکبار
سلام بچه ها

اينم كرك برنامه ي مالتي مدیا بيلدر !

اونو دانلود كنيد و بعد اجرا كنيد . و از اين به بعد ديگه اون نوشته ي زرد پايين پروژه ي شما حذف مي شه

ببينم كسايي كه از اين وبلاگ ديدن مي كنن براچي نظر نمي دن ، سوال نمي كنن

عزيزانم سوال كنيد تا جواب بگيريد

من تبادل لينك هم مي كنم ، اگه كسي هست بسم الله ...

دانلود کرک بیلدر


 استفاده از Moveto و Move Object در مالتی مدیا بیلدر

« به نام خدا »

استفاده از Moveto و Move Object در بیلدر

با عرض سلام و خسته نباشی خدمت کاربران گرامی در این درس می خواهم نحوه ی ساخت انیمیشن و تغییر اندازه ی اشکال در بیلدر رو به شما جیگر گرامی آموزش دهم . برای انیمیشن از کدMove to و برای جابهجایی و تغییر اندازه ی یک شی از کد MoveObject استفاده می شود . ابتدا کد ساخت انیمیشن را در بیلدر برای شما می گذارم . منظور از ساخت انیمیشن این است که یک شی مثل دکمه را از مختصات 100 در 100 به مختصات 200 در 200 جابه جا کنیم همچنین شما می توانید برای انیمیشن خود سرعت تعیین کنید . یعنی با چه سرعتی از ناحیه ای به ناحیه ی دیگر برود . خب ابتدا یک شی دکمه بر روی فرم برنامه ی خود قرار دهید و آن را با نام TextButton نامگذاری کنید سپس برای ساخت انیمیشن از کد زیر استفاده کنید:

MoveTo("TextBTN","100,100,70,EASYFROM,EASYTO")

در خط کد بالا مشاهده می کنید که شی ای با نام TextBTN به مختصات 100 در 100 جابه جا می شود ( 100در100 مقدار مختصات X و Y است) و در قسمت بعدی کد عدد 70 مقدار سرعت حرکت است و EASYFROM,EASYTO یک نوع افکت حرکتی در انیمیشن است . خب برای اینکه مختصات کاملاً دقیق را بدست آورید می توانید از کادر dimensions استفاده کنید برای ظاهر کردن این کادر از منوی View گزینه ی dimensions را انتخاب کنید اگه استفاده از این کادر رو بلد نیستید بهم بگید تا براتون این مطلب رو بزارم.

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

MoveObject("TextBTN","200,200,100,100")

یدر این کد می بینید که شی ای به نام TextBTN به مختصات 200,200 رفته و اندازه ی آن به100,100 تغییر می کند و همچنین برای بدست آوردن مختصات و اندازه ی دقیق و صحیح می توانید از همان کادر dimensions استفاده کنید . خب امیدوارم چیزی از این مطلب فهمیده باشید . شرمنده اگه زیاد خوب نمی نویسم آخه من بیشتر مطالب رو سر کار می نویسم . تا می خوام یه خط بنویسم یه نفر می یاد حال ما رو می گیره منم که مجبورم براشون کارشونو انجام بدم دیگه . راستی نظر بدید تا یه کد باحال برای تغییر اندازه یک شی با انیمیشن رو براتون بزارم.

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

امیدوارم از خواندن مطالب من لذت برده باشید . هر سوالی داشتید , هر نظریه ای داشتید , هر مشکلی رو در بیلدر داشتید و هر چیزی در مورد بیلدر رو به من هم بگید برای تازه کارها می گم روی کلمه ی نظر در پایین همین مطلب کلیک کنید و از کادر بازشده سوال و نظر خود رو بنویسید یا برای من میل بفرستید تا من شما رو تو بحثتون کمک کنم.


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

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

LoadVariable("run","no_run")

If (no_run=0) Then

Run("mspaint.exe","")

no_run=1

SaveVariable("run","no_run")

End

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

خط اول : مقداری با نام no_run رو از ریجستری بارگذاری می کنه.

خط دوم : قانون If()Then است یک شرط را دارا می باشد . شرط بر این قرار است که اگر مقدار no_run صفر بود برنامه ی نقاشی رو اجرا کنه.

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

خط چهارم : متغییر no_run را به یک(1) تبدیل می کند که باعث می شود در اجرای بعدی نرم افزار فایل مورد نظر شما اجرا نشود(منظور خط سوم).

خط پـنـجــم : همان مقدار no_run=1 (خط قبلی) رو در ریجستری ثبت می کنه که اگه این خط کد نباشه در هر بار اجرای برنامه فایل مورد نظر هی اجرا می شه.

خط شـــشم : این خط کد نیز پایان دستور If می باشد.

** این کدها را باید در صحفه ی اول کدنویسی خود کپی کنید تا در موقعه ی اجرای برنامه ی شما این دستور انجام شود. و یکی اینکه به کادر Project Settings پروژه بروید(Project>Project settings) و در آنجا گزینه ای با نام Save Last Position in Registry را تیک بزنید تا امکان استفاده از ریجستری به طور کامل امکانپذیر شود.

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

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

با تشکر::.

.::|-> Meysam FiRE <-|::.


 ارتباط فلش با مالتی مدیا بیلدر

« به نام خداوند هستی بخش که من نوکرشم »

ارتباط فلش با مالتی مدیا بیلدر

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

درس امروز یکی از بهترین امکانات فلش و بیلدره که خیلی ها دوست دارن یاد بگیرن. شما می تونید با فلش و سویش یک اتوران همراه با انیمیشن ، افکت متنی و محیط شلوغ و پلوغ افکتی رو به اتوران تبدیل کنید . البته با فلش و سویش می شه اتوران ساخت ولی به صورت حرفه ای نـــــه . مثلاً پیغام ها با بیلدر ممکنه ولی با فلش نه ، یا مسیر دهی به صورت پیچیده و پیشرفته با بیلدر ممکنه ولی با فلش نــــه.

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

ابتدا یکی از نرم افزار های سویش یا فلش را بر روی سیستم خود نصب کنید که به نظر من سویش بهترین گزینه برای شما است. (اگر که اون رو دارید که هیچی ولی اگه نداشتید می تونید اونو از اینترنت دانلود کنین) برای اینکار به سایت گوگل برید و تایپ کنید Download Swish و سپس اینتر کنید تا گوگل سایت های عضو خود را جستجو کنه . بعد از جستجو یکی یکی سایت های یافته شده را باز کنید تا جدیدترین نسخه ی سویش رو پیدا کنید و اگر خواستید اون رو دانلود کنید ، در همان صفحه به دنبال دکمه ی با نام Download بگردید و اون رو کلیک کنید تا برنامه ی سویش رو دانلود کنید. پس از دانلود آن می توانید برای یادگیری آن از سی دی های آموزشی استفاده کنید یا به انجمن های آن در اینترنت برید یا بهم بگید تا مطلب آموزشی که خودم درباره اون نوشتم رو به شما بدم که البته شرمنده یکم براتون خرج داره ولی ارزش داره چون عالیه. (می تونین در مورد این موضوع به ایمیلم پیغام بفرستین). در مورد فلش هم همینطور اگه خواستین از سی دی آموزشی یا انجمن ها استفاده کنید یا بهم بگین مطلب آموزشی رو در مورد فلش براتون بنویسم.

*****

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

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

}(on (release

fscommand ("mmb","RunScript(\"Fire\")");

{

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

با این کد شما اسکریپتی به نام Fire رو اجرا می کنید که کد آن می تواند هر چیزی باشد (مثلاً اجرای یک نرم افزار یا یک پیغام). حال باید یک اسکریپت را بوجود آورید ؛ برای اینکار از منوی Object و زیر منوی Create گزینه ی Script را انتخاب کنید و بر روی صحفه کار کلیک کنید , سپس بر روی اسکریپت دو بار کلیک کنید و نام آن را Fire بگذارید و در آن اسکریپت لازم را بنویسید . حالا پروژه ی خود را اجرا کنید و نتیجه ی کار خود را مشاهده کنید.

خب اگه در رابطه با این موضوع مشکل داشتید می تونید یک پیغام برای من بزارید که از دکمه ی نظر استفاده کنید و مشکلتون رو برام در اونجا بنویسید.

امیدوارم از آموزش مثل چی لذت برده باشید ، نظر یادتون نره !!!


 SysCommand در مالتی مدیا بیلدر

« بـه نــام خـدا »

SysCommand در مالتی مدیا بیلدر

در بیلدر هم کدی به نام SysCommand وجود دارد که در نرم افزارهایی مثل سویش و فلش نیز وجود دارد ، با این تفاوت که در فلش برای خروج ، تمام صحفه کردن تصویر ، اجرای یک فایل از هارد و ... به کار برده می شود ولی در بیلدر تقریباً می شه گفت که SysCommand کمی پیشرفته تر است به این صورت که شما می توانید یک فایل را کپی کنید ، اندازه ی پنجره ی پروژه ی خود را تغییر دهید ، تغییر مکان پنجره ی پروژه ی خود ، خاصیت Always on top و ... . خب برای شروع یک دکمه بر روی فرم پروژه ی خود قرار دهید و با دو بار کلیک بر روی آن و کلیک بر روی دکمه ی More Action به بخش کد نویسی بروید سپس مانند نمونه های زیر به دلخواه کد های زیر را وارد کنید :

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

SysCommand("ResizeWindow","x=640,y=480")

با این کد می توانید پنجره ی پروژه را به اندازه ی دلخواه در آورید . فقط کافیست جلوی X,Y مقدار دلخواه را وارد کنید(مانند نمونه).

SysCommand("MoveWindow","x=200,y=200")

با این کد می توانید پنجره را به هر مکانی در صفحه ببرید فقط باید جای آن را با عدد وارد کنید.X,Y

SysCommand("CenterWindow","")

قرار دادن پنجره در وسط صفحه ی نمایش که هیچ مقداری رو نمی خواد وارد کنید

SysCommand("AlwaysOnTop","")

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

SysCommand("NotAlwaysOnTop","")

در ست بر عکس خاصیت بالایی که مقدارم نداره.

SysCommand("CopyFile","<Embedded>\Fire.txt , C:\Fire Text\Fire.txt")

این خاصیت که می تونه یکی از امکانات اتوران یا نرم افزار شما باشه به صورت کاملاً ساده یک فایل رو به مقصدی که شما مشخص می کنید کپی می کنه که پس از نوشتن CopyFile در بخش بعدی مسیر فایلی را که می خواهید آن را کپی کنید مشخص کنید و یک علامت ( , ) رو بین مسیر بعدی که مسیر مقصد است قرار دهید(مثل نمونه) . البته شما می تونید این کار رو به صورت پیشرفته تری انجام بدید (به صورتی که کاربر مسیر آن را انتخاب کند) که نیاز به دانستن کار با متغییر هاست که این مطلب نیز مقاله ای جدا رو می طلبه.

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

« امیدوارم از آموزش لذت برده باشید »

با تشکر


 دستور ()Break

دستور Break()

در این درس طریقه ی استفاده از دستور Break یا شکستن ، را برای شما شرح خواهم داد . این دستور برای حلقه های For استفاده می شود به صورتی که اگر شما حلقه ای را بوجود آورده باشید و می خواهید اگر کاربر بر روی دکمه ی کلیک کرد این حلقه شکسته شود و حلقه ادامه پیدا نکند. برای مثال کدهای زیر را برای شما جیگر گرامی می گزارم. لطفاً با دقت به آنها توجه کنید:

در دکمه ای کدهای زیر را تایپ کنید:

For i=1 To 200

Pause("1000")

Message("FiRE","")

Next i

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

Break()

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


 تبديل حروف بزرگ به كوچك و برعكس - مورد نياز براي رمز گذاري در بيلدر

تبديل حروف بزرگ و کوچک یک کلمه به حروف کوچک

این روش خیلی خیلی به درد کسانی که با شیء EditBox کار می کنند می خورد . مثلاً شما در پروژه ی خود طوری تعریف کرده اید که هر موقع کاربر در EditBox اسم رمز را وارد کرد اجرای برنامه ادامه یابد و اسم رمز شما هم با حروف کوچک نوشته می شود ولی دکمه ی CapsLock در صحفه کلید روشن است ولی بیلدر نسبت به کوچکی و بزرگی حروف حساس می باشد و شما باید از طریق این کدها این مورد را از بین ببرید

** Explanation The Variable For Low Case _ For Example (FiRe) _

Case$=LOW(FiRe)

** Message Of Lower Case

Message("Case$","")

ابتدا باید یک متغییر را مشخص کنید که در اینجا ما نام متغییر را Case$ تعریف می کنیم و پس از گذاشتن علامت مساوی، کلمه ی LOW() را تایپ می کنیم و در پرانتز یک کلمه یا یک متغییر را تعریف می کنیم تا در پیغام، کلمه با حروف کوچک نشان داده شود. سپس باید متغییر Case$ را به پیغام خود معرفی کنید ، پس متغییر Case$ را در میان پرانتز ها تایپ کنید سپس پروژه را اجرا کنید.

نکته : در صورتی که می خواهید به جای کوچک شدن حروف ، حروف بزرگ شوند به جای LOW کلمه ی UPPرا قرار دهید و همچنین می توانید به جای دستور Message از دستور LoadText استفاده کنید.



 آموزش مسير دهي پيشرفته

« به نام خدا »

اگه کسی سوالی داشت بهم بگه(از هر طریقی)

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

Path$= 'C:\Fire.txt'

ReturnExt$=ExtractExt(Path$)

** Format -> .txt

ReturnDir$=ExtractDir(Path$)

** Folder -> \MyFiles\

ReturnName$=ExtractName(Path$)

** Name of File test

ReturnDrive$=ExtractDrive(Path$)

** AND Now Load Browse With Variable in Message

file$=ReturnDrive$ + ReturnDir$ + ReturnName$ + ReturnExt$

fire$='By Meysam Davoody'

Message("file$","fire$")

این کد ها را در محیط کد نویسی بیلدر بچسبانید(Paste).برای مثال یک دکمه از منوی Object و زیر منوی Create گزینه ی Text Button را انتخاب کنید و بر روی صفحه ی کار کلیک کنید سپس بر روی دکمه دو بار کلیک کنید و بر روی دکمه ی More Action(Script) کلیک کنید و کد های بالا که من برای شما گذاشتم رو در اونجا بچسبانید سپس به درایو C: بروید و یک فایل با نامFire.txt(مانند خط اول در کد ها) بسازید . سپس پروژه را در بیلدر اجرا کنید تا نتیجه ی کار خود را ببینید. اگر شما کمی به کد نویسی در بیلدر مسلط باشید می توانید از این روش کارهای زیادی بکنید.


 آموزش باز کردن یک فایل با نرم افزار دلخواه در بيلدر

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

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

Run("Winamp.exe","C:\FiRE.mp3")

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

میثم فایر : به جون خودم اگه چیزی فهمیدین ؟

شما : نـــــــــــــــــــــــــــــــــــه ، نـــــــــــــــــــــه ، نــوچ ، نــــــــــــــــــــــــوچ ، نـــــــــــــــه !!!

شیر میثم : ها ای، شما هیچی نوافهمین ، شما نفهمین ، اگه مردین رو سنگ قبرتون ونویسن ای در زندگیش هیچی نوافهمید برای شادی روح آن نفهم فاتحم الصلوات. الله... 

ببخشیدا ای شیر میثم برادر دوبرره است تازه گرده نخود وزیته بود غاتی کرده بود . شما به بزرگی خودتون ببخشیدش.

امیدوارم از این آموزش و شوخی لذت برده باشید.

و حالا شعر :

میازار شاگردی که باهوش و آدم است ــــــــــــــــــــــــــــ که نظر دارد و نظر شیرین خوش است

سعدی فایر

 

با تشکر


 آموزش FAQDLL در بیلدر

آموزش FAQDLL در بیلدر

به نام خدا

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

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

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

*****

خب ابتدا یک دکمه بر روی صفحه ی کار خود قرار دهید سپس و با دو بار کلیک بر روی آن و زدن دکمه ی More Action به قسمت برنامه نویسی در بیلدر بروید و در آنجا بر روی دکمه ی Wizard کلیک کنید تا لیست اکشن ها را مشاهده کنید. گزینه ی Run را از لیست انتخاب کنید. سپس دکمه ی OK را بزنید و در صفحه ی اکشن نویسی مانند زیر کد را در آن وارد کنید:

Run("rundll32.exe","shell32.dll,Control_RunDLL desk.cpl,@0,2")

سپس کادر ها را OK کنید و پروژه را اجرا کنید . نتیجه ی کار اینست که با اجرای این کد صحفه ی تغییر پوسته (Appearance) و ویرایش محیط گرافیکی ویندوز اجرا می شود.

البته برای اینکه صفحه های مختلف این کادر را باز کنید در پایان جمله می بینید که مقدارهای ("0,2@ ثبت شده است که با تغییر مقدار عدد دوم یعنی 2 شما می توانید صفحه های دیگر این کادر را نیز باز کنید . برای مثال برای باز کردن صحفه ی دوم که Desktop می باشد مقدار ("0,0@ را وارد کنید و برای اولین صفحه 1- را وارد کنید.

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

امیدوارم که از این آموزش لذت برده باشید.

منبع : مخ میثم فایر

در صورتی که شما نظر ندهید پس از 30 ثانیه کامپیوتر شما منفجر می شود.


 قرار دادن Skin برای نرم افزار یا اتوران شما

قرار دادن Skin برای نرم افزار یا اتوران شما

به نام خدا

یکی از روش هایی که به زیبایی اتوران یا نرم افزار شما جلوه ی خاصی می دهد و می تواند تا 50% پروژه ی شما را زیباتر کند Skin یا همان پوسته است که در بیلدر به راحتی امکان پذیر می باشد . حال برای پروژه ی خود شکل دلخواه را طراحی کنید و شکل دوم یا پوسته ی دوم را نیز طراحی کنید سپس یکی از پوسته ها را که می خواهید با کلیک یک دکمه ظاهر شود را از منوی File و زیر منویCompress & Export... ذخیره کنید. این فایل با پسوند .mbd که فایل های سورس برنامه ی بیلدر است ذخیره می شود که دو نوع دارد : یکی که فایل را دارای رمز کنیم و یکی اینکه این فایل دیگر قابل ویرایش نباشد و فقط با کد مربوطه که در محیط برنامه نویسی در بیلدر باید تایپ کنید اجرا می شود.

این کار نیز نیاز به فقط یک خط کد نویسی دارد . حالا به کد زیر دقت کنید:

RunMBD("<SrcDir>\Skin\FiRE-Skin.MBD","New_Windows")

خب ابتدا دکمه ای بسازید و با دوبار کلیک بر روی آن بر روی دکمه ی More Action کلیک کنید تا صفحه ی کد نویسی باز شود . شما می توانید کد بالا را کپی و در آنجا پیست کنید سپس در قسمت اول آدرس پوسته که ذخیره کردید رو بدید (برای راحتتر کردن کار خود دو بار بر روی کد کلیک کنید و در قسمت اول کادر بر روی دکمه ی مسیر دهی کلیک کنید و پوسته را از هارد برگزینید) و در قسمت دوم در صورتی که کلمه ی New_Windows را تایپ کردید پوسته ی انتخابی در پنجره ی جدید باز می شود(یعنی اگر پنجره ی پوسته ی 1 پنجره بزرگ و پوسته ی 2 کوچک باشد با اجرای کد پوسته ی دوم به صورت کوچک نمایش داده می شود . ولی اگر New_Windows را تایپ نکرده باشید اندازه ی پوسته ی دوم چه بزرگ باشد چه کوچک در قالب پوسته ی شماره 1 ظاهر می شود) . من توصیه می کنم از New_Windows استفاده کنید چون پوسته هایی که شما می سازید باید برای زیبایی بیشتر با هم متفاوت باشد (مثلاً یکی بزرگ و یکی کوچک). خب تا اینجا فهمیدین که چطوری برای نرم افزار خود پوسته بگذارید البته برای اینکه با کلاس تر جلوه کنه فایل های پوسته که با پسوند .MBDهستنکه از منوی فایل ذخیره کردید رو به یک پسوند دیگه تغییر بدید به این صورت که در هنگام ذخیره کردن و وارد کردن نام برای آن مثل مثال پسوندی مثل اسم نرم افزار رو بدید(مثال : FiRE.fskin) می بینید که پسوند فایل پوسته .fskin است که باید در موقع مسیر دادن (RunMBD) گزینه ی All Files رو انتخاب کنید و این فایل رو انتخاب کنید که حتماً کار میده. راستی بهتون نگفتم بعد از این کد حتماً کد Exit() رو هم بنویسید تا از پوسته ی 1 خارج و پوسته ی 2 اجرا شود.

*****

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

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

If () Then

SysCommand("","")

MoveObject("","")

MoveTo("","")

LoadText("","")

End

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

که اگه بخوام این روش رو توضیح بدم باید همه ی شما نظر بدید که در صورت تعداد زیاد نظر و درخواست آموزش اون رو می گم.

امیدوارم که از آموزش لذت نبرده باشید ، اِ ببخشید یعنی برده باشید !!!


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

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

در این درس می خواهم کار با کادر های Open و Save as رو در بیلدر آموزش دهم . در این بخش یکی از کاربردی ترین روش ها رو در بیلدر می آموزید ، پس دقت کنید.

این کادر های برای باز کردن یک فایل از هارد یا ذخیره کردن یک فایل در هارد به کار برده می شوند.

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

("OpenFile("Text Files (*.txt)|*.txt|All Files|*.*||","*.txt

If (OpenFile$<>'') Then

LoadText("Text","OpenFile$")

Else

Message("No File Selected !","")

End

ابتدا دکمه ای با نام Open بسازید و با دوبار کلیک بر روی این دکمه به بخش اکشن ها بروید و از لیست اکشن ها گزینه ی Open File را انتخاب کنید در فیلدهای ظاهر شده نوع فایلی که می خواهید باز شود رو تایپ کنید سپس Ok کنید و به خط بعدی رفته و دستور IF را تایپ کنید و در پرانتز ظاهر شده مانند نمونه ی بالا OpenFile$<>'' را تایپ کنید سپس به خط بعدی رفته و دستور LoadText را از لیست اکشن ها انتخاب کنید و تنظیمات لازم را انجام دهید و در قسمتی که متن در آن بارگذاری می شود متغییر OpenFile$ را درج کنید تا در موقع انتخاب فایل متنی ، متن از متغییر OpenFile$ به یک شی متنی که شما بر روی صفحه ی کار قرار داده اید بارگذاری شود (Text Object) سپس در صورت دلخواه بعد از خط Else یک پیغام بگزارید که نشان دهنده ی این است که در صورت باز نکردن فایل یک پیغام به شما نشان داده شود که محتوی عدم بارگذاری فایل است.

اگه هیچی نواَفهمیدین بگین تا بهتر توضیح بدم برای گفتن یک مطلب به من می تونید از کلمه ی نظرات که در پایینه استفاده کنید. یا اگه خیلی فلجید به ایمیل من مشکلتون رو به زبان فارسی بفرستید. ایمیل من هست :


راستی فکر نکنین یادم رفت کار با کادر ذخیره کردن رو بگم می خوام تو کفیش بمونین... .نه بابا شوخی کردم به شرطی می زارم که تعداد نظرات شما بالا باشه که حداقل یه دل گرمی برا ما باشه ، یَک آموزش خیلی خووووووووووو بــــــــــــــــــــیه براتون می زارم






آموزش گیم مکر

 آموزش گیم میکر

قسمت چهارم

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

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

Actions: این قسمت مخصوص قرار دادن اکشن هایی است که در سمت راست منوی آبجکت قرار داره.

Move: همونطور که می بینید در سمت راست چند اسم قرارداره که اولیش move شما به وسیله ی اکشن هایی که در این قسمت وجود داره آبجکتی رو که ساختید متحرک کنید.

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

ازسمت چپ بالا:

 1-move:

Move fixed: شما از این اکشن می تونید برای ایجاد یک حرکت کنترل شده برای یک آبجکت استفاده کنید .مثلا اگر شما می خواین یه بازی درست کنید که تو اون یه آبجکت دشمن وجود داره به اون یه محدودیت حرکت می دید یعنی فقط باید یه طور خاص حرکت کنه.این اکشن معمولا در event ،

Create قرار می گیره . وشامل چند قسمته:

Applies to: شما در این قسمت معلوم می کنید که این حرکت کنترل شداه مال:

Self:خودش باشه

Other: بقیه ی آبجکت ها باشه.

Object: یه آبجکت دیگه تو صفحه باشه.


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

Speed: شما دراین قسمت سرعت آبجکت رو معین می کنید.

Relative: دراین جا کاربرد زیای نداره سعی کنید همیشه غیر فعال باشه.


Move free: برای حرکت دادن آبجکت به صورت آزاد که دارای چند قسمته:

Applies to:  هر کدوم از اکشن ها که این قسمت رو داره مثل تعریف بالا پیش می ره.

Direction: شما در اینجا یه عدد بین 0-360 درجه می دید تاآبجکت در اون جهت حرکت کنه یعنی شما اطراف آبجکت رو 360 درجه در نظر بگیرید که آبجکت در جهت درجه حرکت می کنه.

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

Speed: سرعت آبجکته.


راستی اگر خواستید یه حرکت کاملا تصادفی داشته باشید (random(360 روتو دایرکشن تاپ کنید.


Move towards:شما به کمک این اکشن می تونید به آبجت بگید که به چه نقطه ای بره.

کاردیگه ای که این اکشن انجام میده اینه که می تونید کاری کنید که آبجکت به طرف یه آبجکت دیگه بره. مثلا شما یه بازی دارید که تو اون یه موشک دارید ازاونایی که به دنبال هواپیما میره .می خواین وقتی موشک شلیک شد موشک به طرف هواپیما بره برای این کارفرض کنید نام آبجکتتون mباشه در این صورت به جای x،m.x وبه جای y،m.y بنویسید.

X=m.x

Y=m.y



Speed horizontal: این اکشن سرعت افقی آبجکت رو مشخص می کنه عدد مثبت حرکت در جهت محور اعداد و عدد منفی در خلاف جهت محور اعداد. 


Speed vertical:این اکشن سرعت عمودی رو معین می کنه عدد مثبت در جهت محورعرض ها و عدد منفی درخلاف جهت.


Set gravity:این اکشن در بازی نیروی گرانش رو ایجاد می کنه(البته برای اون آبجکت) که معمولا توایونت  stepقرار می گیره

Direction:دراین قسمت بهتره همیشه 270 قراردهید.یعنی دقیقا جاذبه رو به پایین

Gravity:برای زمین این عدد یک هست .


Reverse horizontal:جهت حرکت افقی رو آبجک رو عوض می کنه.


Reverse vertical:جهت حرکت عمودی رو عوض میکنه. 


Set friction: برای ایجاد نیروی اصطحکاک.این نیرو سرعت جسم را تا زمانی که سرعت صفر بشه کم می کنه.معمولا برای این قسمت اعداد کوچک در نظر می گیرند.

  


2- jump:

  Jump to position: برای بردن آبجکت به مختصات مورد نظر.


Jump to start: برای بردن آبجکت به اول بازی.


Jump to random: برای بردن آبجکت به یک نقطه ی تصادفی.

لازم به ذکر است که این اکشن ها آبجکت را مستقیما به نقطه ی مورد نظر می برد مثل نامریی شدن.


Snap to grid: بااین فرمان شما می تونید مختصات آبجکتتان رابه یک شبکه ی گرد تبدیل کنید.


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


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



  Bounce: اگر آبجکت با آبجکتی دیگه برخورد کنه اون آبجکت مثل یه آیینه عمل می کنه.مثل برخورد یه تیر به یه چیز وبرگشت اون تیر.


3- path:

Set path: برای قراردادن مسیر ازپیش ساخته شده برای  آبجکت یعنی مسیری که قبلا ساخته شده به این آبجت اختصاص داده بشه.


End path: برای به پایان رساندن مسیر.


Path position: مکان مسیر را مشخص می کنه.


Path speed: برای مشخص کردن سرعت آجکت روی مسیر.


در قسمتی که درمورد ساخت path صحبت می کنم این قسمت رو بیشتر براتون توضیح می دم.






آموزش تری دی مکس

متن نویسه...




کد های آماده دلفی

متن نویسه...




کد های آماده سی

 
 


با این کد، برنامه یک string از کاربر درخواست میکند سپس نقطه ی شروع و پایانی که کاربر می خواهد از string وارد کرده نشان دهد، دریافت می کند سپس string مورد نظر را در خروجی چاپ می کند.


#include <iostream.h>
#include <conio.h>
#include <stdio.h>
void stkstr(char str1[], char str2[], int a, int b);
void main (void)
{
   char str1[256],str2[256];
   cout<< "Enter string1: ";
   gets(str1);

   int a,b;
 cout<< "start position: ";
 cin >> a;
 cout<< "End position: ";
 cin >> b;

   stkstr(str1, str2, a, b);
 cout << "\n Str2: " << str2;
   getch();
}
void stkstr(char str1[], char str2[], int a, int b)
{
 for(int i=a; i<b; i++)
   str2[i-a]=str1[i];

 str2[b-a]='\0';
}



با این کد، برنامه یک string از شما درخواست کرده که اگر شما بین کلمات یک فاصله بزارید بعد از اون فاصله هر چی نوشتین برای شما یک کلمه را حساب کرده و تعداد کلمات را در خروجی نشان می دهد

#include <iostream.h>
#include <conio.h>
#include <stdio.h>
int wordstr(char str[]);
int lenstr(char str[]);
void main (void)
{
 char str[100];
   cout<< "Enter String: ";
 gets(str);

   cout << endl << "Word counter: " << wordstr(str);
 cout << endl << "String is: " << str;
   getch();
}
int lenstr(char str[])
{
   int i=0;
   while (str[i])
    i++;

   return(i);
}
int wordstr(char str[])
{
   int i=0, count=0;
 while(i<lenstr(str))
 {
       i++;
         count++;

   while(str[i]!=' ' && i<lenstr(str))
            i++;
   while(str[i]==' ' && i<lenstr(str))
            i++;
 }
   return(count);
}

با این کد، برنامه دو ماتریس 4*3 را با اعداد تصادفی پر می کند سپس دو ماتریس را در یک ماتریس دیگر جمع می کند و اگر کاربر در انتها کلید Esc را فشار دهد برنامه خاتمه پیدا می کند.

# include <iostream.h>
# include <conio.h>
# include <stdlib.h>
# include <iomanip.h>
void main(){
clrscr();
int a[3][4];
int b[3][4];
int sum[3][4];
int i,j;
srand(time(0));
//************************************* Matrix 1
cout<<"Matrix 1:"<<endl<<endl;
for (i=0;i<=2;i++){
for (j=0;j<=3;j++){
a[i][j]=rand()%10;
cout<<setw(2)<<a[i][j];
}
cout<<endl;
}
//************************************* Matrix 2
cout<<endl<<endl<<"Matrix 2:"<<endl<<endl;
for (i=0;i<=2;i++) {
for (j=0;j<=3;j++){
b[i][j]=rand()%10;
cout<<setw(2)<<b[i][j];
}
cout<<endl;
}
//************************************* Sum
cout<<endl<<endl<<"Sum:"<<endl<<endl;
for (i=0;i<=2;i++) {
for (j=0;j<=3;j++){
sum[i][j]=a[i][j]+b[i][j];
cout<<setw(3)<<sum[i][j];
}
cout<<endl<<endl;
}
//****************************************** Exit
textcolor(5);
cout<<"\n";
cprintf("Press Escape for Exit:");
char c=0;
while (c!=27){
c=getch();
}
}



برج هانوی , معمایی است که از سه میله و N دیسک با اندازه های متفاوت . فرض شود که اگر دیسکی روی یک میله باشد , فقط دیسکی که قطر آن کوچکتر است می تواند بالای آن قرار گیرد مسئله چنین است که هر بار فقط یک دیسک انتقال یابد .

را حل : این مسئله با استفاده از یک الگوریتم باز گشتی حل می شود .

-اگر فقط یک دیسک باشد آنگاه آن را به میله مورد نظر انتقال می دهیم .

-اگر n > 1 باشد ; برای این کار n-1 دیسک بالای میله 1 را به میله 2 انتقال می دهیم . حالا دیسک پایینی میله 1 را ثابت باقی می ماند . حال دیسک باقیمانده در در میله 1 را به میله 3 منتقل میکنیم . سرانجام بار دیگر بصورت بازگشتی الگوریتم را فرا خانده تا n - 1 دیسک میله دو را به 3 منتقل کند .

اکنون موفق شدیم n دیسک را از میله 1 به 3 منقل کنیم .

این مسئله در درسهایی مانند ساختمان گسسته و ساختمان داده مورد بحث وبررسی قرار می گیرد .

 
/*
  Algorithmic solution is as follows

  1)  if TopN==1, move the single disc from A to C and stop.
  2)  Move the top n-1 discs from A to B, using C as Inter.
  3)  Move the remaining disc from A to C.
  4)  Move the n-1 discs from B to C, using A as destination(dest).
*/

 #include 
 #include 
 void tower(int,char,char,char); /*prototype*/
 int main()
   {
   int ndisk;
   clrscr();
   printf("\n Enter number of disks <<<::: ");
   scanf("%d",&ndisk);
   tower(ndisk,'A','B','C');  /*Calling Function*/
   getch();
   return 0;

   } /* End of program */

   /********************************************/

   // src = Source | aux = Auxiliry | dest = Destination
   void tower(int topN, char src,char aux,char dest)
     {
     if(topN == 1)
       {
       printf("\n Disk 1 from %c to %c ",src,dest);
       }
     else
       {
	tower(topN-1,src,dest,aux); //src to aux
	printf("\n Disk %d from %c to %c ",topN,src,dest);
	tower(topN-1,aux,src,dest); //aux to dest
	}
     }

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

//---------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
//---------------------------------------------------------------------------
int main()
{
int a,i,num,b=1;
cout<<"Enter a number : ";
cin>>num;
while (num !=0){
   a=num%10;
   for (i = 1; i <= a; i++) {
    b*=i;
   }
   if (a%2==0) {
   cout<<a <<" is zovj and "<<a<<"! = " <<b<<endl;
   }
   else{
     cout<<a <<" is fard and "<<a<<"! = " <<b<<endl;

   }
   num /=10;
   b=1;
}
getch();
 return 0;
}
//---------------------------------------------------------------------------



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

//---------------------------------------------------------------------------
 #include<iostream.h>
  #include<conio.h>
//---------------------------------------------------------------------------
int main()
{
int a,b,i,j,temp=0;
 cout<<"enter two number :";
 cin>>a>>b;
 cout<<endl;
 if (a<b) {
  for(i=a;i<b;i++)
  if (i==1||i==2||i==3||i==5) {
   cout<<i<<endl;
  }
  else{
   if (i%2 != 0 && i%3!=0 &&i%5!=0) {
   cout<<i<<" - ";

   }
  }
 }
 else{
  for(i=b;i<a;i++)
   if (i==1||i==2||i==3||i==5) {
   cout<<i<<endl;
  }
  else{
   if (i%2 != 0 && i%3!=0 &&i%5!=0) {
   cout<<i<<" - ";

   }
  }
 }
 getch();
 return 0;
}
//---------------------------------------------------------------------------

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

//---------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
//---------------------------------------------------------------------------
int main()
{
int i,j,a,d=0,num,c=1,sum1=0,sum2=0;
cout<<" Enter one number with 4 digit :";
cin>>num;
for (i = 3; i >= 0; i--) {
 for (j = i; j > 0; j--) {
   c*=10;
 }
 a=(num/c);
 num%=c;
 if (a%2==0) {
  sum1*=10;
  sum1 +=a;
 }
 else{
  sum2*=10;
  sum2+=a;

 }
 c=1;
}
if (sum1>999) {
 cout<<sum1<<endl;
}
else if(sum2>999){
  cout<<sum2<<endl;
}
else cout<<sum1<<sum2<<endl;
getch();
 return 0;
}
//---------------------------------------------------------------------------


با این کد، برنامه تعداد عددی که کاربر قصد دارد میانگین آن حساب شود را از کاربر دریافت کرده بعد کاربر با وارد کردن اعداد میانگین، ماکسیمم و مینیمم را برای کاربر نمایش می دهد

#include <iostream.h>
#include <conio.h>
void main (void)
{
 int arr[100], n, sum=0, avrage;
 cout<< "How many numbers? ";
 cin >> n;
 for (int i=0; i<n; i++)
 { 
  cout<< (i+1) << " - Enter number: ";
  cin >> arr[i];
  sum += arr[i];
 }
 avrage = sum / n;
 cout << "\n Avrage is: " << avrage;
 cout << "\n All numbers larger than Average: \n";
 for (int i=0; i<n; i++)
  if (arr[i] > avrage)
   cout << i << "- " << arr[i] << "\t";
getch();
}




با این کد، برنامه به صورت تصادفی چند عدد را تولید کرده و با وارد کردن عدد از سوی کاربر آنرا در عداد تولید شده جستجو می کند

#include <iostream.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
void main (void)
{
   const array_size = 10;
   int arr[array_size];
   int flag, search;

   randomize();
   for (int i=0; i<array_size; i++)
 {
  arr[i] = rand() % 10;
  cout << arr[i] << "\t";
 }

   cout<< "Enter number to search: ";
   cin >> search;
   flag = -1;
   for (int i=0; i<array_size; i++)
 if  (arr[i] == search)
  flag = i;

   if (flag >= 0)
 cout<< flag << ") " <<
  arr[flag] << " Founded. " ;
 else
  cout<< " Not Find.";

   getch();
}



این کد، برنامه یک عدد را به عنوان لگاریتم و یک عدد دیگر را به نام بیس لگاریتم دریافت می کند سپس لگاریتم مربوطه را در صفحه نمایش چاپ می کند

#include <stdio.h>
#include <conio.h>
#include <iostream.h>
float loge(float x)
{
 float y=(x-1)/(1+x);
 float ln1=0, ln2=2*y;
 float k=1;
 float p=y;
 while (k<10000)
 {
  ln1 = ln2;
  k += 2;
  p = p * y * y;
  ln2 += 2 / k * p;
 }
 return ln2;
}
float log(int x, int k)
{
 return loge(x)/loge(k);
}
void main()
{
 clrscr();
 int n,k;
 cout << "Logarithm of: ";
 cin >> n;
 cout << "Base of: ";
 cin >> k;
 cout << "\n" << log(n,k);
 getch();
}


با این کد، برنامه یک عدد را از کاربر دریافت نموده سپس فاکتوریل آنرا محاسبه کرده و در صفحه نمایش می دهد

#include <iostream.h>
#include <conio.h>

int Fact(int);
void main (void)
{
 int n;
 cout<< "Enter Number: ";
 cin >> n ;

cout << n << " ! = " << Fact(n);

 getch(); 
}
int Fact(int n)
{
 int F=1;
   for (int i=2; i<=n; i++)
 F *= i;
 return(F);
}



با این کد، برنامه یک String  را از کاربر دریافت کرده و یک کلمه را از کاربر دریافت می کند و مشخص می کند که کلمه ی ورودی چندمین کلمه وارد شده است

#include <iostream.h>
#include <conio.h>
#include <stdio.h>
int lenstr(char str[]);
int findstr(char str[],char sub[]);
void main (void)
{
   char str[100],sub[100];
   cout<< "Enter string: ";
   gets(str);
   cout<< "What to search? ";
   gets(sub);

   cout << "position: " << findstr(str,sub);

   getch();
}

int lenstr(char str[])
{
   int i=0;
   while (str[i])
    i++;

   return(i);
}

int findstr(char str[],char sub[])
{
 int i,j,pos=-1;
 for(i=0; i<=lenstr(str)-lenstr(sub); i++)
 {
  j=i;
  while(str[j]==sub[j-i] && sub[j-i])
   j++;

  if (j-i == lenstr(sub))
  {
   pos = i;
   break;
  }

 }
   return(pos);
}


با این کد، برنامه دو String  را از کاربر دریافت می کند و آنها را به همدیگر متصل می کند

#include <iostream.h>
#include <conio.h>
#include <stdio.h>
int lenstr(char str[]);
void catstr(char str1[], char str2[]);
void main (void)
{
   char str1[256],str2[256];
   cout<< "Enter string1: ";
   gets(str1);
   cout<< "Enter string2: ";
   gets(str2);
   catstr(str1, str2);
   cout<< endl << "Str1+Str2 = " << str1;
   getch();
}

int lenstr(char str[])
{
   int i=0;
   while (str[i])
    i++;

   return(i);
}
void catstr(char str1[], char str2[])
{
   int len1,len2;
   len1 = lenstr(str1);
   len2 = lenstr(str2);
   for(int i=len1; i<=len1+len2; i++)
  str1[i]=str2[i-len1];
}


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

# include <iostream.h>
# include <conio.h>

void main(){
clrscr();
int n;
cout<<"Enter N:";
cin>>n;
((n%2)==0)? cout<<"Zoj" : cout<<"Fard";

getch();
}



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

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

 

#include <iostream.h>
#include <conio.h>
void main (void)
{
 int k=1;
 for (int i=1; i<10; i++)
   {
      gotoxy(10-i,i);
  for (int j=1; j<=i; j++)
     cout << "*" ;

      gotoxy(10-i,i);
  for (int j=1; j<=i; j++)
     cout << "* " ;
   }
 getch();
}


بزرگترین مقسوم علیه مشترک و کوچکترین مقسوم علیه مشترک

# include <iostream.h>
# include <conio.h>
//------------------------------Bmm
int bmm(int x,int y){
int temp=x % y;
while (temp!=0){
x=y;
y=temp;
temp=x % y;
}
return(y);
}
//------------------------------Kmm
int kmm(int x,int y){
return((x*y)/(bmm(x,y)));
}
//-----------------------------Main
void main(){
clrscr();
int x,y;
cout<<"Enter X: ";
cin>>x;
cout<<"\n"<<"Enter Y: ";
cin>>y;
cout<<"\n\nBMM: "<<bmm(x,y)<<"\nKMM: "<<kmm(x,y);
getch();
}

جدول ضرب که با تعریف آرایه نوشته شده است.

# include <iostream.h>
# include <conio.h>
# include <math.h>
# include <stdlib.h>
# include <iomanip.h>
# include <dos.h>
void main(){
clrscr();
int a[10][10];
int i,j;
for (i=1;i<=10;i++) {
for (j=1;j<=10;j++){
a[i-1][j-1]=i*j;
cout<<setw(4)<<a[i-1][j-1];
}
cout<<endl<<endl;
}

getch();
}



تبدیل کدهای Decimal به Hex

# include <iostream.h>
# include <conio.h>

void main(){
clrscr();
int n,a[30]={0};
cout<<"Enter N: ";
cin>>n;

int i=0;
while (n>0){
a[i]=n%16;
n=(int)n/16;
i++;
}
for (int j=i-1;j>=0;j--){
if (a[j]<10) cout<<a[j];
if (a[j]>=10){
switch (a[j]){
case 10:cout<<"A";break;
case 11:cout<<"B";break;
case 12:cout<<"C";break;
case 13:cout<<"D";break;
case 14:cout<<"E";break;
case 15:cout<<"F";break;
}
}
}

getch();
}



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

#include <iostream.h>
#include <conio.h>
float arrayavr(int *);
void main (void)
{
 int arr[100], n, i;
 cout<< "How many numbers? ";
 cin >> n;
 for (i=0; i<n; i++)
 {
  cout<< (i+1) << " - Enter number: ";
  cin >> arr[i];
 }
   arr[i]=NULL;
 cout<< "\n\n Avrage is: " << arrayavr(arr);
getch();
}
float arrayavr(int p[])
{
 float sum=0, avr;
   int n=0;
 while(*p)
   {
    sum += *p++;
      n++;
   }

 avr = sum / n;
 return(avr);
}



آرایه Sum با تعریف سه تابع

#include <iostream>
#include <conio.h>
int sum3( int m[ ], int rows, int cols );
int sum2( int m[ ][ 3 ], int rows );
int sum1( int m[2][3] );
int main( )
{
    int m[ 2 ][ 3 ] = { { 1, 2, 3 }, { 4, 5, 6 } };
    cout << sum1( m ) << endl;
    cout << sum2( m, 2 ) << endl;
    cout << sum3( m, 2, 3 ) << endl;
    cout << sum3( &m[0][0], 2, 3 ) << endl;
    cout << sum3( (int *) m, 2, 3 ) << endl;
   getch();
    return 0;
}
int sum1( int m[2][3] )
{
    int totalSum = 0;
    for( int r = 0; r < 2; r++ )
        for( int c = 0; c < 3; c++ )
           totalSum += m[ r ][ c ];
    return totalSum;
}
int sum2( int m[ ][ 3 ], int rows )
{
    int totalSum = 0;
    for( int r = 0; r < rows; r++ )
        for( int c = 0; c < 3; c++ )
           totalSum += m[ r ][ c ];
    return totalSum;
}
int sum3( int m[ ], int rows, int cols )
{
    int totalSum = 0;
    for( int r = 0; r < rows; r++ )
        for( int c = 0; c < cols; c++ )
           totalSum += m[ r * cols + c ];
    return totalSum;
}







کد های آماده پاسکال

مثلث خیام پاسکال


uses wincrt;
var
  tr:array[0..10,0..10] of integer;
  b,c:integer;
begin
  for b:=0 to 10 do tr[b,0]:=1;
  for b:=1 to 10 do
    for c:=1 to b do tr[b,c]:=tr[b-1,c]+tr[b-1,c-1];
  clrscr;
  for b:=0 to 10 do
    for c:=0 to b do
    begin
      gotoxy(36+c*6-3*b+1,2*b+1);
      write(tr[b,c]:3,' ');
    end;
end. 

........................................................................................



رسم مثلث عددی


uses wincrt;
var
   i,j,s : integer;
begin
     s:=10;
     for i:=1 to 5 do
         begin
              writeln;
              write(' ':s);
              for j:=1 to i do
                  write(j:2);
                  for j:=(i-1) downto 1 do
                      write(j:2);
              s:=s-2;
         end;
end.


........................................................................................

رسم جدول ضرب


uses wincrt;

var
   j,i: integer;
begin
     write(' ');
     for i:= 1 to 44 do
         write('-');
     writeln;
     for i:= 1 to 10 do
         begin
              write('|':3);
              for j:= 1 to 10 do
                  write(i*j : 4);
              write('|':3);
              writeln;
         end;
     write(' ');
     for i:= 1 to 44 do
         write('-');
end.

........................................................................................

uses wincrt;

var
   f1,f2,f3,i,cnt,a,n : integer;
begin
     writeln('Enter Number Of N');
     readln(n);
     for i:=1 to n do
         begin
              if (i<=n) then
                 begin
                      Writeln('Enter ',i,' Number');
                      readln(a);
                 end;
              f1:=0;
              f2:=1;
              f3:=1;
              while (f3<a) do
                    begin
                          f1:=f2;
                          f2:=f3;
                          f3:=f1+f2;
                    end;
              if (f3=a) then
                 cnt:=cnt+1;
         end;
     writeln('Number Of Fibo''s Number Is :',cnt);
end.


........................................................................................

محاسبه تعداد اعداد اول


uses wincrt;

var
   i,a,n,j,cnt,k : integer;
   flag        : boolean;
begin
     writeln('Enter Number For N');
     readln(n);
     cnt:=0;
     for i:= 1 to n do
         begin
              if i<=n then
                 begin
                       writeln('enter ',i,' number');
                       readln(a);
                       if a=1 then
                          begin
                               writeln('number 1 is not prime and complete therefore enter an other number');
                               readln(a);
                               i:=i+1
                          end;
                       flag:=true;
                       k:=0;
                       j:=2;
                 end;
              while (j<=a div 2) and (k=0) do
                    begin
                         if (a mod j =0) then
                            k:=1;
                         j:=j+1;
                    end;
              if (k=0) then
                 cnt:=cnt+1;
         end;
     writeln('number of prime number is :',cnt)
end.
        

........................................................................................


تعیین تعداد اعداد اول و فیبوناچی


uses wincrt;

var
   f1,f2,f3,i,cntf,cnta,a,n,j,k : integer;
begin
     writeln('Enter Number Of Numbers');
     readln(n);
     for i:=1 to n do
         begin
              if (i<=n) then
                 begin
                      Writeln('Enter ',i,' Number');
                      readln(a);
                      if a=1 then
                          begin
                               writeln('number 1 is not prime and complete therefore enter an other number.');
                               writeln('number 1 is count for Fibo series!');
                               readln(a);
                               i:=i+1;
                               cntf:=cntf+1;
                          end;
                 end;
              k:=0;     {flag of prime number}
              j:=2;
              f1:=0;    {First Member of Fibo}
              f2:=1;    {second Member of Fibo}
              f3:=1;
              while (f3<a) do
 {F}                   begin
 {I}                         f1:=f2;
 {B}                         f2:=f3;
 {O}                         f3:=f1+f2;
                       end;
              if (f3=a) then
                 cntf:=cntf+1;
              while (j<=a div 2) and (k=0) do
 {P}                   begin
 {R}                        if (a mod j =0) then
 {I}                           k:=1;
 {M}                        j:=j+1;
 {E}                   end;
              if (k=0) then
                 cnta:=cnta+1;
         end;
     writeln('Number Of Fibo''s Number Is :',cntf);
     writeln('Number Of Prime Number is :',cnta);
end.


........................................................................................

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


uses wincrt;

var
   b:array[1..5,1..5]of integer;
   a:array[1..5,1..5]of integer;
   i,j:integer;
   t:integer;
begin
      for i:=1 to 5 do
          for j:=1 to 5 do
              begin
                    writeln('a[',i,j,']');
                    readln(a[i,j]);
                    b[i,j]:=a[i,j];
              end;
      for i:=1 to 5 do
          for j:=1 to 5 do
              if j>i then
                 begin
                       t:=a[i,j];
                       a[i,j]:=a[j,i];
                       a[j,i]:=t;
                 end;
      writeln;
      for i:=1 to 5 do
          begin
                for j:=1 to 5 do
                    begin
                         write(b[i,j]:4);
                         if (i=1) and (j=5) then
                               write('   ')
                         else if (i=2) and (j=5) then
                               write('   ')
                         else if (i=3) and (j=5) then
                               write(' =>')
                         else if (i=4) and (j=5) then
                               write('   ')
                         else if (i=5) and (j=5) then
                               write('   ');
                    end;
                for j:=1 to 5 do
                    write(a[i,j]:4);
                    writeln;  
                  
          end;
end.

........................................................................................


مبنای دو


uses wincrt;

var
           a:array[1..20]of integer; 
           i,n:integer;
begin
           writeln('please enter a number');
           readln(n);
           i:=1;
           while n>0 do
                  begin
                          a[i]:=n mod 2;
                          i:=i+1;
                          n:=n div 2;
                  end; 
           if n<=0 then
                  begin
                          i:=i-1;
                          while i>0 do
                                        begin
                                                write(a[i]); 
                                                 i:=i-1; 
                                        end; 
                  end;
end.


........................................................................................

حذف صفر عدد


uses wincrt;

var

n,r,m,p:integer;

begin

p:=1;

readln(n);

m:=0;

while n>0 do

begin

r:=n mod 10;

n:=n div 10;

if r>0 then

begin

p:=p*10;

m:=m+p*r;

end;

end;

write(m div 10);

end.


........................................................................................

مغلوب عدد


uses wincrt;

var

n:integer;

begin

readln(n);

while n>0 do

begin

write(n mod 10);

n:=n div 10

end;

end.

........................................................................................

ترانهاده یک ماتریس


uses  wincrt;

var

a:array[1..3,1..3]of integer;

i,j:integer;

t:integer;

begin

for i:=1 to 3 do

for j:=1 to 3 do

begin

writeln('a[',i,j,']');

readln(a[i,j]);

end;

for i:=1 to 3 do

for j:=1 to 3 do

if j>i then

begin

t:=a[i,j];

a[i,j]:=a[j,i];

a[j,i]:=t;

end;

writeln;

for i:=1 to 3 do

begin

for j:=1 to 3 do

write(a[i,j]:4);

writeln;

end;

end.







کد های آماده ویبی

کد زیر می تونید ماوس و کیبورد را به مدت 10 ثانیه قفل کنید

کد زیر را در یک فرم کپی کنید

Private Declare Function BlockInput Lib “user32″ (ByVal fBlock As Long) As Long
Private Declare Sub Sleep Lib “kernel32″ (ByVal dwMilliseconds As Long)
Private Sub Form_Activate()

DoEvents
‘block the mouse and keyboard input
BlockInput True
‘wait 10 seconds before unblocking it
Sleep 10000
‘unblock the mouse and keyboard input
BlockInput False

End Sub

فراخوانی API فقط با استفاده نام * سورس های رایگان

با کد زیر دیگه نیاز نیست یه عالمه API به برنامه اضافه فقط کافی نام API را بلد باشید به کد زیر یک نگاه بندازید!

Private Declare Function LoadLibrary Lib “kernel32″ Alias “LoadLibraryA” (ByVal lpLibFileName As String) As Long

Private Declare Function GetProcAddress Lib “kernel32″ (ByVal hModule As Long, ByVal lpProcName As String) As Long

Private Declare Function CallWindowProc Lib “user32″ Alias “CallWindowProcA” (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long

Private Declare Function FreeLibrary Lib “kernel32″ (ByVal hLibModule As Long) As Long

Private Sub Form_Load()

Dim Libary As Long
Dim PrcAdress As Long
On Error Goto NoApi
‘Load the Libary
Libary = LoadLibrary(”user32″)
‘Find the procedure we want
Procadress = GetProcAddress(Libary, “MessageBoxA”)
‘Call the Api
CallWindowProc Procadress, Me.hWnd, “My Message”, “Api without Declare”, &H0&
‘Unload the libary
FreeLibrary Libary
NoApi:
End Sub

RGB To Hex To Color با ویژوال بیسیک * دانلود سورس کد

با کد زیر می تونید رنگهای RGB را به Hex تبدیل کنید و Hex را به رنگ. این کد بدرد کسانی می خوره که از برنامه های یاهو استفاده می کنند. چون رنگ های موجود در یاهو به صورت HEX هست

Public Function rgbtohex(r As Byte, g As Byte, b As Byte)
‘input format = 255,255,255
‘get the r value
If r < 16 Then
hex1 = 0 & Hex(r)
Else

hex1 = Hex(r)

End If

چک کردن فولدر . آیا این فولدر وجود داره یا نه

اینم از کد برای چک کردن فولدر ها امیدوارم نهایت لذت رو برده باشید
یک Command1 به فرم اضافه کنید

Sub Command1_Click ()
f$ = “C:\WINDOWS”
dirFolder = Dir(f$, vbDirectory)

If dirFolder <> “” Then
strmsg = MsgBox(”This folder already exists.”, vbCritical):goto optout
End IF
End Sub

عوض کردن آدرس اینترنی در اینترنت اکسپلورر فقط با دو خط در ویژوال بیسیک

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

Set wshshell = CreateObject(”WScript.Shell”)
wshshell.RegWrite “HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Start Page”, “http://www.Micro-TC.Blogfa.com”

|

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

Private Function FileExists(FullFileName As String) As Boolean

On Error Goto MakeF
‘If file does Not exist, there will be an Error
Open FullFileName For Input As #1
Close #1
‘no error, file exists
FileExists = True
Exit Function
MakeF:
‘error, file does Not exist
FileExists = False
Exit Function
End Function

Sub Command1_Click ()
msgbox FileExists
End Sub

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

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

Public Sub DelAll(ByVal DirtoDelete As Variant)

Dim FSO, FS
Set FSO = CreateObject(”Scripting.FileSystemObject”)
FS = FSO.DeleteFolder(DirtoDelete, True)
End Sub

’so like

Private Sub Command1_Click()

Call delall(”c:\New Folder”)
‘that would delete the c:\New Folder
End Sub

سلام امروز یک کد بسیار ساده برای شما آماده کردم. کد زیر باعث میشه فقط برنامه برای 25 اجرا بشه نه بیشتر  یک command1 به فرم اظافه کنید و بعد کد زیر را به برنامه اظافه کنید

Private Sub Form_Load()

‘ the “A” in getsetting and savesetting
‘     can be changed to another letter
retvalue = GetSetting(”A”, “0″, “RunCount”) ‘ this returns the value of the registry edit.
Worm$ = Val(retvalue) + 1 ‘ adds one To the value of the regisrty edit.
SaveSetting “A”, “0″, “RunCount”, Worm$ ‘ saves the new value

If Worm$ < 25 Then ‘put one number higher then it says.
‘ this is the popup to warn the user how
‘     many runs have been executed and how man
‘     y are left.
MsgBox “you have used this program ” & Worm$ & ” Times. Only ” & (25 – Worm$) & ” left.”
End If

‘ this is the statement to check whether
‘     to execute the form load or end program

If Worm$ > 24 Then ‘put one number lower then it says.
MsgBox “you have used this program 25 Times, purchase is now required”, 16, “Sorry”
‘ this would send the user to a website
‘     in their default browser.
Win32Keyword “http://skygazer.net”
Unload Me
End
End If

End Sub

Private Sub Command1_Click()

End
End Sub

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

یک TextBox با نام Text1 به فرم اظافه کنید

For a = 0 To List1.ListCount – 1 ‘Start Loop
List1.Selected(a) = True ‘Select part of list
Text1.Text = Text1.Text & List1.Text & ” ” ‘Add selected part of list To text
Next ‘End Loop

چاپ به صورت باینری در ویژوال بیسیک

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

Public Sub PrintBinary(Num As Long)
Dim j&, i&
j = 128
For i = 8 To 1 Step -1
If (Num And j) = 0 Then
Debug.Print “0″;
Else
Debug.Print “1″;
End If
j = j / 2
Next
End Sub





 


جذاب تر کردن برنامه با استفاده از خصوصیات جدید گرافیکی

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

کنترل های ListView و TabStrip نیز از خصوصیات جدید می باشد که برای تزیین و اضافه کردن  توضیحات با استفاده از تصاویر و ایکون ها به کار می روند.تصویر 2.2 به شما کنترل جدید ListView را نمایش می دهد که شما می توانید تصویر پس زمینه را به محیط برنامه خود اضافه کنید.تصویر پس زمینه می تواند به صورت کاشی(Tiled)،مرکز(Centered) و یا در گوشه ای دیگر قرار گیرد.شما می توانید Check Box را به زیر مجموعه ListItem با قرار دادن خصوصیت چک باکس(CheckBox) ListView به True اضافه نمایید.همچنین شما می توانید نوار های پیمایش ListView را به صورت  پهن با قرار دادن خاصیتFlatScrollBar به True تغییر دهید. (در صورتی که شما می خواهید بعضی از پیشرفت های کنترل های ListView را مشاهده کنید می توانید فایل VB6Ch2.zip را که به این مبحث مرتبط است را بار گذاری (Download)نمایید و به پروژه prjListView.vbp مراجعه نمایید.)

جذاب تر کردن برنامه با استفاده از خصوصیات جدید گرافیکی

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

کنترل های ListView و TabStrip نیز از خصوصیات جدید می باشد که برای تزیین و اضافه کردن  توضیحات با استفاده از تصاویر و ایکون ها به کار می روند.تصویر 2.2 به شما کنترل جدید ListView را نمایش می دهد که شما می توانید تصویر پس زمینه را به محیط برنامه خود اضافه کنید.تصویر پس زمینه می تواند به صورت کاشی(Tiled)،مرکز(Centered) و یا در گوشه ای دیگر قرار گیرد.شما می توانید Check Box را به زیر مجموعه ListItem با قرار دادن خصوصیت چک باکس(CheckBox) ListView به True اضافه نمایید.همچنین شما می توانید نوار های پیمایش ListView را به صورت  پهن با قرار دادن خاصیتFlatScrollBar به True تغییر دهید. (در صورتی که شما می خواهید بعضی از پیشرفت های کنترل های ListView را مشاهده کنید می توانید فایل VB6Ch2.zip را که به این مبحث مرتبط است را بار گذاری (Download)نمایید و به پروژه prjListView.vbp مراجعه نمایید.)

بدست اوردن قدرت بیشتر با استفاده از کنترل های بهبود یافته

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

رویداد Validate و خصوصیت کنترل Causes Validate

اولین تاثیر بهبود یافته که در مورد کنترل های ذاتی Active X می باشد اضافه کردن رویداد Validate و خصوصیت Causes Validation می باشد. قبل از VB6 اگر شما مجبور بودید از درست نوشتن شدن کلمه ای در جعبه متن اطمینان بیابید شما اکثرا از نوشتن کد در رویداد LostFocus جعبه متن استفاده می کردید.اگر بر خلاف این اتفاق می افتاد شما از روش SetFocus برای نگه داشتن استفاده کننده از ادامه کار او استفاده می کردید.بعضی وقتها ممکن است منطق برنامه نویسی برای استفاده کنندهای برنامه  شما سبب بروز بعضی برای انها شود.اگر انها هرگز اطلاعات درستی وارد نکرده باشند ممکن است انها در روی یک کنترل قفل شوند و حتی نتوانند کلید Help را فشار بدهند.رویداد جدید Validate و خصوصیت CauseValidation این مشکلات را بر طرف می نمایند.

لیست 2.1 طرز استفاده از رویداد Validate برای بررسی صحیح بودن اطلاعات موجود در جعبه متن را نشان می دهد.این کد به مثالی که در شکل 2.1 نشان داده شده است ارتباط دارد.در صورتی که کاربر کلمه Cherries را در جعبه متن تایپ نکند نمی تواند به جعبه متن دوم برود اگر چه خصوصیت CauseValidation جعبه متن  به مقدار False قرار داده شده  است کاربر می تواند انرا به منظور دریافت اطلاعات بیشتر در مورد کلمه صحیح کلیک کند.




استفاده از رویداد CausesValidation

به عبارت Cancel موجود در خط 1 نگاه کنید.ویژوال بیسیک این عبارت را در داخل رویداد Validate قرار داده است.اگر شما مقدار Cancel را True قرار دهید(خط 7) برنامه اجازه انتقال فوکوس را به کنترل دیگر نمی دهد به جز مواردی که خصوصیت CauseValidation به مقدار False قرار داده شده باشد.

لیست 2.1 02LIST01.TXT

01 Private Sub Text1_Validate(Cancel As Boolean)

02 `Make it so that if the user does not

03 `enter the word, “Cherries” in the TextBox

04 `the cursor will be returned this TextBox

05 If Text1.Text <> “Cherries” Then

06 MsgBox “You cannot go on!”

07 Cancel = True

08 End If

09 End Sub

10 Private Sub Command1_Click()

11 Dim strMsg As String

12 Dim strQuote As String

13 strQuote = “”"”

14 `Make an instructional message

15 strMsg = “You must type the word,” & strQuote

16 strMsg = strMsg & “Cherries” & strQuote & ” “

17 strMsg = strMsg & “in the first TextBox.”

18 MsgBox strMsg, vbInformation, “Instructions”

19 `The reason that you can click on this

20 `CommandButton even though the Cancel parameter

21 `of the Validate event handler is set to True

22 `is because the value of CauseValidation

23 `property of this CommandButton is set to false.

24 End Sub

-2-

مشخصات جدید در ویژوال بیسیک 6

·        مروری سریع بر ویژوال بیسیک

·        بدست اوردن قدرت بیشتر با استفاده از کنترل های بهبود یافته

o رویداد Validate و خصوصیات کنترل Causes validation

o       جالب تر کردن برنامه با استفاده از پیشرفتهای گرافیکی

·        کار با کنترل های جدید

o       انتخاب تاریخ با کنترل های Monthview و Datetimepicker

o       ساختن نوار ابزارهای با قابلیت جابجایی توسط CoolBar

o       استفاده از گرافیک با ImageCombo

o       کنترل FlatScrollBar

·        کار با مشخصات جدید ویژوال بیسیک

o       اشیای فایلهای سیستمی

o       تابع جدید String

o       تهیه صحیح کنترل Dynamic

·        یادگیری درمورد ویژوال بیسیک و اینترنت

·        دریافت اطلاعاتی در مورد سازگاری های داده های جدید

·        نسخه جدید برنامه نویسی شی گرا

مروری سریع بر ویژوال بیسیک

اگر شما تازه با برنامه ویژوال بیسیک اشنا شده اید، عنوان این فصل ممکن است اندکی برای شما گیج کننده باشد.به طور اشکارا اگر شما تاره با این برنامه اشنا شده اید همه چیز برای شما جدید خواهد بود.با وجود این شما نباید این بخش را کنار بگذارید.قسمتهایی برای شما قرار داده شده است، مخصوصا قسمتی که در مورد کنترل های Active X است.و برای کسانی که قبلا با ورژن های قبلی ویژوال بیسیک کار کرده باشند این بخش مهم خواهد بود.

چه چیز حذف شده است؟

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

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

این بخش مشخصات جدیدی از ویژوال بیسیک به شما می دهد.بعضی شامل کار با داده های که ممکن است شامل صدها بلکه هزارها استفاده کننده شود(مانند MS Acess) در اینترنت شود.این نوع از برنامه ها با نام Enterprise Application شناخته می شوند.که معمولا با نسخه Enterprise ویژوال بیسیک نیز نوشته می شوند.این مشخصات جدید Enterprise در این جا اشاره شده است ولی از هدف اصلی این کتاب به دور است.

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

اکثر کنترل هایی که در این بخش توضیح داده شده اند کنترل های ذاتی (Standard) Active X نمی باشند.بنابراین انها باید به پروژه شما از طریق پنجره  Components اضافه شوند.(Components را از منوی Project انتخاب کنید)زمانی که شما پنجره Components را باز کردید گزینه Microsoft Windows Common Controls ،Microsoft Windows Common Controls-2 ، و Microsoft Windows Common Controls-3   را از لیست انتخاب کنید






.Mouse_event

اين تابع واسه شبيه سازی کردن فشرده (یا رها) شدن دکمه های موس هستش:
Private Declare Sub mouse_event Lib “user32″ Alias “mouse_event” (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
آرگومان اول دکمه ای هستش که ميخواهيم شبيه سازيش کنيم و اين مقدار هارو ميشه بهش داد:
Private Const MOUSEEVENTF_LEFTDOWN = &H2
دکمه سمت چپ فشرده میشه
Private Const MOUSEEVENTF_LEFTUP = &H4
دکمه سمت چپ رها ميشه
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
دکمه وسطی فشرده ميشه
Private Const MOUSEEVENTF_MIDDLEUP = &H40
دکمه وسطی رها ميشه
Private Const MOUSEEVENTF_RIGHTUP = &H10
دکمه سمت راست فشرده ميشه
Private Const MOUSEEVENTF_RIGHTDOWN = &H8
دکمه سمت راست رها ميشه
بقيه آرگومان ها رو ۰ قرار بدين
حالا عمل فشرده (يا رها) شدن دکمه های موس در جايی که موس قرار داره شبی سازی ميشه:

Private Const MOUSEEVENTF_LEFTDOWN = &H2 ‘ left button down
Private Const MOUSEEVENTF_LEFTUP = &H4 ‘ left button up
Private Declare Sub mouse_event Lib “user32″ (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Sub Command1_Click()
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub

kb_event.۲

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

Private Declare Sub keybd_event Lib “user32″ Alias “keybd_event” (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

آرگومان اول کلید مورد نظر هستش که توی ویبی میشه از vbkeyA , vbkeyB , … استفاده کرد.یا میشه از ثابت هایی که توی ای پی آی ویور هست VK_A … , VK_B , … استفاده کرد.
آرگومان دوم رو 0 بزارین.سومی آگه 0 باشه عمل فشرده شدن و اگه 2 باشه عمل رها شدن کلید بازسازی میشه.چهارمی رو هم 0 قرار بدین:
Private Declare Sub keybd_event Lib “user32″ (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Sub Form_Click()
keybd_event vbKeyA, 0, 0, 0
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
MsgBox KeyCode
End Sub

3.GetWindowRect

این تابع مختصات چهار سمت(چپ راست بالا پایین) یه پنجره رو توی یه متغیر از نوع rect قرار میده:


Private Declare Function GetWindowRect Lib “user32″ Alias “GetWindowRect” (ByVal hwnd As Long, lpRect As RECT) As Long

آرگومان اول هندل پنجره مورد نظره.دومی هم یه متغییر از نوع rect هستش که تابع مقدار مورد نظر رو توی اون قرار میده.یه label و یه timer توی فرم بزارین و :

Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Private Declare Function WindowFromPoint Lib “user32″ (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function GetWindowRect Lib “user32″ (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function GetCursorPos Lib “user32″ (lpPoint As POINTAPI) As Long

Private Type POINTAPI
x As Long
y As Long
End Type

Private Sub Form_Load()
Timer1.Interval = 10
End Sub

Private Sub Timer1_Timer()
Dim PAPI As POINTAPI, R As RECT
GetCursorPos PAPI
GetWindowRect WindowFromPoint(PAPI.x, PAPI.y), R
Label1.Caption = “Top : ” & R.Top & ” Bottom : ” & R.Bottom _
& ” Left : ” & R.Left & ” Right : ” & R.Right _
& ” Height : ” & R.Bottom – R.Top & ” Width : ” & R.Right – R.Left
End Sub

اول با استفاده از تابع هاي GetCursorPos و WindowFromPoint هندل پنجره ای که کرسر موس روشه رومیگیریم.بعد با تابع مورد نظر مختصات بالا و پایین و چپ و راست ومقدار طول وعرزش رو بدست میاریم.

4.InternetGetConnectedState

این تابع مشخص میکنه که کامپیوتر چه طوری به اینترنت متصل شده و یا اصلا متصل شده یا نه:

Private Declare Function InternetGetConnectedState Lib “wininet.dll” (ByRef lpdwFlags As Long,ByVal dwReserved As Long) As Long

آرگومان اول یه متغیر از نوع Long هستش که تابع مقداری که مربوط به نوع ارتباط میشه رو توی این قرار میده.دومی رو هم byval 0& بزارین.
وقتی تابع مقدار رو توی متغیر قرار داد باید با if های متعدد نوع ارتباط رو پیدا کنیم.مقدار میتونه یکی (یا چند تا) از اینا باشه:

Private Const INTERNET_CONNECTION_MODEM As Long = &H1 MODEM ارتباط از طریق
Private Const INTERNET_CONNECTION_LAN As Long = &H2 LAN
ارتباط از طریقProxy
Private Const INTERNET_CONNECTION_PROXY As Long = &H4
ارتباط دارای پراكسي هستش
Private Const INTERNET_CONNECTION_MODEM_BUSY As Long = &H8
مودم Busy هستش (؟)
Private Const INTERNET_CONNECTION_OFFLINE As Long = &H20
کامپیوتر در حالتOffline هستش
Private Const INTERNET_CONNECTION_CONFIGURED As Long = &H40
کامپیوتر به اینترنت متصل هستش
Private Const INTERNET_RAS_INSTALLED As Long = &H10
روی کامپیوتر نصب شدهRas

اگه مقدار برگشتی تابع 0 باشه کامپیوتر به اینترنت وصل نیست و اگه 1 باشه وصله.
چون ممکنه مقداری که به متغییر داده میشه چند تا از مقدار های بالا باشه (مثلا CONNECTION_CONFIGURED و CONNECTION_MODEM) باید توی If از AND استفاده کنیم و نمیشه از = استفاده کرد:

Private Const INTERNET_CONNECTION_LAN As Long = &H2
Private Const INTERNET_CONNECTION_PROXY As Long = &H4
Private Const INTERNET_CONNECTION_MODEM_BUSY As Long = &H8
Private Const INTERNET_CONNECTION_OFFLINE As Long = &H20
Private Const INTERNET_CONNECTION_CONFIGURED As Long = &H40
Private Const INTERNET_RAS_INSTALLED As Long = &H10

Private Sub Form_Load()
Dim lpF As Long, MBStr As String
If InternetGetConnectedState(lpF, ByVal 0&) = 1 Then
If lpF And INTERNET_CONNECTION_CONFIGURED Then
MBStr = “Connection to the internet = True …” & vbNewLine
End If
If lpF And INTERNET_CONNECTION_MODEM Then
MBStr = “By MODEM” & vbNewLine
End If
If lpF And INTERNET_CONNECTION_LAN Then
MBStr = “By LAN” & vbNewLine
End If
If lpF And INTERNET_CONNECTION_MODEM_BUSY Then
MBStr = “MODEM Busy” & vbNewLine
End If
If lpF And INTERNET_CONNECTION_OFFLINE Then
MBStr = “Offline” & vbNewLine
End If
If lpF And INTERNET_CONNECTION_PROXY Then
MBStr = “Proxy” & vbNewLine
End If
If lpF And INTERNET_RAS_INSTALLED Then
MBStr = “Ras Installed” & vbNewLine

End I
Else
MBStr = “Connected to the internet = False”
End If
MsgBox MBStr
End Sub

**********************
اموزش روش های Shut Down
براي Shut Down كردن سيستم از تابعExitWindowEx استفاده ميشه :
Private Declare Function ExitWindowsEx Lib “user32″ (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
پارامتر اول يكي از مقدار هاي زير ميتونه باشه :

Const EWX_LOGOFF = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4

همش به غير از آخري واضحه.آخري با هر كدوم از بقيه كه تركيب بشه (با Or ) موجب ميشه كه ويندوز برنامه ها رو مجبور به بستن كنه.پارامتر دوم رو هم VbNullString قرار بدين
.
مثال :

Private Sub Command1_Click()
ExitWindowsEx EWX_SHUTDOWN or EWX_FORCE, VbNULLString
End Sub

توي ويندوز XP اين روش كار نميكنه.براي شات دانون كردن ويندوز بايد از فايل ShutDown.Exe كه توي دايركتوري سيستم هست استفاده كرد.اين فايل واسه Shut Down كردن چند تا پارامتر ميتونه بگيره كه يكيش رو حتما بايد بش بدين :

-I

يه واسط كاربري نشون ميده كه توي اون كاربر Options ها رو مشخص ميكنه و بعد OK ميكنه تا سيستم خاموش بشه و اگه اين رو استفاده كردين ديگه نياز به پارامتر ديكه اي نيست .البته اين پارامتر اصلا به كار ما نمياد.ما ميخواهيم به طور اتوماتيك سيستم رو Shut Down كنيم.

-l

سيستم Logoff ميشه

-s

سيستم Shutdown ميشه.(توي قسمت هاي قبلي هرجا گفتم Shut Down منظورم Restart , Shutdown , Logoff بود)

-r

سيستم Restart ميشه.

-a

اگه سيستم در حال Shut Down شدن باشه ،اين كار لغو (abort)ميشه.

-t [Seconds]

اين براي زمان بكار ميره.يعني اينكه اگه از اين پارامتر استفاده كنين بايد بعدش يه عدد كه معرف ثانيه هستش بنويسين كه اگه اين كارو بكنين يه پنجره مثل اين نشون داده ميشه و سيستم بعد از زماني كه شما تعيين كردين Shut Down ميشه:

-c “[This is a comment] ”

اگه از پارامتر t استفاده كرده باشين با اين پارامتر (c) ميتونين توي قسمت Message يه پيغام براي كاربر نشون بدين مثل ايني كه من گذاشتم (This is a comment) در ضمن طول اين پيغام حداكثر بايد 127 كاراكتر باشه.

-f

مثل مقدار EWX_FORCE توي تابع ExitWindowsEx عمل ميكنه يعني اگه ازش استفاده كنين ويندوز برنامه ها رو مجبور به بستن ميكنه.
حالا ما براي Shut Down كردن بايد اين فايل رو با پارامتر ها باز كنيم.از تابع Shell استفاده ميكنيم :
2
تا دكمه يكي cmdShutDown و يكي ديگه cmdAbort درست كنين :

Private Sub cmdShutDown_Click()
Shell “Shutdown.exe -r –t 30 –f –c ” & “”"” & “This is a comment” & “”"”
End Sub
Private Sub cmdAbort_Click()
Shell “Shutdown.exe –a”
End Sub

وقتي دكمه cmdShutDown رو بزنين يه پنجره مثل پنجره اي كه عكسش رو گذاشتم ظاهر ميشه و شمارش معكوس از 30 شروع ميشه.اگه به 30 برسه ويندوز رستارت ميشه.اگه دكمه cmdAbort رو بزنين پنجره ي Shut Down بسته ميشه.
حالا يه كد واسه رستارت در همون لحظه :

Private Sub cmdShutDown_Click()
If MsgBox(”Are you sure? “,VbCritical + VbYesNo) = VbYes Then
Shell “ShutDown.exe –r –f –t 0″
End If
End Sub

***********************
طبق روال چند تا تابع و روش كار با اونارو آموزش ميدم.

1.AnimateWindow
اين تابع رو بايد در حالتي كه يه پنجره هنوز رسم نشده(يا Hide هست و …) و يا قبل از پنهان شدن هست بايد فراخواني كرد
بعد از فراخواني تابع پنجره در حالتهاي مختلف به صورت انيميت رسم ميشه يا پنهان ميشه.مثلا از سمت چپ طولش افزايش پيدا ميكنه تا كاملا رسم بشه.اين تابع توي API Viewer نيست:

Private Declare Function AnimateWindow Lib “user32″ (ByVal hwnd As Long, ByVal dwTime As Long, ByVal dwFlags As Long) As Boolean

ثابت هاي مورد نياز:

Const AW_HOR_POSITIVE = &H1
Const AW_HOR_NEGATIVE = &H2
Const AW_VER_POSITIVE = &H4
Const AW_VER_NEGATIVE = &H8
Const AW_CENTER = &H10
Const AW_HIDE = &H10000
Const AW_ACTIVATE = &H20000
Const AW_SLIDE = &H40000
Const AW_BLEND = &H80000

اين تابع 3 تا مقدار به صورت byVal ميگيره.اول هندل پنجره مورد نظر.دومي زماني كه ميخواهيم عمل رسم انجام بشه سومي هم روش رسم هست كه بايد ثابت ها را به اين بديم.بعضي از مقادير (آخر) رو ميشه از طريق Or با هم استفاده كرد.
موقتي كه ميخواهيم يك پنجره از حالت رسم شده به حالت پنهان بره بايد مقدار AW_HIDE رو هم به پارامتر آخر (با استفاده از Or) اضافه كنيد.كارهايي كه اين ثابت ها ميكنن:

AW_HOR_POSITIVE پنجره از چپ به راست رسم يا پاك ميشه
AW_HOR_POSITIVE
پنجره از راست به چپ رسم يا پاك ميشه
AW_VER_POSITIVE
پنجره از بالا به پايين رسم يا پاك ميشه
AW_VER_NEGATIVE
پنجره از پايين به بالا رسم يا پاك ميشه
AW_CENTER
پنجره از مركز باز ميشه يا بالعكس
AW_ACTIVATE
پنجره رو فعال ميكنه

بقيه رو هم درست نفهميدم شما هم امتحان كنين.
يه مثال ميزنم.2 تا دكمه داخل فرم درست كنين و كد زير رو وارد كنين:

Private Declare Function AnimateWindow Lib “user32″ (ByVal hwnd As Long, ByVal dwTime As Long, ByVal dwFlags As Long) As Boolean
Const AW_HOR_POSITIVE = &H1
Const AW_HOR_NEGATIVE = &H2
Const AW_VER_POSITIVE = &H4
Const AW_VER_NEGATIVE = &H8
Const AW_CENTER = &H10
Const AW_HIDE = &H10000
Const AW_ACTIVATE = &H20000
Const AW_SLIDE = &H40000
Const AW_BLEND = &H80000
Private Sub Form_Load()
Me.BackColor = vbBlue
AnimateWindow Me.hwnd, 1000, AW_HOR_POSITIVE Or AW_VER_NEGATIVE
Me.Cls
End Sub
Private Sub Command1_Click()
If Command2.Visible = True Then
AnimateWindow Command2.hwnd, 1000, AW_CENTER Or AW_HIDE: Command2.Visible = False
Else
AnimateWindow Command2.hwnd, 1000, AW_CENTER: Command2.Visible = True
End If
End Sub

براي اينكه بعد از رسم تغيير رنگ هاي(احتمالي) ايجاد شده از بين بره(صفحه پاك بشه) از Me.Cls استفاده كردم.
اين رو هم بگم كه در زماني كه تابع داره كارشو ميكنه برنامه كار ديگه اي نميتونه بكنه.در ضمن رنگ زمينه رو عوض كردم تا تغيير اندازه دكمه مشخص بشه.ديگه فكر نكنم توضيحي بخواد.

2.GetBkColor : اين تابع BackColor يا رنگ زمينه پنجره اي كه hDC ش رو بش داديم برميگردونه:

Private Declare Function GetBkColor Lib “gdi32″ Alias “GetBkColor” (ByVal hdc As Long) As Long

براي مثال Hdc فرم خودمون رو بش ميديم و مقدار بازگشتيشو با BACKcOLOR فرممون مقايسه ميكنيم(1 دكمه توي فرم بزارين):

Private Declare Function GetBkColor Lib “gdi32″ Alias “GetBkColor” (ByVal hdc As Long) As Long
Private Sub Form_Load()
Me.BackColor=VbBlue
End sub
Private Sub Command1_Click()
Dim BKcolor as Long
BKcolor = GetBkColor(Me.hdc)
If BKcolor = Me.BackColor Then
Msgbox “Good!”,vbinformation
Else
Msgbox “Wrong!!”,vbCritical
End If
End Sub

توجه كنين كه من در Private Sub Form_Load() رنگ زمينه فرم رو از حالت پيشفرض خارج كردم و يه رنگ معمولي بش دادم اين به اين دليل بود كه فرم در حالت پيشفرض داراي رنگ زمينه VbFaceButton (يه رنگ سيستمي) هست و براي همين هم خصوصيت Me.BackColor بجاي اينكه رنگ زمينه واقعي رو برگردونه يه چيز ديگه برميگردونه.

3. GetSystemDirectory
اين تابع براي گرفتن آدرس پوشه سيستم بكار ميره مثلا در ويندوز 98 اگه ويندوز در درايو C نصب شده باشه محل اغلبا
C:\Windows\System
هست.
اين تابع به اين صورته:

Private Declare Function GetSystemDirectory Lib “kernel32″ Alias “GetSystemDirectoryA” (ByVal lpBuffer As String, ByVal nSize As Long) As Long

مقدار اول يه متغير از نوع String هست كه بايد به تابع بديم تا مسير رو توي اون قرار بده.و دومي رو 255 قرار بدين.اين مقدار
نشون ميده كه تابع حداكثر چند كاراكتر اول مسير رو برگردونه.چون طول اين مسير به ندرت 255 ميشه ما اين عدد رو بش ميديم.يه نكته رو توجه كنين كه اين تابع مقدار 255 كاراكتر(كه خودمون مشخص كرديم) رو داخل متغييري كه بش داديم قرار ميده كه كاراكتر هاي اول رو مسير پوشه سيستم و بقيه رو با كاراكتر 0 پر ميكنه.بنابراين ما بايد طور متغير كه در عادي 0 هست رو به 255 تغيير بديم و گرنه چون تابع ميخواد مقدار رو درون تابع جا بده و تابع جا نداره(طولش 0 هستش) اشكال ايجاد ميشه و برنامه ما بسته ميشه.همن اين ها به اين علت هستش كه تابع طول متغير ما رو تغيير نميده(ولي در خود ويبي اگر يه مقداري رو به يه متغير از نوع String بديم طول متغيير خودكار اضافه ميشه.)
براي اينكه ما طول متغير رو براي اين تابع به مقدار 255 كاراكتر تغيير بديم 2 كار ميتونيم بكنيم.يكي از اين روشه:
Dim sysPath as string * 255
توي اين روش طول متغير با استفاده از 255 كاراكتر تغيير ميكنه.(با استفاده از كاراكتر 0‌)
يا اينكه يه مقدار با طول 255 به متغيير ميديم:

Dim sysPath as String
sysPath = String(255,” “)

حالا تابع رو فراخواني ميكنيم:

Private Declare Function GetSystemDirectory Lib “kernel32″ Alias “GetSystemDirectoryA” (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Sub Form_Load()
Dim sysPath as String * 255
GetSystemDirectory sysPath,255
Msgbox Replace(sysPath,chr(0),”")
End Sub

در خط يكي مونده به آخر با استفاده از تابع Replace مقدار كاراكتر 0 اضافي كه با تابع داده شده حذف ميشه.
3.GetWindowsDirectory
اين تابع مسير پوشه ويندوز رو برميگردونه و روش كار باش مشابه قبلي هست :

Private Declare Function GetWindowsDirectory Lib “kernel32″ Alias “GetWindowsDirectoryA” (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Sub Form_Load()
Dim winPath as String * 255
GetWindowsDirectory winPath,255
Msgbox Replace(winPath,chr(0),”")
End Sub

۴. GetTempPath
اين تابع هم مسير پوشه Temp رو به ما ميده و يه فرق كوچيك با قبليه داره . جاي آرگومان هاش عوض شده:

Private Declare Function GetTempPath Lib “kernel32″ Alias “GetTempPathA” (ByVal nSize As Long,ByVal pBuffer As String) As Long
Private Sub Form_Load()
Dim tmpPath as String * 255
GetTempPath 255,tmpPath
Msgbox Replace(tmpPath,chr(0),”")
End Sub

5.SetForegroundWindow اين تابع هندل يم پنجره رو ميگيره و اونو فعال ميكنه:

Private Declare Function SetForegroundWindow Lib “user32″ Alias “SetForegroundWindow” (ByVal hwnd As Long) As Long

با استفاده از تابع GetCursorPos مكان موس رو ميگيريم و با استفاده از از تابع WindowFromPoint بوسيله مختصات هندل رو ميگيريم و به تابع ميديم(يه تايمر توي فرم بزارين):

Private Declare Function GetCursorPos Lib “user32″ (lpPoint As POINTAPI) As Long
Private Declare Function WindowFromPoint Lib “user32″ (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function SetForegroundWindow Lib “user32″ Alias “SetForegroundWindow” (ByVal hwnd As Long) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Dim PAPI As POINTAPI,phWnd as long

Private Sub Form_Load()
Timer1.Interval = 100
End Sub

Private Sub Timer1_Timer()
GetCursorPos PAPI
phWnd = WindowFromPoint(PAPI.x, PAPI.y)
SetForeGroundWindow phWnd
End Sub

**********************
۱.تابع PlaySound
این تابع واسه پخش کردن یه فایل با فرمت wav از توی speaker هاست.آرگومان اول آدرس فایل و دومی و سومی باید 1 باشه.یه دکمه توی فرم بزارین و کد زیر رو وارد کنین:

Private Declare Function PlaySound Lib “winmm.dll” Alias “PlaySoundA” (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
Private Sub Command1_Click()
PlaySound “D:\File.wav”,1,1
End Sub

که باید به جای D:\File.wav آدرس یه فایل با پسوند wav بزارین.

2.GetClassName
این تابع هندل یه پنجره رو میگیره و ClassName ش رو برمیردونه.آرگومان اول هندل پنجره.آرگومان دوم یه متغیر که نام کلاس توش قرار میگیره طول این متغییر باید تعیین شده باشه.سومی هم یه عدد مثل n که وقتی به تابع داده میشه تابع n-1 کاراکتر اول نام کلاس رو داخل متغییر قرار میده.(البته مطمین نستم شایدم n کاراکتر اول رو برگردونه.خودم امتحان کردم n-1 کاراکتر اول رو قرار داد)این عدد رو 255 قرار بدین خیال خودتونو راحت کنین.

Private Declare Function GetClassName Lib “user32″ Alias “GetClassNameA” (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

Private Sub Command1_Click()
Dim ipCName as String * 255
GetClassname Me.hWnd,ipCName,255
Msgbox Replace(ipCName,chr(0),”")
End Sub

واسه توضیح در مورد طول متغیر و چرا اینطوریش کردیم به آموزش تابع GetSystemDirectory سر بزنین.

3. GetAsyncKeyState
با این تابع میتونین بفهمین که قبل از فراخوانی تابع آیا یه کلید فشرده شده یه نه.آرگومانی که تابع میگیره کلیدی که مورد نظرمون هست رو مشخص میکنه.برای مثال

Private Const VK_LEFT = &H25

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

Private Declare Function GetAsyncKeyState Lib “user32″ (ByVal vKey As Long) As Integer
Private Const VK_LEFT = &H25

Private Sub Command1_Click()
If GetAsyncKeyState(VK_LEFT) Then
Print “<–”
End if
End Sub

در ضمن اگه شما مقدار &H8000 رو هم توی شرط If بزارین عمل چاپ فقط در صورتی که اجرا میشه که کلید چپ در زمان فشره شدن دکمه فشرده شده باشه نه قبلش.
البته در حالت اول برای یک بار فشردن دکمه چپ فقط یک بار عمل چاپ با فشردن دکمه انجام میشه.امتحان کنین تا منظورمو بفهمین.

4.LoadCursorFromFile
این تابع اشاره گر یه فایل کرسر (.cur) رو به مامیده که ازش میشه توی تابع SetSystemCursor استفاده کرد.مثالش رو توی تابع بعدی ببینین.

Private Declare Function LoadCursorFromFile Lib “user32″ Alias “LoadCursorFromFileA” (ByVal lpFileName As String) As Long

5. SetSystemCursor
با این تابع میشه کرسر سیستم رو تعیین کرد.این تابع اول یه اشاره گر از کرسر مورد نظر ما میخواد که ما این رو با استفاده از تابع LoadCursorFromFile میگیریم آرگوما دوم رو هم Private Const OCR_NORMAL = 32512 قرار بدین(مقدار های دیگه رو میتونین توی API Viewer ببینین).یه دکمه توی فرم بزارین:

Private Declare Function SetSystemCursor Lib “user32″ Alias “SetSystemCursor” (ByVal hcur As Long, ByVal id As Long) As Long
Private Declare Function LoadCursorFromFile Lib “user32″ Alias “LoadCursorFromFileA” (ByVal lpFileName As String) As Long
Private Const OCR_NORMAL = 32512

Private Sub Command1_Click()
Dim hc as long
hc = LoadCursorFromFile(”D:\c.cur”)
SetSystemCursor hc,32512
End Sub

فایلهای با پسوند .cur که با ویژوال بیسیک نصب شدن رو توی شاخه …\COMMON\GRAPHICS\CURSORS پیدا کنین.به امید دیدار.

************************
1.SetWindowPos
این تابع واسه تغییر مکان و تغییر اندازه Window ها بکار میره و چند تا کاره دیگه هم میکنه:

Private Declare Function SetWindowPos Lib “user32″ Alias “SetWindowPos” (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

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

Private Const HWND_BOTTOM = 1
Private Const HWND_BROADCAST = &HFFFF&
Private Const HWND_DESKTOP = 0
Private Const HWND_NOTOPMOST = -2
Private Const HWND_TOP = 0
Private Const HWND_TOPMOST = -1

هر کدوم از اینارو بزارین ببینین چی میشه . مثلا topmost بالای پنجره های دیگه جتی اونایی که از قبل
Top
بودن قرار میگیره.

مقدار سومی و چهارم هم x و y مختصات پنجره هستش که نسبت به پنجره parent (مادر) ش هستش به طوری که بالا و سمت چپ پنجره ء مادر نقطه (0 ، 0 ) حساب میشه.مقدار بعدی هم عرض و طول پنجره مورد نظر هستش.
حالا اگه نخواهیم همه این خصوصیات پنجره رو تغییر بدیم نمیشه مثل ویبی اونا رو مقدار دهی نکنیم.بعضی از مواقع میشه از Byval 0& استفاده کرد اما در مورد این تابع واسه اینکه نخواهیم همه خصوصیاتش رو تغییر بدیم باید آرگومان آخر رو مقدار دهی کنیم.بعضی از مقدار هایی که این میگیره :

Private Const SWP_NOMOVE = &H2 پنچره تغییر مکان نمیده
Private Const SWP_NOACTIVATE = &H10
پنجره فعال نمیشه
Private Const SWP_NOSIZE = &H1
پنجره تغییر اندازه نمیده
Private Const SWP_NOZORDER = &H4
جای پنجره در محور z عوض نمیشه
Private Const SWP_NOREDRAW = &H8
پنجره دوباره رسم نمیشه

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

Private Declare Function SetWindowPos Lib “user32″ (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOZORDER = &H4
Dim x As Integer, y As Integer

Private Sub Form_Paint()
Command1.SetFocus
Timer1.Interval = 100
End Sub

Private Sub timer1_timer()
x = Int(800 * Rnd())
y = Int(600 * Rnd())
SetWindowPos Me.hwnd, 0, x, y, 0, 0, SWP_NOSIZE Or SWP_NOZORDER
End Sub
Private Sub command1_click()
Unload Me
End Sub

اول focus رو به دکمه میدیم بعد .Interval مربوط به تایمر رو مقدار دهی میکنیم.توی Private Sub timer1_timer هم یه x و y
به طور تصادفی بدست میاریم توی خط بعد هم با استفاده از تابع مورد نظر پنجره رو حرکت میدیم.
حالا بعد از اجرا کردن برنامه کلید اینتر رو که بزنین برنامه بسته میشه.

2.CreateDirectory
این تابع واسه ساختن Folder بکار میره :

Private Declare Function CreateDirectory Lib “kernel32″ Alias “CreateDirectoryA” (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long

آرگومان اول مسر پوشه ای که میخواهیم بسازیم هستش
دومی هم یه متغییر از نوع SECURITY_ATTRIBUTES که نیازی به مقدار دهی کردنش هم نیست

Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type

برای مثال :

Private Declare Function CreateDirectory Lib “kernel32″ Alias “CreateDirectoryA” (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type

Dim SA as SECURITY_ATTRIBUTES
Private Sub Form_Load()
Createdirectory “D:\APItest”,SA
End Sub

3.Sleep
این تابع برنامه ای که تابع توش فراخوانی شده رو توی زمانی که بش میدیم متوقف میکنه
آرگومانی که میگیره زمان مورد نظره که بر حسب میلی ثانیه هستش.
یه دکمه توی فرم بزارین :

Private Declare Sub Sleep Lib “kernel32″ Alias “Sleep” (ByVal dwMilliseconds As Long)

Private Sub Command1_Click()
Sleep 2000 ‘2000 ms = 2 s
End Sub

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

Private Declare Function BlockInput Lib “user32″ (ByVal fBlock As Long) As Long

مقداری که میگیره اگه 0 باشه عمل قفل شدن متوقف میشه و اگه 1 باشه موس و کیبرد قفل میشه.اگه با این تابع موس و کیبرد رو قفل کردین یه فکری هم به فکر آزاد کردن موس و کیبرد باشین :
یه تایمر توی فرم بزارین :

Private Declare Function BlockInput Lib “user32″ (ByVal fBlock As Long) As Long

Private Sub Form_Load()
Timer1.Interval = 5000
BlockInput True
End Sub
Private Sub Timer1_Timer()
BlockInput False
End Sub

با این کد عمل قفل شدن 5 ثانیه طول میکشه.

***********************
1.FlashWindow

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

Private Declare Function FlashWindow Lib “user32″ Alias “FlashWindow” (ByVal hwnd As Long, ByVal bInvert As Long) As Long

آرگومان اول هندل پنجره مورد نظر هست.
آرگومان دوم رو 1 قرار بدین (اگه صفر قرار بدین عمل مورد نظراگر در حال انجام باشه- متوقف میشه)
یه دکمه توی فرم بزارین:

Private Declare Function FlashWindow Lib “user32″ Alias “FlashWindow” (ByVal hwnd As Long, ByVal bInvert As Long) As Long

Private sub Command1_Click()
FlashWindow Me.hWnd , 1
End Sub

Delphi:

procedure TForm1.Command1Click(Sender: TObject);
begin
FlashWindow(form1.Handle,true);
end;

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

2.GetForeGroundWindow
این تابع هندل فرم فعال(که رنگ نوار عنوانش با بقیه فرق داره و معمولا آبیه) رو برمیگردونه:

Private Declare Function GetForegroundWindow Lib “user32″ () As Long

هیچ مقداری هم نیاز نیست بش بدیم.یه تایمر توی فرم بزارین و Interval ش رو 1 بزارین:

Private Declare Function GetForegroundWindow Lib “user32″ () As Long
Private Sub Timer1_Timer()
Me.Caption = GetForegroundWindow()
End Sub

Delphi:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Form1.Caption := IntToStr(GetForegroundWindow());
end;

3.GetComputerName

این تابع نام کامپیوتری که برنامه داره توش اجرا میشه رو برمیگردونه.این اسم رو میتونین توی قسمت
System Properties )
راست کلیک روی My Computer ؛ رفتن به Properties ) توی قسمت Computer Name ببینین.

Private Declare Function GetComputerName Lib “kernel32″ Alias “GetComputerNameA” (ByVal lpBuffer As String, nSize As Long) As Long

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

Private Declare Function GetComputerName Lib “kernel32″ Alias “GetComputerNameA” (ByVal lpBuffer As String, nSize As Long) As Long

Private Sub Form_Load()
Dim buffer As String * 255
GetComputerName buffer, 255
MsgBox “Computer name : ‘” & Replace(buffer, Chr(0), “”) & “‘”
End Sub

Delphi:

procedure TForm1.FormCreate(Sender: TObject);
var Buffer : Array[1..MAX_PATH] of char ;
var MAX_SIZE : Cardinal;
begin
MAX_SIZE := sizeof(buffer) -1 ;
GetComputerName(@buffer,MAX_SIZE) ;
ShowMessage(’Computer Name : ‘ + StrPas(@buffer));
end;

4.GetCurrentDirectory

این تابع آدرس پوشه ای که برنامه جاری توش داره اجرا میشه رو برمیگردونه.یعنی کار App.path رو انجام میده:

Private Declare Function GetCurrentDirectory Lib “kernel32″ Alias “GetCurrentDirectory” (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

روش مقدار دادن آرگومان هاش هم شبیه تابع قبلیه فقط جای اونا عوض شده یعنی آرگومان اول برای تعداد کاراکتر
اول و آرگومان دوم یه متغییر واسه قرار دادن آدرس توی اون:

Private Declare Function GetCurrentDirectoryA Lib “kernel32″ Alias “GetCurrentDirectory” (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

Private Sub Form_Load()
Dim buffer As String * 255
GetCurrentDirectoryA 255,Buffer
MsgBox “Current Directory : ‘” & Replace(buffer, Chr(0), “”) & “‘”
End Sub

Delphi:

procedure TForm1.FormCreate(Sender: TObject);
var buffer : array[1..MAX_PATH] of char;
begin
GetCurrentDirectoryA(sizeof(buffer),@buffer);
ShowMessage(’Current Directory : ‘ + strpas(@buffer));
end;

5.GetDoubleClickTime
این تابع هم زمان Double Click که توی کنترل پنل توی قسمت موس مشخص شده رو برمیگردوونه:

Private Declare Function GetDoubleClickTime Lib “user32″ Alias “GetDoubleClickTime” () As Long

هیچ مقداری هم نمیگیره:
Private Declare Function GetDoubleClickTime Lib “user32″ Alias “GetDoubleClickTime” () As Long
Private Sub Form_Load()
Msgbox “DoubleClickTime : ” & GetDoubleClickTime()
End Sub

Delphi:

procedure TForm1.FormCreate(Sender: TObject);
begin
ShowMessage(’DoubleClickTime : ‘ + IntToStr(GetDoubleClickTime()));
end;

***************************
1.bitblt
این تابع واسه گرفتن عکس از یه window هستش.در واقع این تابع یه قسمت یا همه پیکسل های یه پنجره(مبدا) رو داخل یه پنجره دیگه (مقصد) کپی میکنه.ما میتونیم یه picture box که توی برناممون هستش رو مقصد قرار بدیم و بعد از قرار داده شدن تصویر پنجره مبدا توی مقصد با SavePicture عکسی که از پنجره مورد نظر گرفتیم رو ذخیره کنیم:

Private Declare Function BitBlt Lib “gdi32″ (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

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

Private Const SRCAND = &H8800C6
Private Const SRCCOPY = &HCC0020
Private Const SRCERASE = &H440328
Private Const SRCINVERT = &H660046
Private Const SRCPAINT = &HEE0086

به طور معمول Private Const SRCCOPY = &HCC0020 رو بايد قرار بديم
یکی از کارهایی که میشه با این تابع کرد عکس گرفتن ازصقحه مانيتوره .یعنی ما با استفاده از تابع getdc ، hdc ی كل صفحه (چیزی که توی مانیتور داره نشون داده میشه) رو به تابع میدیم و با این کار یه عکس از چیزی که توی مانیتور داره نشون داده میشه عکس میگیریم.
یه دکمه و یه PictureBox توي فرم بزارين خصوصيت autoredraw ش رو true كنين و كد زير رو وارد كنين:

Private Declare Function GetDC Lib “user32″ (ByVal hwnd As Long) As Long
Private Declare Function BitBlt Lib “gdi32″ (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Const SRCCOPY = &HCC0020 ‘ (DWORD) dest = source
Private Sub Command1_Click()
Picture1.Width = Screen.Width
Picture1.Height = Screen.Height
Me.Hide
BitBlt Picture1.hDC, 0, 0, Screen.Width / 15, Screen.Height / 15, GetDC(0), 0, 0, SRCCOPY
SavePicture Picture1.Image, “D:\test.bmp”
unload me
End Sub

اول اندازه Picture Box رو برابر با اندازه صفحه مانیتور میکنیم تا بشه از کل صفحه مانیتور عکس گرفت.
بعد فرم رو پنهان میکنیم تا عکس خود فرم توی تصویر نیفته. بعد با تابعی که گفتم از صفحه عکس میگیریم.ارگومان اول که hdc ی PictureBox هستش.دومی و سومی رو 0 قرار دادم تا عکس از نقطه 0،0 یعنی از بالا و سمت چپ picturebox شروم به رسم شدن بشه.سومی هم طول و عرض صفحه نمایش هست چون میخواهیم از همه صفحه عکس بگیریم.اونا رو بر 15 تقسیم کردم چون توی ویبی به طور پیشفرض این مقدار ها بر حسب twip به ما داده میشه ولی ما باید بر حسب پیکسل به تابع بدیم.بعدی رو هم که توضیح دادم.2 مقدار بعدی رو هم 0 قرار دادم چون میخوام عکس از نقطه 0و0 صفحه نمایش شروع که گرفتن بشه.بعد از اینکه عکس گرفته شد و توی picturebox قرار گرفت اون رو save میکنیم.بعد هم برنامه بسته میشه.

2.StretchBlt
کار این تابع خیلی شبیه قبلی هستش ولی این تابع علاوه بر اینکه میتونه عکس بگیره عکس مورد نظر رو به نسبتی که بش میدیم میتونه کوچیک و یا بزرگ کنه:

Private Declare Function StretchBlt Lib “gdi32″ (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

همونطور که میبینین 2 تا آرگومان دیگه اضافه شده
عکسی که گرفته میشه در نهایت طول و عرضش برابر nWidth و nHeight میشه و توی picturebox رسم میشه.یعنی اگه ما عکس رو از کل صفحه نمایش بگیریم و مقدار این 2 آرگومان رو نصف طول و عرض صفحه نمایش قرار بدیم چون عکس باید به این اندازه ها در بیاد کل عکس به نسبت کوچک میشه در صورتی که توی تابع قبلی برای اینکه به این اندازه ها در بیاد فقط قسمتی از عکس نمایش داده میشد نه همش یعنی اونجا همه عکس رسم نمیشد ولی اینجا همه عکس نشون داده میشه ولی با اندازه متفاوت(بر عکس این حالت هم اگه 2 آرگومان رو 2 برابر صفحه نمایش مقاد دهی کنیم اتفاق میفته و عکس بزرگ میشه البته توی این حالت برای اینکه همه عکس رسم بشه باید اندازه PictureBox رو هم 2 برابر صفحه نمایش کنیم)

حالا اگه نخواهیم از همه صفحه نمایش(یا کلا پنجره مورد نظر) عکس بگیریم به جای اینکه مثل تابع قبلی nWidth و nHeight رو کم کنیم nSrcWidth و nSrcHeight رو کم میکنیم (باید به عرض و طولی که اول میدیم هم توجه کنین و اوا رو هم کم کنین و اگرنه کار درست انکام نمیشه) در غیر این صورت nSrcWidth و nSrcHeight رو برابر اندازه کل پنجره قرار میدیم .
شاید این توضیحایی که دادم یکم گیجتون کرده باشه و درست متوجه نشده باشین.خودتون که یکم با تابع کار کنین میفهمین چی میگم.
یه برنامه مینویسیم که عکس رو از صفحه نمایش بگیره ول اندازه اونو 2 برابر کنه و اونو ذخیره کنه.یه دکمه و یه PictureBox بزارین و خصوصيت autoredraw ش رو true كنين :

Private Declare Function GetDC Lib “user32″ (ByVal hwnd As Long) As Long
Private Declare Function StretchBlt Lib “gdi32″ (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Private Const SRCCOPY = &HCC0020 ‘ (DWORD) dest = source
Private Sub Command1_Click()
Picture1.AutoRedraw = True
Picture1.Width = Screen.Width * 2
Picture1.Height = Screen.Height * 2
Me.Hide
StretchBlt Picture1.hdc, 0, 0, Screen.Width / 7.5, Screen.Height / 7.5, GetDC(0), 0, 0, Screen.Width / 15, Screen.Height / 15, SRCCOPY
Me.Show
SavePicture Picture1.Image, “D:\test.bmp”
End Sub

3.TextOut
این تابع واسه چاپ کردن یه متن روی یه پنجره بکار میره:

Private Declare Function TextOut Lib “gdi32″ Alias “TextOutA” (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long

آرگومان اول hdc ی پنجره مورد نظره.دومی و سومی هم x و y ی مختصات نقطه ای هستش که مخواهیم متن چاپ بشه و اینجا نقطه 0 و 0 بالا سمت چپ پنجره مورد نظره بعدي هم متن مورد نظره بعدی .تعدد کاراکتری هستش که میخواهیم از متنی که به تابع دادیم از سمت چپ جدا بشه و چاب بشه که معمولا چون میخواهیم همه متن چاپ بشه باید این مقدار برار طول متن باشه.در ضمن متن با فونت و رنگ زمینه پنجره ای که hdc ش رو به تابع دادیم رسم میشه:

Private Declare Function GetDC Lib “user32″ (ByVal hwnd As Long) As Long
Private Declare Function TextOut Lib “gdi32″ Alias “TextOutA” (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Private Sub Command1_Click()
Dim strText As String, Cnt As Long
strText = “API : Application programming interface… |”
For Cnt = 0 To 2
TextOut GetDC(0), 20 * Cnt * 20, Screen.Height / 30, ByVal strText, Len(strText)
Next
End Sub

4.این تابع هم کار تابع قبلی رو میکنه با این فرق که متن داخل یه محدوده چهار گوش شکل رسم میشه و میشه مشخص کرد با چه فرمتی(حالتی) این کار انجام بشه:

Private Declare Function DrawText Lib “user32″ Alias “DrawTextA” (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long

آرگومان های اول و دوم و سوم رو قبلا توضیح دادم.چهارمی هم یه متغیر از نوع rect که محدوده چهار گوش رو مشخص میکنه.پنجمی هم نوع چاپ شده هستش که مقدار هایی مثل این هارو میشه به تابع داد :

Private Const DT_BOTTOM = &H8 متن در پایین محدوده rect چاپ میشه
Private Const DT_CENTER = &H1
متن در وسط محدوده rect چاپ میشه
Private Const DT_LEFT = &H0
متن در سمت چپ محدوده rect چاپ میشه
Private Const DT_RIGHT = &H2
متن سمت راست محدوده rect چاپ میشه

به کد زیر توجه کنین:

Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function GetDC Lib “user32″ (ByVal hwnd As Long) As Long
Private Declare Function DrawText Lib “user32″ Alias “DrawTextA” (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
Private Const DT_CENTER = &H1
Private Sub Command1_Click()
Dim strText As String, R As RECT
R.Bottom = 200
R.Top = 0
R.Left = 0
R.Right = Screen.Width / 15
strText = “Applicatrion Programming Interface”
DrawText GetDC(0), ByVal strText, Len(strText), R, &H1
End Sub

توی این کد توی محدوده rect نقطه بالا و چپ 0 و 0 قرار داده شده (گوشه سمت چپ پنجره) و قسمت پایین rect 200 و سمت راست اون به اندازه عرض صفحه نمایش قرار داده شده
و فرمت هم Center (مرکز) قرار داده شده بنابراین وقتی تابع رو فرخوانی میکنیم y ی چیزی که چاپ شده 0 هستش و چون ما فرمت رو مرکز قرار دادیم x متنی که چاپ شده به اندازه نصف عرض صفحه نمایش هستش و وسطش چاپ میشه.

5.ExtracIcon

اين تابع يه اشاره گر از آیکونی که توی یه فایل (اغلبا .dll) قرار گرفته بر میگردونه که از با استفاده از این اشاره گر میشه تابع رو روی یه پنجره رسم کرد(و ذخیرش کرد) :

Private Declare Function ExtractIcon Lib “shell32.dll” Alias “ExtractIconA” (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long

آرگومان اول رو 0 قرار بدین.دومی آدرس فایل مورد نظره.سومی هم Index آیکونی هستش که توی فایل قرار گرفته.(آیکون هایی که به این صورت توی فایل ها قرار میگیرن دارای یه Index هستن)
یکسری از ایکون های ویندوز توی فایل [WinDrive]:\Windows\System\Shell32.dll قرار گرفتن
مثالش رو توی تابع بعد ببینین.

6.Drawicon
این تابع hDc ی یه پنجره و اشاره گر یه آیکون رو میگیره و اون رو توی پنجره رسم میکنه:

Private Declare Function DrawIcon Lib “user32″ Alias “DrawIcon” (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long

آرگومان اول hdc ی پنجره مقصد هستش.دومی X نقطه شروع رسم و بعدی Y اون نقطه هستش.بعدی هم اشاره گر آیکون مورد نظره.
ُخصوصیت AutoRedraw فرم رو True کنین و کد زیر رو وارد کنین:

Private Declare Function DrawIcon Lib “user32″ (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
Private Declare Function ExtractIcon Lib “shell32.dll” Alias “ExtractIconA” (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
Private Declare Function GetSystemDirectory Lib “kernel32″ Alias “GetSystemDirectoryA” (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Sub Form_Load()
Dim strpath As String, Buffer As String * 255, Cnt As Long
GetSystemDirectory Buffer, 255
strpath = Replace(Buffer, Chr(0), “”) & “\Shell32.dll”
‘///
Call DrawIcon(Me.hdc, 0, 0, ExtractIcon(0, ByVal strpath, 20))
End Sub

اول با تابع getsystemdirectory محل پوشه سیستم و بعد محل فایل Shell32.dll رو پیدا میکنیم.بعد هم آیکونی که Index ش 20 هست رو روی فرم رسم میکنیم




ترفند های ریجستری


 غیر فعال کردن ToolTip  :   ( ترفندهاي رجیستری)

وقتی اشاره گر ماوس برای چند لحظه روی دکمه یا گزینه ای در ویندوز قرار میگیرد در یک کادر زرد رنگ کوچک نکته ای نمایش داده میشود برای حذف این نکته مراحل زیر را طی کنید :

به کلید زیر بروید :

HKEY_USERS\DEFAULT\Control Panel \ Desktop

روی متغیر  UserPrefrenceMask  دوبار کلیک کرده و مقداز آنرا به 3E 00 00 00  تغییر دهید و برای فعال کردن آن مقدار BE 00 00 00  را وارد کنید .

..................................................................................
 نمایش یک عنوان دلخواه برای قسمت Logon  در ویندوز :  ( ترفندهاي رجیستری)

به کلید زیر بروید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version \ Winlogon

داده ای از نوع String  تعریف و نام آنرا LegaNoticeCaption  قرار دهید .

حال مقدار آنرا متن دلخواه خود قرار دهید . این متن درون پنجره نمایش داده میشود .

داده ای دیگر از نوع String  ایجاد و نام آنرا LegaNoticeText  قرار دهید .این متن در بخش عنوان پنجره قرار میگیرد .

 ..................................................................................

 ویرایش قسمت عنوان پنجره Time Zone  : ( ترفندهاي رجیستری)
 

اگر حس ملی گرایی شما گل کرد و هوس کردید نام کشورتان ( یا حتی اسم خودتان ) در بالای پنجره Time Zone  قرار گیرد ابتدا به کلید زیر بروید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\Time Zones

حال زیر منوی کشور مورد نظر خود را بیابید ( مانند iran standard time  )  حال روی متغیر Display  دوبار کلیک کنید و مقدار آنرا متن مورد نظر خود قرار دهید .

 ..................................................................................

 وادار کردن dll  ها برای نمایش آیکونی از محتویاتش :  ( ترفندهاي رجیستری)
 

 

 

به کلید زیر بروید :

HKEY_CLASSES_ROOT\cplfile\defaultIcon

مقدار داده Default  را به 1% تغییر دهید این تنظیم روی آیکونهای Control Panel  عمل میکند .

حال به کلید زیر بروید :

HKEY_CLASSES_ROOT\dllfile\DefaultIcon

مقدار Default  را به %1  تغییر دهید

 

 ..................................................................................

 

 افزودن ویژگی Send To > NotePad  برای کلیه فایل ها :  ( ترفندهاي رجیستری)
 

 

به کلید زیر بروید :

HKEY_CLASSES_ROOT\*\Shellex

کلید در این شاخه  با عنوان SendToNotePad  ایجاد کنید .

حال متغیری از نوع string  با نام Command  ایجاد کرده و مقدار آن را از Default  به NotePad.exe%1  تغییر دهید .

 ..................................................................................

 تازه گردانی دائم فایلها و شاخه ها :   ( ترفندهاي رجیستری)
 
 
وقتی که چندین فایل را در یکجا کپی میکنید یا یک فایلی را در یک پنجره حرکت میدهید و یا به هر گونه ای یک پنجره به هم میریزد شما با زدن کلید  Refresh  دوباره همه چیز را به حالت اولیه در می آورید برای اینکه نخواهید هر دفعه این کار را انجام دهید و به طور اتوماتیک این کار انجام شود به کلید زیر بروید :

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Update

در سمت راست روی متغیر Update Mode  کلیک راست کرده و گزینه  Modify  را انتخاب کنید . در پنجره  Edit  مقدار 01 را به 00 تغییر دهید .

 ..................................................................................
 

حذف فایلهای سرگردان از Ram  :    ( ترفندهاي رجیستری)
 

 

وقتی برنامه ای را میبندید برخی از  Dll  های آن همچنان در Ram  باقی میمانند و کمی روی سرعت کامپیوترتان تاثیر میگذارند برای حذف آنها از  Ram  ابتدا به کلید زیر بروید :

 

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer

یک متغیر جدید از نوع  String Value  ایجاد کنید و نام آن را  AlwaysUnloadDll  قرار دهید و هکچنین مقدار آن را 1 قرار دهید .

 
..................................................................................
 

 استفاده از نسخه کوچک یک فایل  BMP  به عنوان آیکون  : ( ترفندهاي رجیستری)
 

 

به کلید زیر بروید :

HKEY_Current_USER\PaintPicture\Default

روی  Default  دوبار کلیک کرده و مقدار آن را به %1  تغییر دهید .

 ..................................................................................

 ویرایش فایلهای دسته ای :    ( ترفندهاي رجیستری)
 

 

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

برای فعال کردن حالت ویرایش ابتدا به کلید زیر بروید :

 

HKEY_CLASSES_ROOT\Batfile\Shell\Open

حال نام کلید Open  را به  Run  تغییر دهید .

 

روی داده باینری  Edit Flag  واقع در  HKEY_CLASSES_ROOT\Batfile  دوبار کلیک کنید و داده 00 00 00 00   را در آن وارد کنید .

اکنون  Explorer  یا  MyComputer  را باز کرده و از منوی  Tools گزینه  FolderOptions  را انتخاب کنید .

در قسمت  File Type  به گزینه MS-DOS Bath File  مراجعه کنید . همان طور که مشاهده میکنید سه دکمه آخر ( دکمه های  EDIT  و  Remove  و Set Default  ) در ویندوز ایکس پی برای مشاهده این دکمه ها باید به قسمت  Advanced  بروید

اکنون دکمه  edit  به عنوان عمل پیش فرض انتخاب میشود .

 ..................................................................................

 از بین بردن فایلهای موقت اینترنت پس از قطع شدن ارتباط : ( ترفندهاي رجیستری)
 

 

 

به کلید زیر بروید :

 

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Setting\Cache

 

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

0 = empty

1 = do not empty

 
..................................................................................
 

 پاک کردن حافظه (  Page File  ) در هنگام  ShutDown  کردن ویندوز : ( ترفندهاي رجیستری)
 

در ویندوز حافظه مجازی معمولا پاک نمیشود یا مجددا ایجاد نمیگردد برای انجام این کار ابتدا به کلید زیر بروید :

HKEY_LOCAL_MACHINE\System\CurrenControlSet\Control\SessionManager\MemoryManagement

داده ای از نوع  DWORD  ایجاد کنید و نام آن را ClearPageFileAtShutDown  قرار دهید و سپس مقدار آنرا 1 قرار دهید

 

 
..................................................................................
 

  تغییر حساسیت در دابل کلیک :   ( ترفندهاي رجیستری)
 

 

 

کاربران مبتدی ( البته جسارت نشه ) معمولا با مسئله حساسیت ماوس نسبت به دابل کلیک مواجهند به عبارت بهتر به علت عدم تسلط وقتی یک بار روی آیکونی کلیک میکنند کلیک دوم با کمی لغزش صورت میگیرد و عملا روی یک آیکون دوبار کلیک نمیشود برای تعیید محدوده لغزش میتوانید مراحل زیر را طی کنید :

به کلید زیر بروید :

HKEY_CURRENT_USER\Control Panel\Desktop

دو داده با عناوین  DoubleClickHeight  و DoubleClickWidth  ایجاد کنید . برای این دو داده محدوده لغزش ماوس را بر مبنای نقطه تعریف کنید حداکثر فاصله این بازه را میتوان 32 در نظر گرفت
..................................................................................

  افزایش زمان محاسبه بیکاری صفحه نمایش :   ( ترفندهاي رجیستری)
 

 


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

ابتدا به کلید زیر بروید :

HKEY_CURRENT_USER\Control Panel\Desktop

 در داده های  Screen SaveLowPowerTimeOut  و ScreenSavePowerOffTimeOut  زمان قطع برق جای گرفته است برای افزایش زمان تا 2 ساعت عدد 7200 را در این دو جای دهید .

 ..................................................................................

جلوگیری از امکان افزودن چاپگر به سیستم :    ( ترفندهاي رجیستری)
 

 

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

HKEY_CURRENT_USER\Softwar\Microsoft\Windows\Current version\plicies\Explorer

داده ای از نوع  DWORD  با عنوان  NoAddPrinter ایجاد کنید و مقدار آن را یک قرار دهید.

 ..................................................................................

  جلوگیری از پاک شدن چاپگر : ( ترفندهاي رجیستری)
 

 

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

به کلید زیر بروید :

HKEY_CURRENT_USER\Software\Micorosft\Windows\Policies\Explorer

داده ای از نوع  DWORD  با عنوان NoDeletePrinter  ایجاد کنید و مقدار آن را یک قرار دهید .

 ..................................................................................

 مخفی نمودن مشخصات چاپگر :   ( ترفندهاي رجیستری)
 

 

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

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Services\Vxd\MSTCP

چنانچه زیر کلید System  وجود ندارد آن را ایجاد کنید داده ای از نوع  DWORD  با عنوان  NoDevMgrPage  ایجاد کرده و مقدار یک را در آن قرار دهید .

 

 تنظیم آستانه کمبود فضای دیسک سخت : ( ترفندهاي رجیستری)
 

 

 

وقتی که فضای یک درایو کمتر از 10 درصد کل فضای آن می رسد اخطاری به شما داده میشود برای تنظیم آن مراحل زیر را طی کنید :

به کلید زیر بروید :

HKEY_LOCAL_MACHINE\Hardware\Description\System

داده ای از نوع  DWORD به نام  DiskSpaceThreshold  ایجاد کرده و مقدار آن را برابر آستانه فضای خالی دیسک قرار دهید

( مثال : Disk Space Threshold = 0x000000025 )

 

 ..................................................................................

 

 مشاهده اطلاعات Bios  :   ( ترفندهاي رجیستری)
 

 

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

HKEY_LOCAL_MACHINE\Hardware\Description\System

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

 

 
 ..................................................................................
 

 امکان جستجوی Wheel  ( چرخ ) ماوس :   ( ترفندهاي رجیستری)
 

 

به کلید زیر مراجعه کنید :

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters

داده ای از نوع DWORD  با عنوان EnableWheelDetection  ایجاد کنید .

برای غیر فعال کرده آن مقدار صفر و برای اتوماتیک کردن آن مقدار یک و برای فعال کردن آن مقدار 2 را قرار دهید .

 

  ..................................................................................

  تنظیمات  Direct Draw  و Direct 3d  :  ( ترفندهاي رجیستری)
 

 

 

به کلید زیر مراجعه کنید ( در صورت عدم وجود  Direct 3d  آن را ایجاد کنید )

HKEY_LOCAL_MACHINE\Software\Microsoft\Direct3D

برای هر یک از مقادیر زیر یک داده  DWORD  ایجاد کنید عدد یک برای این داد ه ها به منزله فعال شدن آنها و عدد صفر به معنای غیر فعال شدن آنهاست :

DisableAGPSupport  : غیر فعال کردن پشتیبانی از  AGP

DisableMMX  : غیر فعال کردن پشتیبانی از دستورالعملهای  MMX 

DisableWiderSurface  : غیر فعال کردن پشتیبانی از صفحه ای عریض تر

DisableInctivate :  لغو پشتیبانی از کارت گرافیکی با پردازش بالا

EnablePrintScreen  : فعال کردن عملکرد دکمه Print Screen  برای عکس  گرفتن

ShowFrameRate : نمایش سرعت پخش فریم در ثانیه

DisableNoSysLock  : فعال کردن وقفه های طولانی مدت در حافظه تصویری

ForceNoSysLock  : فعال کردن وقفه های طولانی مدت در حافظه تصویری

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

 

 

  ..................................................................................

 غیر فعال کردن دکمه  Windows  :    ( ترفندهاي رجیستری)
 

هریک از کلیدهای موجود در صفحه کلید دارای کد نرم افزاری خاص خود میباشند که با طی مراحل زیر میتوانید آنها را فعال یا غیرفعال کنید :

به کلید زیر بروید :

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Keyboard Layout

یک داده باینری با عنوان  ScanCodeMap  ایجاد نمایید

داده زیر را در آن قرار دهید  :

00 00 00 00 00 00 00 00 03 00 00 00 00 00 5B E0 00 5C E0 00 00 00 00

 

  ..................................................................................

 بهینه سازی  MainBoard  و RAM  :    ( ترفندهاي رجیستری)
 

 

با تنظیمات این قسمت میتوانید کذرگاه های  AGP  و  PCI  را بهینه کرده و کارایی حافظه  RAM  را افزایش دهید این کار از طریق کاهش حالت های انتظار صورت میگیرد ابتدا به کلید زیر بروید

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VXD\BIOS

برای کاهش حالتهای انتظار گذرگاه  PCI  داده ای از نوع  DWORD  با عنوان PCIConcur ایجاد کرده و مقدار آن را یک قرار دهید .

 

برای کاهش حالت های انتظارگذرگاه AGP  داده ای از نوع DWORD  با عنوان  AGPConcur  ایجاد کرده و مقدار آن را یک قرار دهید.

 

برای کاهش حالت های انتظار حافظه  RAM  داده ای از نوع  DWORD  با عنوان  FASTDRam  ایجاد کرده و مقدار آن را به یک تغییر دهید سپس کامپیوتر را از نو بوت کنید .

 

  ..................................................................................

 اجرای اتوماتیک محتوای  CD-R  و  DVD-R  :   ( ترفندهاي رجیستری)
 

 

 

به کلید زیر بروید :

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

یک داده از نوع  DWORD  با عنوان  CDAutoRun  ایجاد کنید و مقدار آن را یک قرار دهید

 

 
 ..................................................................................
 

 کاهش انتقال اطلاعات از حافظه Cashe  :   ( ترفندهاي رجیستری )
 

 

در حین فرایند  ShutDown  کردن  Windows  اطلاعات موجود در  Cashe  به دیسک سخت منتقل میشود در این تنظیم زمان انتظار برای انتقال اطلاعات را تغییر میدهیم :

به کلید زیر بروید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\

داده ای از نوع  DWORD  و با عنوان CasheWriteDelay  ایجاد نمایید زمان انتظار خود را به میلی ثانیه وارد کنید ( مثلا 2000 )
 ..................................................................................
 

 تغییر اندازه بافر صفحه کلید :    ( ترفندهاي رجیستری)
 

 

 

اگر در حین راه اندازی کامپیوتر یا کار با صفحه کلید دکمهم ای را فشار دهید و آن را پایین نگه دارید بعد از مدت کوتاهی صدایی از بلندگوی کامپیوتر به نشانه پر شدن بافر صفحه کلید به گوش میرسد در زیر نحوه تنظیم اندازه این بافر را بررسی میکنیم :

به کلید زیر بروید :

HKEY_LOCAL_MACHINE\System\CurrentContolSet\Services\Kbdclass\Parameters

محتوای داده  KeyBoardDAtaQueueSize  را طوری تغییر دهید تا اندازه بافر دلخواه شما به دست آید سپس کامپیوتر را  reset  کنید /

 

  ..................................................................................

 تغییر اندازه بافر ماوس :   ( ترفندهاي رجیستری)
 

 

به کلید زیر بروید :

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Parameters

محتوای داده  MouseDataQueueSize  را طوری تغییر دهید تا اندازه بافر دلخواه خود را بدست آورید

 ..................................................................................

  کنترل ویژگیSnap To    ( جهش ) در ماوس :   ( ترفندهاي رجیستری)
 

 

 

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

HKEY_CURRENT_USER\ControlPanel\Mouse

داده ای از نوع رشته ای و با نام  SnapToDefaultButton ایجاد کنید .

از مقدار 1 برای فعال کردن و مقدار 0 برای غیر فعال کردن آن استفاده کنید .

نوشته شده توسط  علی مهاجر |نظر دهید
 ..................................................................................

 تنظیم سرعت پورت   PS2ماوس  :   ( ترفندهاي رجیستری)
 

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

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters

داده ای از نوع  DWORD  با عنوان SampleRate  ایجاد کنید .

بسته به سرعت مورد نیاز خود عددی بین 60 تا 200 وارد کنید .

 



  ..................................................................................

 تعریف حافظه کش بزرگ :    ( ترفندهاي رجیستری)
 

به کلید زیر مراجعه کنید :

 

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session

 

در صورت عدم وجود داده ای از نوع  DWORD  با عنوان LargeSystemCache  ایجاد کنید

برای کامپیوترهای عادی مقدار صفر و برای کامپیوترهای سرویس دهنده مقدار 1 را در این داده جای دهید

 


  ..................................................................................

 مخفی کردن Recycle Bin در ويندوز XP   ( ترفندهاي رجیستری)
 

 

اگر دقت کرده باشيد , متوجه شده ايد که تنها ايکونی که در دسکتاپ ويندوز XP قابل مخفی کردن نيست Recycle Bin  است. برای مخفی کردن اين ايکون وارد محيط رجيستری شويد و به کليد زير برويد:

HKEY_CURRENT_USERSoftwareMicrosoftCurrent VersionExplorerHideDesktopIcons

اگه چنين کليدی وجود نداشت انرا خودتان بسازيد(فقط کوچک يا بزرگ بوند حروف مهم است) سپس از منو Edit گزينه  New را انتخاب کنيد و يک مقدار DWORD Value با نام:      {645FF040-5081-101B-9F08-00AA002F954E}     بسازيد و به ان مقدار يک را اختصاص دهيد.سپس به دسکتاپ برگرديد و کليد F5  را فشار دهيد با اين کار  Recycle Bin بايد مخفی شده باشد اما اگر اينطور نشد  ..... دوباره وارد رجيستری بشید و اين بار در اين زير شاخه :

HKEY_CURRENT_USERSoftwareMicrosoftCurrent VersionExplorerHideDesktopIcons

يک کليد جديد به نام :  ClassicStartMenu بسازيد و در داخل اين همون مقدار بالايی را بسازيد و کارای بالا را روش انجام بديد. اين بار ديگه مطمئنا ايکون Recycle Bin مخفی شده است

 ..................................................................................

 حذف Folder Options از My Computer و Control Panel   ( ترفندهاي رجیستری)
 

 حذف Folder Options براي اينه كه بعضي ها بخوان كسي تو اين قسمت از تنظيمات ويندوزشون دستكاري نكنه . براي اين كار عمليات زير رو انجام بديد :

1- از منوي Start گزينه ي Run رو انتخاب كنيد و در كادر درون پنجره ي Run تايپ كنيد Regedit و اينتر بزنيد .

2- حال به آدرس زير برويد :

HEKY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Policies > Explorer

3- پس از اين كه به آدرس بالا رفتيد با راست كليك در سمت راست پنجره يك داده از نوع Binary value ايجاد كنيد و نام آن را NoFolderOptions بگزاريد .

4- حال اين داده را باز كنيد و مقدار آنرا 01 00 00 00 بگزاريد .

5- ويندوز را Restart يا Log off كنيد .

 براي ايمكه دوباره Folder Options رو ظاهر كنيد به آدرس گفته شده برويد و داده اي را كه ساختيد حذف كنيد .

موفق باشيد .



 
 ..................................................................................
 

 رايت سي دي در ويندوز XP بدون هيچ نرم افزاري   ( ترفندهاي ويندوز )
 

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

 براي اين كار توي هارد كامپيوترتون روي فايلهايي كه مي خواهيد رايت كنيد راست كليك كنيد . بعد به منوي Send To بريد و گزينه ي CD �RW Drive رو انتخاب كنيد . ( سعي كنيد اول همه ي فايل هايي كه مي خوايد رايت كنيد تو يه پوشه جمع كنيد ، بعد همشو با هم Send كنيد )

حال به درايو رايتر خود برويد . از منوي سمت چپ صفحه گزينه ي Write these files to CD رو انتخاب كنيد. حال پنجره ي CD writing wizard باز مي شود . نام  CDرا در قسمت CD name  بنويسيد و دكمه يnext  را بزنيد تا رايت CD شروع شود .

موفق باشيد .



 نوشته شده توسط علی مهاجر | نظر دهید
 
 


  ..................................................................................

 حذف تبليغات در ياهو مسنجر   ( ترفندهاي رجیستری)
 

 معمولا براي حذف تبليغات در مسنجر برنامه هايي طراحي شده ولي با اين روش كه من مي گم مي تونيد بدون برنامه و از طريق ريجستري ويندوز اين تبليغات رو حذف  كنيد :

 خوب براي حذف اين تبليغات  ابتدا از منوي Start گزينه ي Run رو انتخاب كنيد و در پنجره ي باز شده تايپ كنيد Regedit . سپس وارد مسير زير شويد.

HKEY_CURRENT_USER > Software > Yahoo > Pager > YUrl

دومتغير از نوع String Value  با نامهای Chat Adurl و Conf Adurl بسازيد و مقادير اين دو متغير را :file:///C قرار دهيد.
حال وارد چت روم ياهو مسنجر شويد.
در صورتيکه از نسخه های جديد ياهو مسنجر استفاده می کنيد بعد زدن کليد Enter Chat در چت روم ممکن است با يک پيغام خطا روبرو شويد . در اين صورت روی آن کليک کنيد و از شر تبليغات زير چت روم ها خلاص شويد .

موفق باشيد .



 نوشته شده توسط علی مهاجر | نظر دهید

 ..................................................................................
 

 غیب کردن پوشه با روشی جدید و مطمئن   ( ترفندهاي رجیستری)
 

 شاید شما هم برای غیب کردن پوشه هاتون از طریق Hidden استفاده می کنید . ولی در این صورت هر کی می تونه با رفتن به آدرس زیر فایل ها و پوشه های غیب شده ی شما رو ببینه:

Tools > Folder Option > view > show hidden files and folders

 برای اینکه  فولدری رو غیب کنید که فقط خودتون از غیب بودنش خبر داشته باشید باید به روش زیر عمل کنید . اول پوشه ی مورد نظر خود رو به حالت Rename در بیارید . سپس دکمه ی Alt رو پایین نگه داشته و عدد 0160 را تایپ کنید و اینتر بزنید. خوب الان پوشه ی شما بی نام شد. برای اینکه آیکونش رو هم غیب کنید ، روی پوشه راست کلیک کنید و Properties رو کلیک کنید . سپس از پنجره ی باز شده روی تب Customize کلیک کنید و بعد روی دکمه ی Change icon کلیک کنید. در میان آیکون ها یک فضای خالی هست در صورتی که این فضای خالی خودش یه آیکونه . اونو انتخاب می کنید و پنجره ها رو OK می زنید. حال پوشه ی شما غیب شده  و دیگه کسی نمی تونه پوشه ی شما رو باز کنه مگر اینکه شانسکی روی اونجا که پوشه ی غیب شده هست و چیزی معلوم نیست دو بار کلیک کنه که طبق قضایای ریاضی احتمال اون یک میلیاردم هست .

موفق باشید .



 


  ..................................................................................

 ایجاد یک شورتکات برای قفل کردن کامپیوتر   ( ترفندهاي ويندوز )
 

 تا حالا به این فکر کردید که با ایجاد یک فایل شورتکات به راحتی و با سرعت بیشتر از حالت عادی کامپیوتر خود رو به حالت Lock ببرید ؟ برای انجام این کار بر روی صفحه نمايش خود Right-Click کنيد و از Shortcut گزینه ی New را انتخاب کنيد. سپس در پنجرهای که ظاهر می شود در قسمت Type the location of the item فرمان زير را کپی کنید :

 rundll32.exe user32.dll,LockWorkStation

بعد از این کار Next را بزنيد و نام Shortcut را وارد کنيد و  در آخر دکمه ی Finish را بزنيد.
حال برای آزمایش می تونید اونو اجرا کنید. می بینید که کامپیوتر به حالت قفل شدن رفته .

موفق باشید .



 نوشته شده توسط علی مهاجر | نظر دهید

 نحوه برداشتن علامت فلش از روي شورتكات   ( ترفندهاي ويندوز )
 

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

 

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

1- در دیسکتاپ کامپیوترتان روی Start کلیک کرده و گزینه ی Run رو انتخاب کنید .

2- در کادر درون پنجره ی Run دستور Regedit رو تایپ کنید و اینتر بزنید.

 3- به آدرس زیر بروید :

HKEY_CLASSES_ROOT > lnkfile


4- در سمت راست پنجره ی ، گزينه ی IsShortcut  را می بینید. روی آن راست کلیک کرده و از منوی باز شده Rename را انتخاب کرده و نام آن را به IsShortcutOld تغیر دهید، یعنی بعد از آن - بدون فاصله -  کلمه ی Old را تایپ کنید .

5- کامپیوتر خود را Restart یا Log off کنید .

6- حالشو ببرید.







برنامه عکس گرفتن از صفحه

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



















...................................................................................................................
نرم افزار پنکه

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

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

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














....................................................................................................................

تقویم شمسی 1390

این تقویم کارش توپه خودم ساختمش اول ببینین بعدش نظر یادتون نره .

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

لینک دانلود با حجم 5,806

 








....................................................................................................................
این بارنامه رو واسه موقعی که ویروس هایی که پوشه های شمارو مخفی سیستمی

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

فقط یک دکمه .خیلی به درد میخوره حتما دانلودش کنین

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







...................................................................................................................

شاید بعضی ها فکر کنند که ای برنامه به چه دردی میخوره .

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

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

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

بدن مثل برنامه نوشتن . بعد هم حتما باید تو دفتری چیزی اون

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

عکس بگیرین . حالا دیدین ..

لینک دانلود با حجم کم 









.................................................................................................................






گزارش تخلف
بعدی