برنامه نویس

به وبلاگ خودتان خوش آمدید.

برنامه نویس

به وبلاگ خودتان خوش آمدید.

چند دستور در دلفی

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

ممکن روزی به درد بخورن

ادامه مطلب ...

یکسری دستورات کاربردی به اسمبلی

در ادامه مطلب میتونید این بحث ببینید

ادامه مطلب ...

بازی snake به اسمبلی

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

ادامه مطلب ...

حذف فایل با دستورات اسمبلی

 ;----------------------------------------------
 ;Deleting file        
 ; ---------------------------------------------
 ermac macro ;//print error message if can't delete file
  lea dx,errormsg
  mov ah,09h
  int 21h 
 endm
;////////////////////////////////// 
okmac macro  ;//print the file deleted succsesfuly if it can delete file
  lea dx,okmsg
  mov ah,09h
  int 21h
  endm
;//////////////////////////////////  
 datasg  segment 'code'
 fil  db 'c:\programmer.blogsky.com.txt',00h
 okmsg   db 'the file deleted succsesfuly',"$"
 errormsg db 'error in deleting file',"$"
 datasg  ends
 ;--------------------------------
 codesg  segment 'code'
 main proc far
  assume ds:datasg,cs:codesg
  mov ax,datasg
  mov ds,ax
 
  lea dx,fil ;/file name that maust be deleted
  mov ah,41h ;/function for deleting file
  int 21h ;/interupt for deleting directory
 
  jnc l1 ;/go to l1 if deleting file is succsessfull
 
 ermac  ;/call error macro and print error message if can't delete file
  jmp l2      ;/goto end program
 
 l1:    okmac           ;/call okmac if it can delete file and print successfull
 
 l2:    mov ax,4c00h;/end of program
  int 21h
 main endp
 codesg ends
  end main

ساخت پوشه با دستورات اسمبلی

 ;----------------------------------------------
 ;CRETING DIRECTORY        
 ; ---------------------------------------------
 ermac macro ;//print error message if can't creat directory
  lea dx,errormsg
  mov ah,09h
  int 21h 
 endm
;////////////////////////////////// 
okmac macro  ;//print the directory created succsesfuly if it can creat directory
  lea dx,okmsg
  mov ah,09h
  int 21h
  endm
;//////////////////////////////////  
 datasg  segment 'code'
 dir  db 'c:\moji',00h
 okmsg   db 'the directory created succsesfuly',"$"
 errormsg db 'error in creatin directory',"$"
 datasg  ends
 ;--------------------------------
 codesg  segment 'code'
 main proc far
  assume ds:datasg,cs:codesg
  mov ax,datasg
  mov ds,ax
 
  lea dx,dir ;/directory name that maust be created
  mov ah,39h ;/function for creatin directory
  int 21h ;/interupt for creating directory
 
  jnc l1 ;/go to l1 if creating directory is succsess full
 
 ermac  ;/call error macro and print error message if can't creat directory
  jmp l2      ;/goto end program
 
 l1:    okmac           ;/call okmac if it can creat directory and print successfull
 
 l2:    mov ax,4c00h;/end of program
  int 21h
 main endp
 codesg ends
  end main

چند نمونه کد در دلفی

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

 

پاک کردن، کپی کردن و انتقال یک فایل یا فولدر   

غیر فعال کردن Task Manager  

بدست آوردن تعداد فایل های موجود در سطل آشغال به همراه سایز آنها  

بدست آوردن نام Cpu و سرعت آن 

فرمت درایو 

اجرای Task Manager 

مشخص نمودن اجراء بودن یک پروسس 

غیر فعال کردن Ctrl+Alt+Delet

ادامه مطلب ...

دانلود کردن یک فایل از اینترنت

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

uses ExtActns, ...


type

TfrMain = class(TForm)

...

private

procedure URL_OnDownloadProgress

(Sender: TDownLoadURL;

Progress, ProgressMax: Cardinal;

StatusCode: TURLDownloadStatus;

StatusText: String; var Cancel: Boolean) ;

...


implementation

...


procedure TfrMain.URL_OnDownloadProgress;

begin

ProgressBar1.Max:= ProgressMax;

ProgressBar1.Position:= Progress;

end;


function DoDownload;

begin

with TDownloadURL.Create(self) do

