بدست آوردن مسیرپوشه سیستم : [TABLE] [TR] [TD="class: gutter"]1 [/TD] [TD="class: code"]Function Getsyetemdirectory( Ipbuffer : pchar ; usize : unit) : unit ; stcall ; [/TD] [/TR] [/TABLE] usize : از نوع عدد می باشد و شامل حد اکثر تعداد کاراکتر های ipbuffer می باشد . Ipbuffer: این پارامتر از نوع رشته بوده و مسیرپوشه سیستم را بر می گرداند . مثال: [TABLE] [TR] [TD="class: gutter"]1 2 3 4 5 6 7 [/TD] [TD="class: code"]Function getsystem : string; Var Windir : array [0..255] of char; Begin Getsystemdirectory(windir,255); Result := strpass(windir); End; [/TD] [/TR] [/TABLE]
پاسخ : استفاده از توابع API در دلفی [h=2]بدست آوردن مسیر پوشه ویندوز[/h] بدست آوردن مسیر پوشه ویندوز : [TABLE] [TR] [TD="class: gutter"]1 [/TD] [TD="class: code"]Function Getwindowsdirectory( Ipbuffer : pchar ; usize : unit) : unit ; stcall; [/TD] [/TR] [/TABLE] usize : از نوع عدد می باشد و شامل حد اکثر تعداد کاراکتر های ipbuffer می باشد . Ipbuffer: این پارامتر از نوع رشته بوده و مسیر پوشه ویندوز را بر می گرداند . مثال: [TABLE] [TR] [TD="class: gutter"]1 2 3 4 5 6 7 [/TD] [TD="class: code"]Function getwindows : string; Var sysdir : array [0..255] of char; Begin Getwindowsdirectory(sysdir,255); Result := strpass(sysdir); End; [/TD] [/TR] [/TABLE]
پاسخ : استفاده از توابع API در دلفی بدست آوردن مسیر پوشه temp : [TABLE] [TR] [TD="class: gutter"]1 [/TD] [TD="class: code"]Function Gettemppath( nbufferlength : dword , Ipbuffer : pchar ) : dword ; stcall; [/TD] [/TR] [/TABLE] Ipbuffer: این پارامتر از نوع رشته بوده و مسیر پوشه ویندوز را بر می گرداند . Nbufferlength : از نوع عدد می باشد و شامل حد اکثر تعداد کاراکتر های ipbuffer می باشد . خروجی این تابع از نوع عددی بوده اگر تابع کارش را به درستی انجام داده باشد مقدار برگشتی برابر با nbufferlength خواهد بود وگرنه برابر با صفر خواهد شد . مثال: [TABLE] [TR] [TD="class: gutter"]1 2 3 4 5 6 7 [/TD] [TD="class: code"]Function gettemp : string; Var tempdir : array [0..255] of char; Begin Gettemppath(255 , tempdir); Result := strpass(tempdir); End; [/TD] [/TR] [/TABLE]
پاسخ : استفاده از توابع API در دلفی بدست آوردن نام کاربر: [TABLE] [TR] [TD="class: gutter"]1 [/TD] [TD="class: code"]Function getusername(ipbuffer : pchar ; var nsize : dword ) : boole ; stdcall; [/TD] [/TR] [/TABLE] Ipbuffer: این پارامتر از نوع رشته بوده و نام کاربر را بر می گرداند . Nsize : از نوع عدد می باشد و شامل حد اکثر تعداد کاراکتر های ipbuffer می باشد . مثال : [TABLE] [TR] [TD="class: gutter"]1 2 3 4 5 6 7 8 9 10 11 [/TD] [TD="class: code"]Function computername:strin; Var Lenword; Name:string; Begin Len := max_path+1; Setlength(name , max_path+1); Getusername(pchar(name) , len); Setlength(name , strlen(pchar(name))); Result := uppercase(name); End; [/TD] [/TR] [/TABLE]
پاسخ : استفاده از توابع API در دلفی بدست آوردن نام کامپیوتر: [TABLE] [TR] [TD="class: gutter"]1 [/TD] [TD="class: code"]Function Getcomputername( Ipbuffer : pchar ; var nsize : Dword ) : bool ; stdcall; [/TD] [/TR] [/TABLE] Ipbuffer: این پارامتر از نوع رشته بوده و شامل متغیری بوده که نام کامپیوتر در آن قرار می گیرد . Nsize : از نوع عدد می باشد و شامل تعداد کاراکتر هایی است که باید نمایش داده شود و باید از 31 بیشتر باشد . اگر تابع کار خود را به خوبی انجام ندهد در متغیر در nsize صفر یا null قرار می گیرد مثال : [TABLE] [TR] [TD="class: gutter"]1 2 3 4 5 6 7 8 9 10 11 [/TD] [TD="class: code"]Function computername:strin; Var Lenword; Name:string; Begin Len:=max_path+1; Setlength(name,max_path+1); Getcomputername(pchar(name),len); Setlength(name,strlen(pchar(name))); Result:=uppercase(name); End; [/TD] [/TR] [/TABLE]
پاسخ : استفاده از توابع API در دلفی با این کد می تونید یه برنامه رو اجرا کنید ( مثلا NotePad ) [TABLE] [TR] [TD="class: gutter"]1 [/TD] [TD="class: code"]ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL) ; [/TD] [/TR] [/TABLE] حالا اگه بخواید یک فایل متنی رو با NotePad باز کنید کدش باید به جای اولین Nil آدرس فایل رو بنویسید : [TABLE] [TR] [TD="class: gutter"]1 [/TD] [TD="class: code"]ShellExecute(Handle,'open', 'c:\windows\notepad.exe','c:\Example.txt', nil, SW_SHOWNORMAL) ; [/TD] [/TR] [/TABLE] با کد بالایی ( اولی ) می تونید یک پوشه رو هم باز کنید و هم چنین یک صفحه وب رو، فقط به جای آدرس NotePad باید آدرس پوشه یا آدرس صفحه وب رو بنویسید. ارسال ایمیل : [TABLE] [TR] [TD="class: gutter"]1 2 3 4 5 6 7 8 9 [/TD] [TD="class: code"]var em_subject, em_body, em_mail : string; begin em_subject := 'This is the subject line'; em_body := 'Message body text goes here'; em_mail := 'mailtoelphi.guide@about.com?subject=' + em_subject + '&body=' + em_body ; ShellExecute(Handle,'open', PChar(em_mail), nil, nil, SW_SHOWNORMAL) ; end; [/TD] [/TR] [/TABLE]
پاسخ : استفاده از توابع API در دلفی Function createdc(ipszdriver,ipszdevice,ipszoutputchar;ip dwminit devicemod):hdc;از این تابع برای ساختن پرده زمینه استفاده می شود. Ipszdriver : این پارامتر از نوع رشته می باشد و شامل نام درایوری است که قرار است پرده زمینه روی آن ساخته شود . Ipszdevice: این پارامتر از نوع رشته بوده و شامل device خروجی می باشد ipszoutput: از نوع رشته بوده و port خروجی را مشخص می کند Ipinitdata: یک اشاره گر به ساختار devmod می باشد ک Function drawtext(hdc:hdc;ipstringchar;ncount:integer;var iprect:trect;uformat:unit):integer;از این تابع برای ترسیم متن روی پرده DC استفاده می شود . مثال: ابتدا یک تایمر قرار داده و hnterval آن را برابر با 10 قرار دهید و در قسمت implemention آن متغیر I از نوع Boolean تعریف کنید . procedure TForm1.Timer1Timer(Sender: TObject); var h:hdc; r:trect; begin h:=createdc('display',nil,nil,nil); r:=rect(620,-60,1020,80); drawtext(h,'SWAN SOFT GROUP',-1,r,dt_singleline or dt_center or dt_vcenter); deletedc(h); if i = false then begin timer1.Interval:=1000; i:=true; end; form1.Hide; end;
پاسخ : استفاده از توابع API در دلفی کپی ، کات و حذف یک پوشه ... function CopyDir(const fromDir, toDir: string): Boolean; var fos: TSHFileOpStruct; begin ZeroMemory(@fos, SizeOf(fos)); with fos do begin wFunc := FO_COPY; fFlags := FOF_FILESONLY; pFrom := PChar(fromDir + #0); pTo := PChar(toDir) end; Result := (0 = ShFileOperation(fos)); end; function MoveDir(const fromDir, toDir: string): Boolean; var fos: TSHFileOpStruct; begin ZeroMemory(@fos, SizeOf(fos)); with fos do begin wFunc := FO_MOVE; fFlags := FOF_FILESONLY; pFrom := PChar(fromDir + #0); pTo := PChar(toDir) end; Result := (0 = ShFileOperation(fos)); end; function DelDir(dir: string): Boolean; var fos: TSHFileOpStruct; begin ZeroMemory(@fos, SizeOf(fos)); with fos do begin wFunc := FO_DELETE; fFlags := FOF_SILENT or FOF_NOCONFIRMATION; pFrom := PChar(dir + #0); end; Result := (0 = ShFileOperation(fos)); end; برای استفاده از این کدها باید ShelAPI رو در بخش Uses اضافه کنید ...
پاسخ : استفاده از توابع API در دلفی با این تابع کارهای زیادی میشه کرد من خودم برای تغییر بک گروند ازش استفاده می کنم . [TABLE] [TR] [TD="class: gutter"]1 [/TD] [TD="class: code"]function SystemParametersInfo( uiaction:unit ;uiparam:unit;Pvparamvoid;fwinini:unit):bool; [/TD] [/TR] [/TABLE] مثال: [TABLE] [TR] [TD="class: gutter"]1 [/TD] [TD="class: code"]SystemParametersInfo(SPI_SETDESKWALLPAPER ,0,pchar(bmpfile),SPIF_SENDCHANGE ); [/TD] [/TR] [/TABLE] البته برای تغییر باید یا فایل bmp باشه یا اونو به jpg تبدیل کنین که تو سایت یه پست برای تبدیل jpg به bmp هست .
پاسخ : استفاده از توابع API در دلفی [h=2]activatekeyboardlayout[/h] با این تابع میشه زبان را تغییر داد البته سیستم بای زبان مورد نظر داشته باشد . [TABLE] [TR] [TD="class: gutter"]1 [/TD] [TD="class: code"]Function activatekeyboardlayout(hkl:hkl;flags:unit)bool; [/TD] [/TR] [/TABLE] مثال: در این مثال زبان صفحه کلید را به زبان بعدی که سیستم پشتیبانی می کند تغییر می دهد. [TABLE] [TR] [TD="class: gutter"]1 2 3 4 5 6 7 [/TD] [TD="class: code"]Function setlang : Boolean; Begin If activatekeyboardlayout ( hkl_next , kl_reorder ) then Result : = true Else Result : = false; End; [/TD] [/TR] [/TABLE]