پروژه رایگان :: انجمن http://www.freeproject.ir/ پروژه دانشجویی - پروژه دانش آموزی - پایان نامه :: XOOPS Community Bulletin Board Wed, 08 Sep 2010 07:24:05 +0700 http://backend.userland.com/rss/ X-Forum 4.06 تالارهای گفتگو goodarzipour@yahoo.com goodarzipour@yahoo.com fa پروژه رایگان :: انجمن http://www.freeproject.ir/modules/xforum/images/xoopsxf_slogo.png http://www.freeproject.ir/ 92 52 پاسخ به: در موردچند برنامه با matlab 2007راهنمایی میخوام؟ [توسط goodarzipour] http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=46&forum=4 گرافیکی:: در موردچند برنامه با matlab 2007راهنمایی میخوام؟<br /> سلام<br />برای سوال سوم بترتیب زیر عمل کنید:<br /><br />1- اول عکس را با این کد از ورودی بگیرید:<br /><br /><div class="xoopsCode"><code><pre>f=imread(‘C:\picture.jpg’) </pre></code></div><br /><br />2- Thu, 22 Jul 2010 21:28:11 +0700 http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=46&forum=4 پاسخ به: سورس كد بازي منچ در VB [توسط atieh] http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=24&forum=8 برنامه نویسی:: سورس كد بازي منچ در VB<br /> من نمیتونم سورس کد بازی منچ وباز کنم دلیلش چیه؟؟؟؟؟اصلا فولدری و که دانلود کرده باز نمیکنه Mon, 23 Nov 2009 08:54:40 +0700 http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=24&forum=8 مساله 8 وزیر در اسمبلی [توسط goodarzipour] http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=45&forum=8 برنامه نویسی:: مساله 8 وزیر در اسمبلی<br /> مساله 8- وزیر یا n-وزیر به این صورت است که در یک صفحه ی شطرنج 8*8 (یا n*n در مساله n-وزیر) ، چطور می توان 8 وزیر ( که حرکتهای مجاز وزیر شطرنج را دارد) را قرار داد، به نحوی که هیچکدام دیگری را گارد نکند.<br /><br />برای این مساله، در زبان اسمبلی، کدی آماده کردم که به درخواست دوستان در این انجمن قرار می دهم. این لینک نیز مقاله ای است که کاملتر در مورد این مساله توضیح می دهد <a href="http://faculty.cs.tamu.edu/klappi/arch/Lab4.pdf" target="_blank">لینک</a><br /><br />کد مساله ی n-وزیر به زبان اسمبلی :<br /><br /><br /><span style="color: #000066;"><br /><div class="xoopsCode"><code><pre> ; queens.asm ; ; The n queens problem, in nasm. ; Solves the n-queens problem by a depth-first tree search. ; Board symmetries are not considered. ; ; Output format: ; Solutions are printed as a sequence of n integers. Each integer ; gives the position of a queen in a column. For example, for n=8, ; the output line ; 1 5 8 6 3 7 2 4 ; means that queens are placed (using standard chess notation) on ; squares a1, b5, c8, d6, e3, f7, g2 and h4. ; ; Notes: ; The code assumes that n is at most 20. To increase this limit, change ; the value specified for the constant NMAX and rebuild. The code is ; naive, so don&#039;t expect fast results for even moderately large n. ; ; To assemble/link in windows under Cygwin: ; nasm -o queens.o -f win32 queens.asm ; gcc -o queens queens.o ; ; Not tested in other platforms. If you test the code in other ; platforms, or have comments or suggestions, please contact the ; author. ; ; Author: L. Felipe Martins ; luizfelipe.martins@gmail.com www.FreeProject.ir section .data NMAX equ 20 ; Maximum board size board times NMAX dd 0 ; The board nsols dd 0 ; Number of solutions ; Formats for input and output promptn db &#039;Enter number of queens (an integer): &#039;,0 fmtintr db &#039;%d&#039;, 0 fmtintw db &#039;%d &#039;, 0 promptyn db &#039;Print all solutions (y or n)? &#039;, 0 fmtstr db &#039;%s&#039;, 0 msgerryn db &#039;Error: invalid input&#039;, 10, 0 msgerrint db &#039;Error: invalid integer&#039;, 10, 0 fmtnsol db &#039;Number of solutions: %u&#039;, 10, 0 fmtnl db 10, 0 section .bss n resd 1 ; Board size bprt resd 1 ; Indicator for printing solutions buffer resb 128 section .text global _main extern _printf, _scanf _main: enter 0, 0 push promptn ; Prompt for n and read it call _printf add esp, 4 push n push fmtintr call _scanf add esp, 8 cmp dword [n], 0 ; Check n for correct range jle invalid_n cmp dword [n], NMAX jle get_yn invalid_n: push msgerrint call _printf add esp, 4 mov eax, 1 jmp finish get_yn: push promptyn ; Prompt for y/n and read it call _printf add esp, 4 push buffer push fmtstr call _scanf add esp, 8 mov dword [bprt],1 ; Set bprt according to y/n mov al, [buffer] cmp al, &#039;y&#039; jz start_search cmp al, &#039;Y&#039; jz start_search cmp al, &#039;n&#039; jz set_bprt_0 cmp al, &#039;N&#039; jz set_bprt_0 push msgerryn ; Invalid input for y/n call _printf add esp, 4 mov eax, 1 jmp finish set_bprt_0: mov dword [bprt], 0 ; Search for solutions starts here ; ebx points to the column where a new queen ; is being placed start_search: mov ebx, 0 cont_search: mov eax,[4*ebx+board] ; Increment row inc eax cmp eax, dword [n] ; Check if row &lt;= n jle check_board dec ebx ; Return to previous column cmp ebx, 0 ; If ebx &lt; 0, search is finished jnge near search_finished jmp cont_search check_board: mov [4*ebx+board],eax ; Check if last queen does cmp ebx, 0 ; not attack other queens je accept_board mov ecx, ebx mov edx, [4*ecx + board] mov esi, board cld test_loop: lodsd sub eax, edx ; Check if queens are in same row jz cont_search cmp eax, 0 jg eax_positive neg eax eax_positive: sub eax, ecx ; Check if queens are in same diagonal jz cont_search loop test_loop accept_board: inc ebx ; Go to next column cmp ebx, [n] ; If ebx==n, found a solution jz found_solution mov dword[4*ebx+board],0 jmp cont_search found_solution: inc dword [nsols] ; Increment solution count dec ebx ; Continue search in last column cmp dword [bprt], 0 ; Check if solution should be printed jz cont_search mov ecx, [n] ; Print solution mov esi, board print_loop: push ecx lodsd push eax push fmtintw call _printf add esp, 8 pop ecx loop print_loop push fmtnl ; print new line call _printf add esp, 4 jmp cont_search search_finished: push dword [nsols] ; Print number of solutions push fmtnsol call _printf add esp, 8 mov eax, 0 finish: leave ret </pre></code></div></span> Sat, 11 Jul 2009 03:53:34 +0700 http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=45&forum=8 پاسخ به: سورس اسكرين سيور در اسمبلي [توسط goodarzipour] http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=25&forum=8 برنامه نویسی:: سورس اسكرين سيور در اسمبلي<br /> با عرض معذرت <img src="http://www.freeproject.ir/uploads/smil3dbd4e398ff7b.gif" alt="" /> <br />رمزش اینه : <b>freeproject.ir</b> Sat, 11 Jul 2009 03:20:28 +0700 http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=25&forum=8 کارکردن با رشته‌ها و متن‌ها در ASP.NET [توسط goodarzipour] http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=44&forum=8 برنامه نویسی:: کارکردن با رشته‌ها و متن‌ها در ASP.NET<br /> <b>اغلب متن‎هایی که کاربران یک سایت توسط فرم‌ها ارسال می‌کنند و یا اطلاعاتی که از یک بانک دریافت می‌شود، نیاز به بررسی و یا اعمال تغییرات دارند. در این مقاله با برخی توابع و امکانات ASP.NET برای کارکردن با رشته‎ها یا به تعبیری دیگر string‎ها آشنا می شویم. <br />بیشتر برنامه‎های کامپیوتری تنظیمات خاص خود را در قالب مفهومی بنام Setup نگهداری می‎کنند. برنامه‎های ASP.NET هم از این قاعده مستثنی نیستند و می‎توان کلیه تنظیمات وب سایت را در قالب یک فایل از جنس XML بنام Web.Config نگهداری کرد. </b> <br />همانطور که اشاره شد، شئ IrMail شئ‎ای است برای ارسال نامه ها از طریق برنامه های تحت دات نت. در زیر مزیت ها و توانایی های این شئ بررسی شده است تا بتوان دیدی صحیح تر نسبت به آن پیدا کرد.<br /><br /><b>مزیت های شئ IrMail</b><br /><br /><br /><b>امکان ارسال نامه با قابلیت Authentication</b><br /><br />همانطور که ذکر شد، شئ ذاتی NET. بدلیل سادگی آن، قابلیت Authentication (شناسائی) را به ما نمی دهد. اما برخی اوقات سرویس دهنده های SMTP ما را مجبور می کنند تا قبل از ارسال نامه، خود را معرفی (login) کرده و یا به اصطلاح Authenticate شویم. در IrMail این مساله بخوبی پیاده سازی شده است. به صورتی که با تنظیم دو خصیصه username و password عملیات Authentication به سادگی انجام می شود.<br /><br /><b>امکان ارسال نامه های فارسی بدون نگرانی از نحوه خوانده شدن</b><br /><br />این مورد نیز یکی از امکانات بالقوه این شئ می باشد که در نوع خود تقریبا جدید و منحصر بفرد است. این ویژگی که تحت عنوان UTF8AnyWhere ذکر می شود، باعث می شود نامه های شما در هر جایی که UTF8 را پشتیبانی می کند حتما به صورت فارسی دیده شود. از آنجا که امروزه تقریبا تمام سیستم عامل ها از استاندارد یونیکد پشتیبانی می کنند، عدم توانایی خواندن نامه های فارسی بسیار کم می شود. بطور واضح آنکه به همان اطمینانی که شما سایت خود را بصورت یونیکد طراحی می کنید تا فارسی دیده شدن آن تضمین شود، همین تضمین نیز برای درست خوانده شدن نامه های شما بوجود می آید. به بیان ساده تر هرجا سایت شما فارسی دیده شود، این تضمین هست که نامه های شما نیز فارسی دیده شود. نکته دیگر اینکه نامه های شما در هر نوع Encodingای که قرار داده شده باشد، بازهم فارسی دیده می شود و لزومی نیست که حتما Encoding نامه بصورت UTF8 باشد. بنابر آنچه گفته شد، نامه های شما چه در Hotmail، چه در Yahoo و چه در هر سرویس دهنده دیگری حتما فارسی دیده می شود. استفاده از این ویژگی بسیار ساده است و با True کردن property مربوطه، کلیه عملیات لازم برای این کار به صورت خودکار انجام می شود.<br /><br /><b>تضمین ارسال تمامی نامه ها حتی در صورت قطع بودن موقتی سرویس دهنده SMTP</b><br /><br />مشکل دیگری که کما بیش سایت های مختلف با آن مواجه هستند، قطع شدن موقتی SMTP Server می باشد. مثال زیر را در نظر بگیرید. در بعضی مواقع سرویس دهنده SMTP بنا به دلایل مختلفی برای مدتی (هرچند کوتاه) قطع می شود و از آنجا که اکثر میزبانها برای یک خرابی جزیی خود را لازم به توضیح نمی بینند، بنابراین شما از این وضعیت مطلع نخواهید شد و درنتیجه قادر نخواهید بود که اقدامی را در این زمینه انجام دهید. البته همیشه هم تقصیر بر گردن میزبانها نیست و گاهی خود سرور با مشکل مواجه می شود. شاید این مشکل در نگاه اول جدی به نظر نرسد. اما اگر در همین زمان یک شرکت بزرگ قصد داشته باشد به شما پیشنهاد همکاری دهد و از طریق صفحه “تماس با ما” و از طریق فرم تهیه شده در آن، قصد ارسال نامه ای به شما را داشته باشد چه رخ خواهد داد؟ خوب عملا این نامه هرگز ارسال نخواهد شد و شاید شما یک موقعیت استثنایی را به همین سادگی از دست بدهید!<br /><br />در طراحی شئ IrMail این مشکل عملا از بین رفته است. چرا که در صورت عدم امکان ارسال نامه توسط سرویس دهنده SMTP در آن لحظه، نامه مذکور را ذخیره کرده و در تماس بعدی با سرویس دهنده SMTP، (در صورت فعال بودن آن) سعی در ارسال مجدد نامه های ارسال نشده خواهد کرد. بدین ترتیب حتی اگر SMTP Server برای مدت مدیدی هم قطع باشد، دیگر شما نگران از دست دادن هیچ نامه ای نخواهید بود. این مورد برای تمام نامه هایی که از طریق این شئ ارسال و یا دریافت می شوند صدق خواهد کرد. در طراحی این فرآیند، نکات زیر رعایت شده است:<br /><br />۱- فایل حاوی نامه های ذخیره شده از نوع XML می باشد. بنابراین حتی اگر درآینده NET. بر روی سرور Linux و یا حتی هر سرور دیگری ارایه شد، با مشکل مواجه نمی شود. چراکه XML یک استاندارد است که بر فایل های ساده متنی متکی است.<br /><br />۲- از آنجا که ظرف ذخیره سازی، یک فایل متنی ساده است، از مدیریت و کنترل دسترسی های همزمان در آن خبری نیست. بدین معنی که اگر SMTP Server فعال نبود و در آن واحد دو کاربر قصد ارسال نامه را داشتند، به احتمال زیاد منبع مورد نظر بهم می ریزد (Not thread-safe). در اینجا نیز مشکل برطرف شد و این مدیریت با توجه به امکاناتی که NET. در کنترل منابع همزمان فراهم کرده است ایجاد شده است ( برای اطلاعات بیشتر به مقاله Threadها در ASP.NET مراجعه کنید). بدین ترتیب دسترسی های همزمان مشابه آنچه در DBMS ها رخ می دهد، امکان پذیر است.<br /><br /><b>نمونه ای از نحوه استفاده از شئ IrMail</b><br /><br />از آنجا که این شئ در هر بار ایجاد نیاز به تنظیمات خاصی دارد (مثلا Username ،Password، محل دخیره سازی نامه های ارسال نشده و…) که برای هر سایت منحصربفرد است، پیشنهاد می شود که به صورت زیر عمل شود.<br /><br />یک کلاس از کلاس IrMail.Mail را به ارث برده و تنظیمات خاص خود را در سازنده (Constructor) آن قرار دهید. در هنگام نیاز به ارسال نامه فقط کافی است یک نمونه از کلاس ارث بری شده را ایجاد کنید (نمونه ای از این ارث بری در زیربه زبان VB.NET نشان داده شده است).<br /><br /><div class="xoopsCode"><code><pre>Public Class MySmtpMail Inherits IrMail.Mail Public Sub New() MyBase.New(HttpContext.Current.Server.MapPath(”&quot;) )</pre></code></div><br /><br />مقدار پارامتر سازنده کلاس IrMail.Mail محل مکانی را نشان می دهد که می خواهید نامه های ارسال نشده در آنجا ذخیره شود. در این مثال محل دخیره سازی را برابر با دایرکتوری ریشه سایت قرار دادیم . شما می توانید جهت امنیت بیشتر، این محل را تغییر و به مکان دیگری منتقل کنید (بطور مثال دایرکتوری محل ذخیره DBها که معمولا fpdb می باشد).<br /><br /><div class="xoopsCode"><code><pre>Me.SMTPserver = “YourSMTPServer” Me.PickUpDirectory = “c:\inetpub\mailroot\pickup” خصیصه فوق (PickUpDirectory) مورد نیاز SMTP Server می باشد. Me.UserName = “YourUsername” Me.Password = “YourPassword”</pre></code></div><br /><br />موارد فوق از آن جهت نیاز است که بتوانید نامه های ارسالی خود را از طریق سرویس دهنده هایی که نیاز به Authentication دارند نیز ارسال نمائید. در صورتیکه سرویس دهنده شما نیازی به Authentication ندارد، نیازی به تعیین نام کاربری و کلمه رمز ندارید.<br /><br /><div class="xoopsCode"><code><pre>Me.UTF8AnyWhere = True</pre></code></div><br /><br />این خصیصه باعث می شود نامه شما در همه جا فارسی دیده شود. در صورتی که نامه شما انگلیسی است، می توانید این خصیصه را false قرار دهید. مقدار پیش فرض آن نیز false است.<br /><br /><div class="xoopsCode"><code><pre>Me.LoadSharedObject4WebApplication(HttpContext.Current)</pre></code></div><br />استفاده از دستور فوق همیشه اجباری است و باید به همین صورت باشد. در صورتی که دستور فوق ذکر نشود، مکن است شئ شما با مشکل مواجه گردد.<br /><br /><div class="xoopsCode"><code><pre>End Sub End Class</pre></code></div><br />حال هرجا در سایت خود قصد داشتید که نامه ای را ارسال کنید، کافیست یک نمونه از کلاس فوق را ساخته و سایر خصوصیات آنرا تنظیم نمایید. به عنوان مثال:<br /><br /><div class="xoopsCode"><code><pre>Dim ObjMailer As New MySmtpMail () ObjMailer.From = “EveryOne@Server.Com” ObjMailer.To= “EveryOne@AnotherServer.Com” ObjMailer.Subject = “New Email Object” ObjMailer.Body= “The body of your mail in each language” ObjMailer.Send()</pre></code></div><br /><br />و بدین ترتیب نسبت به ارسال نامه خود اقدام کنید. نمونه برنامه کامل را می توانید از آدرس <a href="http://www27.brinkster.com/mahmoud690/irmail/sample.htm" target="_blank">http://www27.brinkster.com/mahmoud690/irmail/sample.htm</a> دریافت کنید.<br /><br /><b>توجه:</b> متد IrMailMail.Send دارای یک پارامتر اختیاری است که به صورت پیش فرض true می باشد. اگر آنرا به false تنظیم کنید بدین معنی است که اگر smtp server فعال نبود، لازم نیست آنرا ذخیره کند (غیر فعال کردن ویژگی آخر). این مورد در مواردی کاربرد دارد که ارسال شدن یا نشدن نامه برای شما آنقدر اهمیت نداشته باشد.<br /><br /><b>نکته آخر: … مجانی به همراه کد! (Free And OpenSource)</b><br /><br />این شئ برای همه به صورت مجانی قابل دریافت و استفاده است. در ضمن کدهای این کلاس به صورت مجانی نیز قابل دریافت است. این بدین معنی است که شما می توانید کدها را مشاهده کرده و آنها را مطابق میل خودتان دستکاری و استفاده نمایید (OpenSource). این شئ بر روی لیست اشیا مایکروسافت نیز ثبت شده است و امیدوار هستیم این شئ به عنوان اولین شئ ایرانی که در این لیست ثبت شده باعث گردد دوستان دیگر نیز نسبت به ثبت اشیا خود در آن اقدام کنند، چراکه این لیست به عنوان یک کاتالوگ معتبر اشیا NET. در نزد برنامه نویسان مطرح است و مسلما وجود اشیا مختلف از برنامه نویسان ایرانی و با نام ایران، اعتبار سایت و برنامه نویسان ایرانی را در نزد دیگران افزایش خواهد داد.<br /><br />نهایت آنکه اهداف من از Opensource قرار دادن کلاس فوق به صورت زیر است:<br /><br />- مسلما این شئ نه آنقدر کامل و بی عیب است و نه دانش من در این زمینه به اندازه کافی کامل و تخصصی است که بخواهم آنرا بصورت تجاری ارایه دهم. ضمن آنکه امکانات آنرا نیز ندارم.<br />- با opensource قرار دادن آن، امکان کمک و یاری گرفتن از سایر دوستان را نیز فراهم کرده ام. ضمن آنکه اینگونه برنامه ها امتحان خود را پس می دهند.<br />- و نهایت آنکه باز کردن کدهای NET. از روی فایل های Exe یا Dll آنها بسیار ساده است!<br /><br />بطور خلاصه آنکه این شئ متعلق به خود شماست و از همینجا از تمامی دوستانی که در این زمینه فعالیت دارند درخواست دارم که با استفاده از این شئ و یافتن نقاط ضعف و کاستی ها و کمبودهای آن من را در جهت تکمیل آن یاری دهند. در مقابل هم تنها کاری که از دست من در برابر لطف این دوستان برمی آید این است که نام آنها را به عنوان یکی از برنامه نویسان و یا debuggerهای آن ذکر کنم.<br /><br />آدرس سایت انگلیسی:<br /><a href="http://www27.brinkster.com/mahmoud690/irmail" target="_blank">http://www27.brinkster.com/mahmoud690/irmail</a><br />آدرس مستقیم Download شئ کامپایل شده:<br /><a href="http://www27.brinkster.com/mahmoud690/irmail/downloadAssembly.htm.htm" target="_blank">http://www27.brinkster.com/mahmoud690/irmail/downloadAssembly.htm.htm</a><br />آدرس مستقیم Download کدهای برنامه:<br /><a href="http://www27.brinkster.com/mahmoud690/irmail/Download-source.htm" target="_blank">http://www27.brinkster.com/mahmoud690/irmail/Download-source.htm</a><br />آدرس این شئ در کنترل گالری سایت رسمی ASP.NET:<br /><a href="http://www.asp.net/ControlGallery/ControlDetail.aspx?Control=1918&tabindex=2" target="_blank">http://www.asp.net/ControlGallery/ControlDetail.aspx?Control=1918&tabindex=2</a><br /><br />منبع: IDN Sun, 05 Jul 2009 04:33:01 +0700 http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=44&forum=8 بررسی کوکی‌ها (Cookies) و جلسات (Sessions) در ASP.NET [توسط goodarzipour] http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=43&forum=8 برنامه نویسی:: بررسی کوکی‌ها (Cookies) و جلسات (Sessions) در ASP.NET<br /> در این مقاله ابتدا به بررسی کوکی‌ها (Cookies) پرداخته و سپس جلسات (Sessions) را بررسی خواهیم کرد. به دلیل نزدیکی بسیار زیاد این دو مفهوم تصمیم گرفتم همه آنها را در یک مقاله جمع‌آوری کنم. اگر مفاهیم فوق را به درستی درک کنید و طرز استفاده از آنها را یاد بگیرید، می توانید به قدرت برنامه‌های کاربردی وب خود بیفزایید. اما استفاده نابجا از این مفاهیم در وب سایتهای مختلف می تواند به شدت روی عملکرد سایت تاثیر گذاشته و از مخاطبان و کارایی آن بکاهد. در نتیجه با مطالعه این مقاله در مورد این دو مفهوم، باید بتوانید تصمیم بگیرید که کدامیک برای وب سایت شما مناسب‌تر می باشد. در هر حال مثال‌هایی را در این مقاله خواهید دید که به طور حتم به شما کمک زیادی خواهند کرد. لازم به ذکر است که بیشتر سعی در انتقال مفاهیمی کرده‌ام که پایه کار نمی باشند و سعی کردم به بیان نکاتی بپردازم که راحت پیدا نمی‌شوند.<br /><br /><b>کوکی‌ها (Cookies)</b><br />استفان والتر در کتاب ASP.NET Unleashed در ابتدای بخش کوکی‌ها اینگونه می‌گوید: “پروتکل HTTP هیچ امکانی را در اختیار وب سرور قرار نمی‌دهد تا بتواند به کمک آن تشخیص دهد درخواست جدید از همان مرورگری صادر شده که در خواست قبلی را فرستاده یا از مرورگر دیگری آمده است. از این جهت به HTTP صفت ناپایداری (Stateless) را میدهند. از نقطه نظر وب سرور هر درخواستی که برای دریافت یک صفحه صادر شده است از طرف کاربری جدید ارسال شده است.” این به طور قطع آن چیزی نیست که ما می خواهیم! وقتی می‌خواهیم اطلاعات کاربر را در هر صفحه به او نشان بدهیم (از قبیل شناسه کاربری، کلمه عبور، سبد خرید و…) باید بتوانیم وضعیت آن را حفط کنیم یکی از راههای بسیار خوب در این زمینه استفاده از کوکی‌ها می‌باشد.<br /><br />اولین بار Netscape کوکی‌ها را در مرورگر خود به کار برد و به تدریج کنسرسیوم وب (W3C) نیز آن را پذیرفت و امروزه اکثر مرورگرها از کوکی‌ها پشتیبانی می کنند. بر اساس مستندات اولیه Netscape، یک کوکی نمیتواند حجمی بیشتر از ۴ کیلوبایت داشته باشد و با بستن صفحه مرورگر کوکی‌ها نیز از بین می روند. البته نگران نباشید اینها کوکی‌هایی هستند که پارامتر Expires آنها تنظیم نشده است. اما اگر این پارامتر را تنظیم کنید، کوکی‌ها باقی مانده و دائمی می شوند. اما تا کی؟ تا آن تاریخی که در خاصیت Expires تنظیم کرده‌اید. مرورگرهایی که می توانند با کوکی‌ها کار کنند دارای چند فایل ویژه می‌باشند که در ویندوز به آنها فایل‌های کوکی و در مکینتاش فایل‌های جادویی می گویند. کوکی‌ها از طریق هدرهای HTTP بین مرورگر و سرور جابجا می شوند. سرور با استفاده از هدر Set Cookie یک کوکی جدید ایجاد کرده و در درخواست‌های بعدی این کوکی به سرور فرستاده می شود.<br /><br />در مقاله‌ای از سایت ASPFREE در مورد خواندن و نوشتن کوکی‌ها اینگونه نوشته شده است: “برای نوشتن کوکی یک شیئ جدید HttpCookie بسازید و مقدار یک رشته را به آن اختصاص دهید (به خاصیت Value آن) و سپس متد ()Add را در Response.Cookies فرا بخوانید. شما همچنین می توانید مقدار Expires را به یک مقدار تاریخ تغییر دهید تا زمان انقضاء برای کوکی‌تان تایین کرده باشید.”<br /><br />باید توجه داشته باشید که کوکی‌ها فقط مقادیر رشته‌ای را ذخیره می کنند و برای نوشتن مقادیر دیگر در کوکی‌ها باید هر آنها را به یک رشته تبدیل کنید. این کد از سایت CodeToad برای یادگیری نحوه استفاده کوکی‌ها بسیار مناسب می باشد:<br /><br /><div class="xoopsCode"><code><pre>Using System.Web; // نوشتن Response.Cookies[&quot;BackgroundColor&quot;].Value = &quot;Red&quot;; // خواندن Response.Write(Request.Cookies[&quot;BackgroundColor&quot;].Value);</pre></code></div><br /><br />به دلایل امنیتی شما می‌توانید فقط کوکی‌هایی را بخوانید که از یک دامنه آمده باشند. همچنین ممکن است شما نیاز به کوکی‌هایی داشته باشید که چند آیتم را در خود نگهداری کنند، یک مثال برای این کار در زیر می بینید:<br /><br /><div class="xoopsCode"><code><pre>HttpCookieCollection cookies = Request.Cookies; for (int n = 0; n &lt; cookies.Count; n++) { HttpCookie cookie = cookies[n]; Response.Write(&quot;&lt;hr/&gt;Name: &lt;b&gt;&quot; + cookie.Name + &quot;&lt;/b&gt;&lt;br /&gt;&quot;); Response.Write(&quot;Expiry: &quot; + cookie.Expires + &quot;&lt;br /&gt;&quot;); Response.Write(&quot;Address1: &quot; + cookie.Address1+ &quot;&lt;br /&gt;&quot;); Response.Write(&quot;Address2: &quot; + cookie.Address2+ &quot;&lt;br /&gt;&quot;); Response.Write(&quot;City: &quot; + cookie.City+ &quot;&lt;br /&gt;&quot;); Response.Write(&quot;Zip: &quot; + cookie.Zip+ &quot;&lt;br /&gt;&quot;); }</pre></code></div><br /><br />یک مثال درباره کوکی‌های تو در تو به زبان VB.NET:<br /><br /><div class="xoopsCode"><code><pre>If Request.Form(&quot;savecookie&quot;) = &quot;Yes&quot; and ValidLogin = &quot;Yes&quot; Then Response.Cookies(&quot;member&quot;)(&quot;username&quot;) = Request.Form(&quot;username&quot;) Response.Cookies(&quot;member&quot;)(&quot;password&quot;) = Request.Form(&quot;password&quot;) Response.Cookies(&quot;member&quot;).Expires = DATE + 365 End if</pre></code></div><br /><br />جدول زیر بعضی از خصوصیات پیشرفته کوکی‌ها را نمایش می‌دهد:<br /><br />خاصیت توضیحات <br />Domain دامنه‌ای که محدوده کوکی را تعیین می کند. <br />Path مسیر منتسب به کوکی. <br />Secure مقدار بولینی که تعیین می کند آیا کوکی باید فقط روی یک اتصال رمز شده ارسال گردد یا نه؟ <br />HasKeys مقدار بولینی که تعیین می کند که آیا کوکی مربوط به یک کوکی دیکشنری است یا نه؟ <br /><br />بطور خلاصه، کوکی‌ها چه خوبیهایی دارند؟ اشغال فضا روی کلاینت که باعث کاهش ترافیک و اشغال فضا روی سرور می شود و اطمینان کار. کوکی‌ها چه بدیهایی دارند؟ بعضی از مرورگرها از کوکی‌ها پشتیبانی نمی کند، بعضی از کاربران کوکی‌ها را پاک می کنند یا نمی پذیرند و این که فقط داده نوع رشته‌ای را ذخیره می کنند.<br /><br /><b>جلسات (Sessions)</b><br />فریم ورک دات نت برای رد گیری حرکت کاربر ما را تنها نگذاشته و یک امکان خوب به نام Session State را در اختیار ما قرار داده است. به طور پیش فرض وقتی کاربر اولین بار صفحه‌ای را از یک وب سایت ساخته شده با ASP.NET درخواست می کند یک کوکی جلسه به نام ASP.NET_SessionID ساخته شده و به مرورگر او ارسال میشود. با این کار ASP.NET قادر به پیگیری کاربر شده و میتواند در درخواست‌های بعدی او را شناسایی کند.<br /><br />بر این اساس در ASP.NET یک شیء به نام Session قرار داده شده است که میتوانید از آن برای نگهداری اطلاعات مربوط به هر کاربر استفاده کنید. برای مثال دستور زیر یک آیتم با نام MyItem ایجاد کرده و Hello را به آن نسبت میدهد:<br /><br />Session(”MyItem”)=”Hello!”<br />هنگام کار با Sessionها باید به نکات زیر توجه کنید:<br /><br />- هر Session اگر کاریر مرورگر را ببندد یا ۲۰ دقیقه از سرور درخواست نکند از بین می رود. <br />- Session هر کاربر جدا از Session بقیه کاربران است. <br />- در Session بر خلاف کوکی‌ها می توان شیئ هم ذخیره کرد. <br /><br />جدول زیر بعضی از خصوصیات و متدهای شیئ Session را نمایش میدهد:<br /><br />خاصیت/ متد توضیحات <br />Remove پاک کردن Session <br />RemoveAll پاک کردن تمام Sessionها <br />SessionID ID منحصر به فرد جلسه فعلی را برمیگرداند. <br />Abandon Session فعلی را خاتمه میدهد. اگر کاربر پس از دستور فوق درخواست یک صفحه جدید کند به عنوان کاربر جدید در نظر گرفته می شود. <br />TimeOut تغییر مهلت پیش فرض ختم جلسه. این خصوصیت هر عددی که باشد بعد از همان قدر دقیقه اگر کاربر درخواستی به سرور نفرستد Session ختم می شود. <br /><br />نکته: از طریق فایل web.config نیز می‌توان مهلت ختم جلسه را تغییر داد:<br /><br /><div class="xoopsCode"><code><pre>&lt;configuration&gt; &lt;system.web&gt; &lt;sessionstate timeout=&quot;60&quot; /&gt; &lt;/system.web&gt; &lt;/configuration&gt;</pre></code></div><br /><br />Eventها یا وقایع جلسه‌ها دو مورد هستند: Session_Start و Session_End. که Session_Start وقتی رخ می دهد که جلسه آغاز و Session_End وقتی رخ می دهد که جلسه خاتمه پیدا کند. این Eventها را باید در فایل Global.asax تعریف کرد.<br /><br />در زیر یک مثال عملی از این رویدادها را خواهید دید:<br /><br /><div class="xoopsCode"><code><pre>&lt;html&gt; &lt;head&gt; &lt;title&gt;SessionCount.aspx&lt;/title&gt; &lt;Script Runat=&quot;Server&quot;&gt; Sub Page_Load() lblSessionCount.Text = Application(&quot;SessionCount&quot;) End Sub &lt;/Script&gt; &lt;/head&gt; &lt;body&gt; Current Sessions: &lt;asp:Label ID=&quot;lblSessionCount&quot; Runat=&quot;Server&quot; /&gt; &lt;/body&gt; &lt;/html&gt;</pre></code></div><br /><br /><b>Default.aspx</b><br /><br /><div class="xoopsCode"><code><pre>&lt;Script Runat=&quot;Server&quot;&gt; Sub Session_Start() If Application(&quot;SessionCount&quot;) Is Nothing Then Application(&quot;SessionCount&quot;) = 0 End If Application(&quot;SessionCount&quot;) += 1 End Sub Sub Session_End() Application(&quot;SessionCount&quot;) -= 1 End Sub &lt;/Script&gt;</pre></code></div><br /><br /><b>Global.asax</b><br /><br />بطور کلی برای نگهداری مقادیر Sessionها در ASP.NET سه روش وجود دارد: درون پروسه (In Process)، ذخیره در سرویس ویندوز و ذخیره در SQL Server.<br /><br />Sessionها به طور پیش فرض در داخل پروسه مدیریت می شود و تمام آیتم‌هایی که در Sessionها می‌سازیم در همان پروسه وب سرور ذخیره می شوند. مهمترین مشکل این روش این است که اگر به هر دلیل سرور از کار بیفتد و یا Web Applicationما دستکاری شود، تمام داده‌ها از بین میرود و از طرف دیگر بسط پذیری را در سایت محدود می کند و نمی توان آن را به اشتراک گذاشت.<br /><br />اما با استفاده از تکنیک ذخیره در پایگاه داده SQL Server می‌توان حتی در صورت از کار افتادن سرور نیز اطلاعات را حفظ کرد. تعریف اشیای ضروری در SQL Server به منظور مدیریت داده‌های جلسه با اجرای بچ فایل InstallSqlState.sql صورت می گیرد. بعد از این کار باید فایل web.config را نیز به شکل زیر تغییر داد:<br /><br /><div class="xoopsCode"><code><pre>&lt;configuration&gt; &lt;system.web&gt; &lt;sessionstate mode=&quot;SqlServer&quot; sqlConnectionString=&quot;Server=127.0.0.1;UID=sa;Pwd=YourPassword&quot; /&gt; &lt;/system.web&gt; &lt;/configuration&gt;</pre></code></div><br /><br />منبع: IDN Sun, 05 Jul 2009 04:23:28 +0700 http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=43&forum=8 پاسخ به: سورس کد ماشین حساب در اسمبلی [توسط goodarzipour] http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=21&forum=8 برنامه نویسی:: سورس کد ماشین حساب در اسمبلی<br /> نه ، من vb کارم ، اما تا حدودی c++ هم بلدم. سوالتونو بپرسید، شاید تونستم جواب بدم Sat, 04 Jul 2009 16:26:16 +0700 http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=21&forum=8 8 وزیر [توسط Niloofar] http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=42&forum=8 برنامه نویسی:: 8 وزیر<br /> سورس کد 8 وزیرو اگه دارید میشه بذارید؟؟؟(++c) Wed, 01 Jul 2009 15:17:11 +0700 http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=42&forum=8 حجم عكسهايتان را بدون از دست رفتن كيفيت تا حد ممكن پايين بياوريد [توسط goodarzipour] http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=41&forum=4 گرافیکی:: حجم عكسهايتان را بدون از دست رفتن كيفيت تا حد ممكن پايين بياوريد<br /> بيشتر كاربران اينترنتي وكساني كه زياد از اينترنت براي فرستادن عكسهايشان براي دوستان وآشنايان استفاده ميكنند حتما تا كنون با مشكل حجم زياد اين عكسها مخصوصا عكسهاي ديجيتالي روبرو شده اند امروز روشي را به شما آموزش مي دهيم كه حجم عكس بدون از دست رفتن كيفيت بسيار پايين بيايد.<br /><br /><br />ابتدا عكس را در يكي از نرم افزارهاي ويرايش تصاوير مانند ACD Photo Editor يا Adobe Photoshop <br />وارد كنيد و سايز آن را به 1500*1122 تغيير دهيد و آن را ذخيره كنيد. سپس عكس را در نرم افزار ويرايش تصوير اختصاصي ويندوز( ( Mspaint وارد كنيد وبدون هيچ تغييري ذخيره كنيد. <br /><br />تذكر: اگر خواستيد سايز عكس را تغيير ندهيد ميتوانيد آن را مستقيما وارد Mspaint كنيد. <br />در پايان خواهيد ديد كه حجم تصوير به طور شگفت انگيزي كاهش مي يابد.<br /><br /><br />منبع: شبكه فناوري اطلاعات ايران Tue, 23 Jun 2009 09:23:30 +0700 http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=41&forum=4 ترفندهای فوتوشاپ در سطح مبتدی و حرفه ای [توسط goodarzipour] http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=40&forum=4 گرافیکی:: ترفندهای فوتوشاپ در سطح مبتدی و حرفه ای<br /> کسانی که به گرافیک و نرم افزارهای آن علاقه دارند حتما نام فتوشاپ ، نرم افزار معروف Adobe را زیاد شنیده اند. شاید بسیاری این نرم افزار را بهترین برنامه برای اصلاح و تغییرات عکس های خود بدانند. پس دست به کار شوید و ۲۵ ترفند بسیار مفید درباره این نرم افزار را بیاموزید.<br /><br /><br />● نکته ۱ : <br />▪ چگونه یک قسمت از یک سند را که از چند لایه تشکیل شده کپی کنیم : <br />وقتی منطقه ای از یک سند را انتخاب کنید و برای انجام عمل کپی کلیدهای Ctrl+C را می فشارید آن منطقه تنها از لایه انتخابی کپی می شود . اما اگر شما بخواهید از تمام اجزای لایه ها در آن قسمت در یک لایه جدید کپی داشته باشید می توانید با افزودن کلید Shift به کلیدهای Ctrl+C این کار را انجام دهید . <br />● نکته ۲ : <br />▪ اسناد خود را در کنار هم مشاهده کنید : <br />در ابتدای تاریخ فوتوشاپ ( زمان زندگی دایناسورها ) وقتی تعدادی سند را باز می کنید فوتوشاپ آنها را به صورت جلوی هم نمایش می دهد . یعنی تصاویر یکی پس از دیگری در جلوی هم باز می شوند که این روش Cascading نام دارد . اما اگر بخواهید به طور مثال ۴ تصویر باز شده خود را کنار هم قرار دهید کافیست از منوی Windows منوی Documents را باز کرده و گزینه Tile را انتخاب کنید . <br />● نکته ۳ : <br />▪ حالت ارائه طرح به مشتری در فوتوشاپ : <br />زمان آن فرا رسیده که طرح نهایی خود را به مشتری نشان دهید اما دوست ندارید مشتری بداند که شما با فوتوشاپ کار کرده اید . دلیل این امر این است که مشتری بلافاصله میگوید : (( با فوتوشاپ کار می کنید ؟ همسایه من هم این برنامه را دارد )) و معنای این حرف این است که پس همسایه من هم می تواند این طرح را بدون صرف هزینه برایم انجام دهد . برای اینکه بتوانید از حالت ارائه تصویر در فوتوشاپ بهره بگیرید می توانید کلید F را در صفحه کلید دو بار فشار داده و یک بار کلید Tab را بزنید . <br />مشاهده می کنید که دور طرح را زمینه ای سیاه پوشانده و منوها حذف شده اند. <br />● نکته ۴ : <br />▪ رفت و آمد بین اسناد : <br />اگر با بیش از یک سند کار می کنید می توانید با فشردن کلیدهای Ctrl+Tab بین اسناد رفت و آمد کنید . <br />● نکته ۵ : <br />▪ مشاهده لایه فعال و مخفی کردن بقیه لایه ها : <br />اگر سند چند لایه ای دارید می توانید تنها لایه ای را که روی آن کار می کنید مشاهده کنید . این کار را می توانید با فشار کلید Alt و کلیک روی آیکن چشم در پالت Layers لایه مورد نظر انجام دهید . برای مشاهده مجدد تمامی لایه ها این کار را دوباره تکرار کنید . <br />● نکته ۶ : <br />▪ ایجاد انتخابهای دایره شکل : <br />زمانی که یک دایره رسم می کنید فوتوشاپ دایره را به طور پیش فرض از نقطه ای که کلیک می کنید رسم می کند . شما می توانید با نگاه داشتن کلید Alt در زمان رسم دایره ، دایره را از مرکز رسم نمائید . اگر می خواهید دایره شما کاملا گرد باشد می توانید از کلید Shift استفاده کنید . <br />● نکته ۷ : <br />▪ حذف راهنماهای خط کشی : <br />اگر در طرحتان ده ها راهنما برای خط کشی دارید و اکنون قصد حذف کردن آنها را دارید لازم نیست آنها را یکی یکی به بیرون از محیط سند درگ کنید ، بلکه می توانید از منوی View گزینه Clear Guides را انتخاب کنید . <br />● نکته ۸ : <br />▪ تغییر تنظیمات Quick Mask : <br />اگر می خواهید رنگ قرمز در محیط Quick Mask محل انتخاب شما باشد یا اگر می خواهید از رنگ دیگری برای محیط Quick Mask استفاده کنید کافی است بر روی آیکنی که توسط آن وارد این محیط می شوید دابل کلیک کنید . <br />● نکته ۹ : <br />▪ حرکت لایه انتخابی در بین لایه ها : <br />با استفاده از کلید ]+Ctrl می توانید لایه انتخابی خود را به زیر لایه زیرین خود انتقال دهید و با کلید [+Ctrl می توانید لایه انتخابی را به بالای لایه های بالایی انتقال دهید . <br />● نکته ۱۰ : <br />▪ مخفی کردن حالت انتخاب : <br />برای این کار کافی است پس از انجام عمل انتخاب کلیدهای Ctrl+H را بفشارید . در این حالت انتخاب شما حذف نمی شود بلکه تنها از دید پنهان می گردد و با هر بار نگاه داشتن کلید موس بر روی آن یا درگ کردن آن دوباره ظاهر می گردد . <br />● نکته ۱۱ : <br />▪ خلاص شدن از پیکسل های لبه ای سیاه یا سفید : <br />اگر روی تصویری با ترکیبی از عکس های مختلف کار می کنید و تصویری را به آن اضافه می کنید که دارای زمینه سفید یا سیاه بوده است احتمالا لبه های آن دارای پیکسل های سفید یا سیاه است . برای خلاص شدن از این پیکسل ها از منوی Layer گزینه Matting و سپس بسته به رنگ مورد نظر یکی از گزینه های Remove White Matte یا Remove Black Matte را انتخاب کنید . <br />● نکته ۱۲ : <br />▪ RGB و CMYK را همزمان ببینید : <br />اگر در حال کار روی یک سند RGB هستید و می دانید که تصویر به منظور چاپ در آخر به حالت CMYK در خواهد آمد ، برای مشاهده تصویر نهایی در حالت CMYK و مقایسه آن با سند RGB فعلی می توانید از منوی Windows گزینه Document و سپس New Windows را انتخاب کنید . با این کار یک نمای دیگر از سند موجود باز می شود . به سند اصلی خود برگردید و به کار خود ادامه دهید . مشاهده می کنید که آنچه انجام می دهید روی سند CMYK شده نیز اعمال می شود . <br />● نکته ۱۳ : <br />▪ راهنما ی خط کشی را در محل دلخواه خود قرار دهید : <br />اگر محل دقیقی را که می خواهید خطوط راهنما را روی آنها قرار دهید می دانید می توانید با استفاده از منوی View و گزینه New Guide و وارد کردن محل قرارگیری آنها در کادر محاوره این خطوط را در محل دقیق خود قرار دهید . <br />● نکته ۱۴ : <br />▪ برگرداندن آخرین انتخاب : <br />اگر انتخابی انجام داده اید و سپس از انتخاب خارج شده اید و حال پس از انجام یک سری عملیات متوجه شده اید که به انتخاب خود نیاز دارید ، در صورتی که انتخاب دیگری پس از آن انجام نداده باشید می توانید با انتخاب Reselect از منوی Select آخرین انتخاب خود را ظاهر کنید . <br />● نکته ۱۵ : <br />▪ تولید کپی ها : <br />زمانی که دکمه یا زبانه یا هر چیز دیگری به وجود آوردید می توانید به سرعت آن را کپی کرده و به تعداد زیاد تکثیر کنید . ابتدا کلید Ctrl را نگه دارید و سپس روی لایه ای که می خواهید آن را کپی کنید کلیک نمائید . ( این کار انتخابی پیرامون هر آنچه در لایه است ایجاد می کند.) ، سپس Alt+Ctrl را نگه دارید و هر تعدادی که می خواهید درگ کنید . <br />● نکته ۱۶ : <br />▪ سریعترین راه از پیوند خارج کردن لایه ها : <br />اگر تعداد زیادی از لایه ها را به هم پیوند( Link ) کرده اید و می خواهید سریعا آنها را از حالت پیوند خارج کنید فقط کافی است کلید Alt را نگه دارید و مستقیما روی آیکن قلموی کوچک در دومین ستون کنار لایه فعال کلیک کنید . این کار بلافاصله تمام لایه های متصل شده به لایه مذبور را از حالت پیوند خارج می کند . <br />● نکته ۱۷ : <br />▪ برگشت به حالت های پیش فرض فوتوشاپ : <br />احساس می کنید که می خواهید تمام تنظیمات فوتوشاپ به حالتی که Adobe در ابتدا تنظیم کرده بود برگردد ؟ Shift+Alt+Ctrl را نگه دارید و سپس فوتوشاپ را ببندید . <br />یک کادر محاوره از شما می پرسد که آیا می خواهید تنظیمات فوتوشاپ به صورت پیش فرض برگردد . <br />● نکته ۱۸ : <br />▪ چطور متن های کوچک خود را بسازیم تا در وب واضح باشند : <br />این امکان که Anti-Aliasing نام دارد در نوار Options ابزار تایپ قرار دارد که با دو عدد حرف a در کار یکدیگر نشان داده شده ست و حالت پیش فرض آن بر روی گزینه Sharp است . شما می توانید با تغییر این گزینه ها فونت کوچک خود را واضح تر کنید . <br />● نکته ۱۹ : <br />▪ ترسیم خطوط مستقیم : <br />اگر در ترسیم خطوط مستقیم با ابزارهای فوتوشاپ مشکل دارید در هنگام رسم این خطوط کلید Shift را نگه دارید . <br />● نکته ۲۰ : <br />▪ خط راهنمای خط کشی را تغییر جهت بدهید : <br />اگر یک خط راهنمای خط کشی افقی دارید و می خواهید سریعا آن را تبدیل به یک خط راهنمای عمودی نمائید کافی است کلید Alt را نگه داشته و بر روی خط راهنما کلیک کنید . <br />● نکته ۲۱ : <br />▪ ایجاد لایه جدید در زیر لایه انتخابی : <br />کافی است هنگام کلید بر روی آیکن New Layer کلید Ctrl را نگه دارید . <br />● نکته ۲۲ : <br />▪ حذف لکه ها یا خراش های تصویر : <br />اگر تصویری دارید که سطح آن دارای لکه ، نقاط یا خراشهایی است یک ترفند کوچک برای حذف آنها وجود دارد . روی ابزار Blur کلیک کنید. در نوار Options میزان Opacity ابزار را روی ۲۰ % تنظیم و حالت Blend را به Lighten تغییر دهید و شروع به نقاشی روی خراش ها کنید . پس از چند ضربه متوجه می شوید که خراش ها به تدریج ناپدید می شوند . <br />● نکته ۲۳ : <br />▪ ادغام لایه های مرئی در یک حرکت : <br />برای این کار کافی است کلید های Ctrl+Shift+E را همزمان فشار دهید . <br />● نکته ۲۴ : <br />▪ گردش روی تصویر : <br />در حالت Full Screen برای پرش به بالای تصویر کلید PageUp و برای پرش به پائین تصویر کلید PageDown را فشار دهید . برای پرش به سمت چپ تصویر کلید Ctrl+PageUP و برای پرش به سمت راست تصویر کلید Ctrl+PageDown را فشار دهید . برای پرش به گوشه بالای سمت چپ کلید Home و برای پرش به گوشه پائین سمت راست کلید End را فشار دهید . <br />● نکته ۲۵ : <br />▪ کنترل Tracking : <br />Tracking عبارت است از فضای بین یک گروه از حروف یا کلمات . برای تنگ کردن این فاصله به صورت بصری ( نه به صورت عددی ) یعنی حذف فاصله بین یک گروه از حروف ، ابزار Type را بردارید و متن را هایلایت کنید و سپس کلید جهت چپ + Alt را برای کم کردن فاصله و کلید جهت راست + Alt را برای اضافه کردن این فاصله فشار دهید .<br /><br /><br />منبع : شبکه فناوری اطلاعات ایران Tue, 23 Jun 2009 09:21:02 +0700 http://www.freeproject.ir/modules/xforum/viewtopic.php?topic_id=40&forum=4