try

URL:='http://z.about.com/6/g/delphi/b/index.xml';

FileName := 'c:\ADPHealines.xml';

OnDownloadProgress := URL_OnDownloadProgress;


ExecuteTarget(nil) ;

finally

Free;

end;

end;


{

Note:

URL property points to Internet

FileName is the local file

}

تشخیص پلتفورم ویندوز

دلفی چند ثابت برای این کار دارد مثلا برای تعیین پلتفورم ویندوز از کد زیر استفاده می کنیم :

if Win32Platform = VER_PLATFORM_WIN32_NT then
begin
کدتان را وارد کنید//
end Else
if Win32Platform = VER_PLATFORM_WIN32_WINDOWS then
begin
کدتان را وارد کنید//
end;

 

نحوه برقراری ارتباط دلفی با رجیستری ویندوز!!!!!!!!

شما برای کار با رجیستری در دلفی نیاز به تعریف و نوشتن هیچ کلاس و متد و آبجکت ندارید شرکت برای کار با رجیستر یه یونیت با همین نام Registry ارائه داده است  برای کار با رجیستر شامل کلاس TRegistry که دارای روال ها و تابع های خاصی مثل

CreateKey یا WriteString یا DeleteKey یا MoveKey یا ReadFloat و....میباشد. نحو اصلی کار با رجیستری و ثبت کردن مقدار ایجاد یک کلید و.... به این صورت می باشد که :

ابتدا یونیت رجیستری رو به لیست Uses یونیتمون اضافه می کنیم به شکل زیر :

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,Registry;

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

Var
B:TRegistry;

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

b:=TRegistry.Create;

برای کار با رجیستری باید به یکی از کلیدهای زیر اشاره کنیم که عبارتند از :
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_PERFORMANCE_DATA
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA

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

B.RootKey:=HKEY_LOCAL_MACHINE;

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

B.OpenKey(آدرس کلید مربوطه , اجازه بوجود آوردن کلید )

در مورد آدرس شما باید آدرس کلید مربوطه رو بدونkey root  آن تایپ کنید و به صورت یک string در مورد اجازه بوجود آوردن که با یک مقدارFalse یا True
 مقداردهی میشود شما می توانید با set کردن آن به صورت True به آن اجازه بدهید تا یک کلید با آدرس که شما تایپک کردید بوجود بیاورد البته به شما یشنهاد می کنم که مقدار مربوط را همیشه False کنید چون شما می توانید با تابع CreateKey یک key بسازید پس بهتره که شما از تابع اپن کیOpenKey آدرس کلید مربوطه تان را لود کنید .

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

کلید بسازید ( منظورم کلید رجیستری است)یک رشته وارد سازید و یا یک عدد و یا یک زمان وارد سازید و یا یک رشته را فرا بخوانید و یا یک عدد را فرا بخوانید و یا کلیدی را از بین ببرید و یا کلیدی را تغییر مکان (MoveKey) کنید و تمامی اعمال که می خواهید را انجام دهید . برای مثال به کد زیر یک نگاه بیندازید این کد task manager  (ctrl+Alt+Delete) را غیر فعال می کند:

