- بازديد امروز: 0
- بازديد ديروز: 0
- بازديد هفته: 0
- بازديد ماه: 0
- بازديد كل: 0
- تعداد کل صفحات: 4
- صفحه کنوني: 1
اگر از سیستم شما کسی غیر از خودتون استفاده می کنه و شما نمی خواهید به تنظیمات صفحه نمایش دسترسی داشته باشد . *مسیر رجیستری : HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciessystem *نوع : Dword Value *دستور :NoDispCLP *مقدار رجیستری : یک از منوی Start گزینه Run را انتخاب کنید بعد در آن RegEdit را تایپ کنید و اینتر را بزنید در صفحه باز شده به *مسیر رجیستری بالا بروید و در آن *دستور را با *نوع داده شده بسازید (با *مقدار رجیستری بالا) برای برگرداندن به حالت اول مقدار ساخته شده را پاک کنید . نکته : اگر در مسیر پوشه System وجود نداشت آن را بسازید برای این کار روی پوشه Policies کلیک راست کرده و از بخش New گزینه Key را انتخاب کنید .
ممکه تا حالا شما دستورات و یا چیز های زیادی در قسمت Run خود تایپ کرده باشید و نمی خواهید کسی به آنها پی ببرد . *مسیر رجیستری : HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerRunMRU از منوی Start گزینه Run را انتخاب کنید بعد در آن RegEdit را تایپ کنید و اینتر را بزنید در صفحه باز شده به *مسیر رجیستری بالا بروید مقدارهایی که در آن وجود دارد را پاک کنید .
تابع GetWindow : این تابع دستگیره یک پنجره را با استفاده از دستگیره پنجره های دیگر بر می گرداند . از این قبیل می توان به پنجره بعدی پنجره مورد نظر ، پنجره قبلی پنجره مورد نظر و از این موارد اشاره کرد ( به طور ساده تر بگم درون هر پنجره می تواند TextBox و CommandButton و ... موجود باشد اگر شما بخواهید دستگیره این اجزا را بدست آورید باید از دستگیره پنجره اصلی استفاده کنید که این تابع انجام می دهد ) . اصل تابع : Public Declare Function GetWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wCmd As Long) As Long پارامتر ها : hwnd : این پارامتر از نوع عددی بوده و شامل دستگیره پنجره ای می باشد که می خواهیم دستگیره پنجره های وابسته به آن را بیابیم . wCmd : این پارامتر از نوع عددی بوده و مشخص کننده پنجره ای می باشد که می خواهیم دستگیره آن را بیابیم . این پارامتر می تواند مقادیر زیر را داشته باشد : - GW_CHILD : این flag پنجره child یا به عبارتی پنجره درون پنجره مورد نظر را به تابع بر می گرداند با مقدار عددی 5 . - GW_HWNDFIRST : این flag دستگیره بالاترین پنجره موجود در Task ویندوز را به تابع بر می گرداند با مقدار عددی 0 . - GW_HWNDNEXT : این flag دستگیره اولین پنجره بعد از پنجره مورد نظر را به تابع بر می گرداند و با مقدار عددی 2 . - GW_HWNDPREV : این flag دستگیره اولین پنجره قبل از پنجره مورد نظر را به تابع بر می گرداند و با مقدار عددی 3 . - GW_OWNER : این flag برعکس flag ، GW_CHILD می باشد و دستگیره پنجره مالک (Owner) پنجره مورد نظر به تابع بر می گرداند و با مقدار عددی 4 . خروجی : خروجی این تابع از نوع عددی بوده و اگر تابع کار خود را به خوبی انجام دهد دستگیره پنجره مورد نظر را بر می گرداند و اگر تابع کارش را ناقص انجام بدهد مقدار صفر یا Null برگردانده می شود . مثال : Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Private Const GW_HWNDNEXT = 2 Private Sub Command1_Click() Dim hwnd As Long Dim wn As String, WnN As String wn = Space(255) WnN = Space(255) hwnd = GetWindow(Form1.hwnd, GW_HWNDNEXT) GetWindowText Form1.hwnd, wn, GetWindowTextLength(Form1.hwnd) + 1 GetWindowText hwnd, WnN, GetWindowTextLength(hwnd) + 1 List1.AddItem "This Window Handle : " + CStr(Form1.hwnd) List1.AddItem "This Window Caption : " + CStr(wn) List1.AddItem “” List1.AddItem "This Next Window Handle : " + CStr(hwnd) List1.AddItem "This Next Window Caption : " + CStr(WnN) List end sub تابع GetNextWindow : این تابع تقریبا مانند تابع GetWindow با این تفاوت که فقط از دو Flag تابع GetWindow می تواند استفاده کند . اصل تابع : Public Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long پارامتر ها : hwnd : این پارامتر از نوع عددی بوده و شامل دستگیره پنجره ای می باشد که می خواهیم دستگیره پنجره های بعدی و قبلی آن را بدست آوریم . wCmd : این پارامتر از نوع عددی بوده و مشخص کننده پنجره ای می باشد که می خواهیم دستگیره آن را بیابیم ( قبلی یا بعدی ) این پارامتر می تواند مقادیر زیر را داشته باشد : - GW_HWNDNEXT : این flag دستگیره پنجره بعدی پنجره مورد نظر را به تابع بر می گرداند با مقدار عددی 2 . - GW_HWNDPREV : این flag دستگیره پنجره قبلی پنجره مورد نظر را به تابع بر می گرداند و با مقدار عددی 3 . نکته : منظور از پنجره بعدی پنجره ای است که در لیست پنجره های ویندوز درون حافظه در مکان پایین تری از پنجره مورد نظر ما قرار دارد و منظور از پنجره قبلی ، پنجره ای است که در مکان بالاتری از پنجره مورد نظر ما قرار دارد . خروجی : خروجی این تابع از نوع عددی بوده و اگر تابع کار خود را به خوبی انجام دهد دستگیره پنجره مورد نظر را بر می گرداند و اگر تابع کارش را ناقص انجام بدهد مقدار صفر یا Null برگردانده می شود . مثال : Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hWnd As Long, ByVal wFlag As Long) As Long Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hWnd As Long) As Long Private Const GW_HWNDNEXT = 2 Private Const GW_HWNDPREV = 3 Private Sub Command1_Click() Dim hWnd As Long Dim Wn As String Wn = Space(255) hWnd = GetNextWindow(Me.hWnd, GW_HWNDNEXT) GetWindowText hWnd, Wn, GetWindowTextLength(hWnd) + 1 Text1.Text = "Caption of Next Window is : " + CStr(Wn) hWnd = GetNextWindow(Me.hWnd, GW_HWNDPREV) GetWindowText hWnd, Wn, GetWindowTextLength(hWnd) + 1 Text2.Text = "Caption of Prev Window is : " + CStr(Wn) End Sub
انتقال مکان نما در صفحه خروجی گاهی ممکن است بخواهید مکان نما را در صفحه خروجی به محل خاصی منتقل کنید و اطلاعات را از آنجا دریافت و یا چاپ کنید برای این منظور از تابع gotoxy() استفاده می کنیم که در فایل conio.h قرار دارد و به صورت زیر است Gotoxy(int x , int y); کهx شماره ستون و y شماره سطر می باشد . چاپ اعداد نوع short و long برای چاپ اطلاعات عددی از نوع long و short از کاراکترهای خاصی استفاده می شود کاراکتر L به همراه d برای چاپ مقادیر long و کاراکتر h به همراه d برای چاپ مقادیر short به کار می رود البته شکلهای دیگری هم داره ولی همین بسه . مثال : #include <conio.h> #include <stdio.h> int main() { short int x = 15 ; long int m = 35789 ; clrscr() ; gotoxy(20,10) ; printf("
x=%hd, m=%ld",x,m) ; getch() ; return 0 ; } تعیین طول میدان در تابع Printf() با استفاده از امکانات دیگری که در تابع printf() وجود دارد ، می توان مشخص کرد که هر کدام از اطلاعاتی که به خروجی می رود چند بایتاز فضای خروجی را اشغال کنند . فضایی را که هر قلم اطلاعات اشغال می کند طول میدان خروجی می گویند . طول میدان مقادیر صحیح به صورت %wd است که w طول میدان می باشد اگر طول میدان بیشتر از تعداد ارقام باشد عدد در سمت راست میدان قرار می گیرد و سمت چپ آن خالی می ماند و اگر طول میدان کمتر از تعداد ارقام باشد طول میدان نادیده گرفته می شود و تمام ارقام به خروج می رود . طول مقادیر اعشاری به صورت %w.df است که در آن w طول کل میدان و d تعداد ارقام اعشار و البته نقطه هم یکی از تعداد طول میدن است . اگر تعداد ارقام اعشار از طول میدان اعشار بیشتر باشد قسمت اعشار گرد می شود یعنی اگر بزرگتر از 5 باشد یک رقم به قسمت اعشار اضافه می شود و اگر کمتر باشد رقم حذف می شود . مثال : #include <stdio.h> #include <conio.h> int main() { int x = 125 , y = 1468 ; float m = 327.348, n = 4351.32 ; clrscr() ; printf(“x = %5d, y = %3d, sum = %d”,x,y,x+y) ; printf(“
m = %7.2f, n = %6.2f”,m,n) ; printf(“
%5.10s”,”this is a sample output.”) ; getch() ; return 0 ; } اگه خودتون این مثال و تست کنید بهتر می فهمید چه اتفاقی می افته . اگر برای چاپ یک عدد صحیح ، از طول میدانی به شکل %w.dd استفاده شود ، d حداقل طول میدان را مشخص می کند . اگر طول میدان رشته ها به صورت %w.ds باشد ، w حداقل طول میدان و d حداکثر کاراکترهای قابل چاپ را مشخص می کند .
توابع و سایر اطلاعاتی که کامپایلر برای ترجمه برنامه به آن احتیاج دارد در تعدادی از فایل ها به نام سرآیند (header ) قرار دارند . پسوند این فایل ها .h است و معمولا بر روی فهرستی از دیسک به نام INCLUDE قرار دارند . باید بدانیم هر تابع مورد استفاده در برنامه ، در کدام فایل سرآیند قرار دارد و همان فایل را به برنامه اضافه کنیم . به عنوان مثال ، تابع scanf() که برای ورود داده ها از صفحه کلید است در فایلی به نام stdio.h قرار دارد . برای اتصال فایل های سرآیند به برنامه C از دستوری به نام #include استفاده می کنیم . این دستور هم از دستورات پیش پردازنده است . پیش پردازنده ، مترجمی است که با مشاهده دستوراتی که با # آغاز می شوند اجرا می شود . تعریف : <نام فایل سرآیند> #include نکته : بین # و include نباید فاصله باشد و بین علامتهای > و < نباید فاصله باشد . همه زبان های برنامه نویسی دارای یک بدنه اصلی می باشد . <نام فایل سرآیند> #include int main() { اعلان متغیرها دستورات اجرایی return 0 ; } همه برنامه ها به زبان C دارای تابع اصلی یا main هستند .البته به جز این تابع می توان تابع های دیگری هم به کار برد که طریقه نوشتن تابع ها بعدا گفته می شه . در واقع تابعها از مجموعه ای از دستورات تشکیل می شود که عملیات خاصی را انجام می دهند مثل تابع scanf() بعد از اجرای دستورات باید مقداری به ویندوز برگردانده شود تا سیستم عامل متوجه بشه که برنامه با موفقیت به پایان رسیده است به همین دلیل آخرین دستور برنامه C با return 0 به پایان می رسد . مقداری که به سیستم عامل برمی گردونه باید از نوع int باشه به همین دلیل تابع main رو از نوع int تعریف کردم . چند نکته: 1. دستور العمل های برنامه با } شروع شده به { ختم می شوند . 2. برای اضافه کردن چند فایل سرآیند به برنامه ، برای هر کدام از آنها باید یک دستور #include نوشت . 3. متغیرها در ابتدای برنامه و بلافاصله بعد از } تعرف می شوند . چاپ اطلاعات با printf() این تابع در فایل stdio.h قرار دارد برای چاپ اطلاعات در صفحه نمایش به کار می رود اگر این تابع با موفقیت اجرا بشه تعداد کاراکترهایی را که به خروجی منتقل می شوند را برمی گرداند در صورت وجود خطا یک مقدار منفی برگردانده می شود . (<عبارت 2>, <عبارت 1>) printf در این تابع <عبارت 2> اطلاعاتی است که باید به خروجی برود و <عبارت 1> می تواند شامل مقدارهای زیر باشد . 1. اطلاعاتی که باید عینا در خروجی چاپ شود 2. کاراکترهای تعیین کننده فرمت خروجی . این کاراکترها نوع اطلاعاتی را که در <عبارت 2> وارد شده و باید به خروجی بروند را مشخص می کند . کاراکتر های فرمت با % شروع می شوند . 3. کاراکترهای کنترلی . این کاراکترها شکل خروجی اطلاعات را مشخص می کنند . اینکه آیا اطلاعات فقط در یک سطر باشند یا در چند سطر و یا اطلاعات با فاصله خاصی از یکدیگر چاپ شوند یا خیر . کاراکتر های کنترلی با شروع می شوند . نکته : در این تابع می توان <عبارت 2> وجود نداشته باشد . کاراکترهای فرمت تابع printf() کاراکتر نوع اطلاعاتی که باید به خروجی برود %c یک کاراکتر %d اعداد صحیح دهدهی مثبت و منفی %f اعداد اعشاری ممیز شناور %s رشتهای از کاراکتر ها %p اشاره گر %n موجب می شود که تعداد کاراکترهایی که قبل از این کاراکتر به خروجی رفته است بشمارد و در متغیر متمایز قرار دهد %% علامت % این کاراکترها زیاد است ولی کاربرئ اینها از همه بیشتره اگه لازم شد بعدا می گم . کاراکترهای کنترلی تابع printf() کاراکتر عملی که باید انجام شه f موجب انتقال کنترل به صفحه جدید می شود
موجب انتقال کنترل به خط جدید می شود انتقال به 8 محل بعدی صفحه نمایش " چاپ کوتیشن ( " ) ' چاپ کوتیشن ( ' ) \ چاپ back slash v انتقال کنترل به 8 سطر بعدی مثال : #include <stdio.h> int main() { printf(" C is a language "); return 0; } خروجی : C is a language این مثال همین طور که می بینید فقط دارای <عبارت 1> است . بنابراین مقدار که در داخل کوتیشن قرار دارد چاپ می شود .
عملگرها نمادهایی هستند که اعمال خاصی را انجام می دهند . به چند دسته تقسیم می شوند : 1. عملگرهای محاسباتی 2. عملگرهای رابطه ای 3. عملگرهای منطقی 4. عملگرهای ترکیبی 5. عملگرهای بیتی 1. عملگر های محاسباتی : عملگر های ریاضی هستند مثل + - * / که در همه برنامه نویسی ها یکسان است عملگر نام مثال - تفرق x - y + جمع x + y * ضرب x * y / تقسیم x / y % باقیمانده تقسیم x % y - - کاهش x - - یا- -x + + افزایش x++ یا ++ x نکته : عملوند ها همان متغیرهایی هستند که در بالا با نام های x و y استفاده کرده ایم . عملگر باقی مانده : طوری عمل می کنه که تقسیم صحیح بین دو عملوند انجام داده و باقی مانده خروجی آن است . مثل : int x,y,z ; x=10 ; y=2 ; z = x % y ; در این مثال مقدار متغیر z برابر صفر خواهد بود . عملگر کاهش : این عملگر از متغیر نسبت داده شده یک واحد کم می کند . عملگر افزایش : این عملگر به متغیر نسبت داده شده یک واحد اضافه می کند . عبارات محاسباتی : ترکیبی از متغیرها ، ثوابت و عملگرها هستند . در عبارات محاسباتی اگر عملگرهای کاهش و افزایش قبل از عملوند ها قرار بگیرند ابتدا عملگرها عمل می کنند و بعد مقدار آن در محاسبات شرکت می کند ولی اگه بعد از متغیر ها قرار بگیرند اول مقدار در محاسبات شرکت داده می شه بعد عملگر های کاهش و افزایش عمل می کنند مثل : int x , y ; x= 10 ; y = ++x ; در این مثال اول مقدار x یک واحد اضافه می شود و بعد مقدار آن در y قرار می گیرد یعنی مقدار 11 و اگه بجای خط سوم این خط نوشته شود y = x ++ ; در اول مقدار 10 در y قرار می گیره بعد مقدار x می شه 11 . تقدم عملگرها در عبارات محاسباتی تقدم ( یعنی کدام عملگر زودتر عملیات خود را انجام دهد ) خیلی مهم است . بالاترین تقدم ++ - - - (منهای یکانی) * / % پایین ترین تقدم + - عملگرهایی که تقدم یکسان دارند مثل اینها * / % تقدم مکانی دارند یعنی هر کدام که زودتر ظاهر شود همان عملگر زود تر انجام می شود . مثل : int m , x=6 , y = 10 ; m = x + y / 2 * 3 ; در این مثال اول متغیر y تقسیم بر 2 می شه بعد مقدار حاصل در 3 ضرب می شه و بعد با مقدار x جمع می شود و در آخر مقدار 21 خواهد بود . اگر تقدم ها را یاد نگیرید حتما می گید که جواب می شه 34 .
-
جلوگیری از دستکاری تنظیمات صفحه نمایش (Display settings )
-
پاک کردن History در قسمت Run ویندوز
-
جلسه هشتم توابع ApI
-
جلسه سوم برنامه نویسی C
-
جلسه دوم برنامه نویسی C
-
جلسه اول برنامه نویسی C
-
مقدمه برنامه نویسی C
-
جلسه هفتم توابع ApI
-
جلسه ششم توابع ApI
-
جلسه پنجم توابع ApI
-
جلسه چهارم توابع ApI
-
جلسه سوم توابع ApI
-
جلسه دوم توابع ApI
-
جلسه اول توابع ApI
-
مقدمه توابع ApI