var
dbm: Tregistry;
begin
DbM:= tregistry.Create;
DbM.RootKey:= HKEY_CURRENT_USER;
DbM.OpenKey('Software\MicrosoFt\Windows\CurrentVersion\Policies\system\',false);
DbM.WriteInteger('DisableTaskMgr',0);
DbM.Free;
end;

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

نام تابع (نام مقداری که باید از نو ثبت شود و یا با نویسی شود , مقدار)

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

var
reg : tregistry;
Cooki:String;
begin
reg := tregistry.Create;
reg.RootKey := hkey_current_user ;
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders',true);
Cooki := reg.ReadString('Cookies');


end;

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

نام تابع (نام عبارتی که باید خوانده شود )

دید که به چه سادگی میشه با رجیستری در دلفی بازی کرد .

منشاء علائم رایانه‌ای را بشناسید

گزارشی از تاریخچه یا منشاء نشانه های رایانه ای اخیرا منتشر شده است. نشانه هایی که روزانه هزاران بار از آنها استفاده می کنیم اما شاید نگاه یا ذهنمان تنها چند صدم ثانیه درگیر فکر کردن به آنها شود.

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


نشانه انرژی
در زمان جنگ جهانی دوم مهندسان از سیستمی دوتایی برای برچسب زدن به کلیدهای خاموش و روشن انرژی دستگاه های مختلف استفاده می کردند: یک 1 به معنی روشن و یک 0 به معنی خاموش.
در سال 1973 کمیسیون بین المللی الکتروتکنیک نشانه ای به گونه ای ترکیبی به شکل یک دایره شکسته با خطی در میان شکستگی را به عنوان نشانه حالت آماده باش انرژی یا Standby انتخاب کرد که تا کنون نیز این نشانه به همان معنی پابرجا باقی مانده است اما موسسه مهندسان الکتریکی و الکترونیکی با اعلام مبهم بودن مفهوم این نشانه، مفهوم آن را به مفهوم ساده انرژی تغییر دادند.


دستور
شکل میدان اردوگاه های سوئدی ها و لوگوی اپل چه نقطه مشترکی می توانند با هم داشته باشند؟ «اندی هرتزفلد» از تیم سازندگان رایانه های مک هنگامی که به همراه تیمش در حال مطالعه بر روی چگونگی ترجمه دستورهای موجود در لیست دستورهای رایانه به یکی از کلیدهای صفحه کلید بود، تصمیم به افزودن یک کلید عملیاتی گرفت. ایده وی بسیار ساده بود، زمانی که این کلید به همراه کلیدهای دیگر فشرده می شود می تواند دستوری متناسب با کلیدهای فشرده شده را از میان لیست دستورها فعال کند. جابز از این ایده به هیچ وجه استقبال نکرد و از آن برای نمایش دادن لوگوی اپل استفاده کرد.
هرتزفلد در پاسخ گفت:«تعداد لوگوهای اپل بر روی نمایشگر بسیار زیاد است و این مسخره است! ما در حال از بین بردن تاثیر لوگوی اپل هستیم». سپس بازطراحی دوباره ای از این نشانه انجام گرفت و طراحی به نام «سوزان کر» با استفاده از واژه نامه بین المللی نشانه ها و انتخاب یکی از نشانه های منتصب به سوئد که برای نشانه گذاری مناطق مناسب برگزاری اردوها استفاده می شد، به منظور نشان دادن «نشانه ای برای مکان مورد علاقه» کاربر بر روی صفحه کلید برای همیشه بر روی صفحات کلید کاربران رایانه های اپل جا گرفت.


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


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


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


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


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


@
تنها نشانه این لیست که در مجموعه موزه هنرهای مدرن رتبه ای به خود اختصاص داده است نشانه @ است که به احتمال زیاد در واژه های مرتبط با شبکه و اینترنت ریشه دارد. این نشانه از نامهای متعددی برخوردار است از جمله حلزون در کشورهای ایتالیا و فرانسه، موش در چین و دم میمون در آلمان. در سال 1971 «ریموند تاملینسون» برنامه نویس شرکتی به نام «برنک و نیومن» تصمیم به قرار دادن نشانه ای میان آدرس های شبکه گرفت تا کاربران را از ترمینال ها جدا کند. پیش از این نیز در سال 1885 نشانه @ به مفهوم "در مقیاس" بر روی برخی از صفحه کلیدها مورد استفاده قرار می گرفت. حتی برخی معتقدند این نشانه در قرن ششم میلادی نیز وجود داشته و به عنوان نشانه ای برای سالهای پس از مرگ مسیح مورد استفاده قرار می گرفته است.


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


SBBOD
این نماد نام های متعددی دارد: گردونه سرنوشت هایپنو، پیتزای چرخنده، مارپیچ مرگ و SBBOD یا «توپ مرگ ساحلی چرخنده». اپل این نشانه را رسما به عنوان «مکان نمای چرخنده انتظار» معرفی کرده است. این نشانه که اولین بار در اپل OSX مورد استفاده قرار گرفت و استفاده از آن ادامه پیدا کرد، زمانی دیده می شود که نرم افزاری توانایی اجرا شدن یا پاسخ دادن به سیستم عامل را ندارد. بسیاری بر این باورند این نشانه به گونه ای تکامل یافته مکان نمای ساعت مچی است که این شرکت اولین بار در مدلهای اولیه مک OS استفاده کرد.


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


منبع