PDA

View Full Version : فولدر ویندوز



Milad2002b
دوشنبه 02 شهریور 1383, 21:10 عصر
چگونه میتوان در دلفی فولدر ویندوز (یا فولدر فونتها ) رو پیدا کرد ؟

با تشکر

ara_prg
سه شنبه 03 شهریور 1383, 08:53 صبح
برای بدست آوردن فولدر ویندوز از دستور GetWindowsDirectory استفاده کنید و برای بدست آوردن سایر فولدرها مثل فولدر Font , desktop , My Document باید آنها را در آدرس زیر از registery بخوانید

HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\Shell Folders

به همین راحتی :wink:

SalarSoft
سه شنبه 03 شهریور 1383, 13:18 عصر
به همین راحتی


Function GetFontDir:TFilename;
Begin
Result:=GetRegStringValue('Software\Microsoft\Wind ows\CurrentVersion\Explorer\Shell Folders','Fonts',HKEY_CURRENT_USER);
end;

Milad2002b
سه شنبه 03 شهریور 1383, 13:42 عصر
با Error مواجه شدم :?

ara_prg
سه شنبه 03 شهریور 1383, 18:19 عصر
البته بهتر است بگویم از این هم راحتر - زیرا بهتر است از TRegistry Class دلفی استفاده کنید.


حالا به همین راحتی :wink: [/code]

SalarSoft
سه شنبه 03 شهریور 1383, 18:40 عصر
البته بهتر است بگویم از این هم راحتر - زیرا بهتر است از TRegistry Class دلفی استفاده کنید.


حالا به همین راحتی
نه خیر!

باید در قسمت Uses یونیت ComObj رو اظافه کنی!

حالا به همین راحتی! :mrgreen:

ara_prg
سه شنبه 03 شهریور 1383, 19:22 عصر
بابا من پیرمرد را اینقدر اذیت نکنید. باز هم که اشتباه کردید زیرا نیاز به هیچ یک از این کارها نیست و فقط باید یونیت Registry را Uses کنید.



var Reg: TRegistry;
FontFolder : string;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVe rsion\Explorer\Shell Folders',False) then
FontFolder := Reg.ReadString('Fonts');


OK :wink:

Milad2002b
سه شنبه 03 شهریور 1383, 20:21 عصر
دست همه اعم از پیر و جوون درد نکنه :flower:

ara_prg
چهارشنبه 04 شهریور 1383, 08:32 صبح
بابا حالا ما یک چیزی گفتیم قرار نشد دیگه ما را پیر کنید. :wink:

_alish_
چهارشنبه 04 شهریور 1383, 08:51 صبح
var
winPath:array [0..255] of char;
begin
GetWindowsDirectoryA(WinPath,MAX_PATH);
ShowMessage(WinPath);
end;


حالا خدایی چند سالت پیر مرد :?:

SalarSoft
چهارشنبه 04 شهریور 1383, 09:20 صبح
:mrgreen:

SalarSoft
چهارشنبه 04 شهریور 1383, 09:26 صبح
بابا من پیرمرد را اینقدر اذیت نکنید. باز هم که اشتباه کردید زیرا نیاز به هیچ یک از این کارها نیست و فقط باید یونیت Registry را Uses کنید.

پدر یزرگ جان :mrgreen: خب البته که درسته!

اما راهی که من گفتم برای کار های سریعی که گفتم مناسبه! :)

ara_prg
چهارشنبه 04 شهریور 1383, 09:45 صبح
پسرم گلم من هم نگفتم که راه شما قلط است بلکه گفتم راه خیلی راحتی برای این کار وجود دارد که تنها با کلاسهای داخلی دلفی بتوان کار کرد.

:wink:

_alish_
چهارشنبه 04 شهریور 1383, 10:05 صبح
گیر میدی پیرمرد API کی خیلی داخلیتر است :wink:
دقیقا بگو چی می خواهی ؟
Solar , Avator ت مارا کشته فکر می کنی بچه ها با دیدنت خوشحال می شند اینو کی بهت گفته داداش :D
ولی کار گرافیکیت خیلی باحالتر است :گیج: :flower:

ara_prg
چهارشنبه 04 شهریور 1383, 10:21 صبح
گیر میدی پیرمرد API کی خیلی داخلیتر است


بابا ما که گیر ندادیم و از اول هم APIای که شما گفتید هم گفته بودیم. اما اینم بگم که avator من خیلی ها را کشته :wink:

_alish_
چهارشنبه 04 شهریور 1383, 10:30 صبح
یک راه آسان اینه که به User بگی در یک Edit آدرس را برات تایپ کنه :قهقهه:
اگر هم User نفهمید بهش راهنمایی کن در درایو بگرده پوشه ای که اولش Win است :shock:

SalarSoft
چهارشنبه 04 شهریور 1383, 13:53 عصر
پسرم گلم من هم نگفتم که راه شما قلط است بلکه گفتم راه خیلی راحتی برای این کار وجود دارد که تنها با کلاسهای داخلی دلفی بتوان کار کرد.

عجله می کنی پیر مرد! :lol:

هم تابع GetRegStringValue و هم TRegistry از توابع ویندوز استفاده می کنند(یعنی چاره ای ندارند).

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

البته که معلوم است TRegistry حافظه بیشتری نسبت به GetRegStringValue اشغال می کند.

پس در این مواقع که فقط نیاز به خواندن یک مقدار داریم استفاده از این تابه به صرفه تر است!

نکته آخر: GetRegStringValue همانند Tregistry عمل می کند. ولی همانطور که گفتم صریح تر! :)

موفق باشید! :lol:

MSK
جمعه 06 شهریور 1383, 17:41 عصر
شما پدربزرگا بجای اینکه به جون هم بیفتید بهتره از این استفاده بکنید:

AddFontResource(PChar(MyFont));

ara_prg
جمعه 06 شهریور 1383, 18:34 عصر
چه ربطی داشت؟
ما که نخواستیم Font ای را اضافه کنید، بلکه می خواستیم آدرس آن را پیدا کنیم کوچولوی من :wink:

MSK
جمعه 06 شهریور 1383, 19:38 عصر
من که تاحالا ندیدم کسی آدرس دایرکتوری Font رو واسه قشنگیش بخواد :skull:

MSK
چهارشنبه 25 شهریور 1383, 22:02 عصر
و در نهایت یه سوال کوچولو:

تابع های قشنگ دیگری مثل GetRegStringValue برای خواندن فرمت های دیگه یا نوشتن اونا وجود نداره؟

SalarSoft
پنج شنبه 26 شهریور 1383, 11:56 صبح
البته که هست:

CreateRegKey
DeleteRegKey :)

MSK
جمعه 27 شهریور 1383, 19:22 عصر
:flower:

MSK
جمعه 27 شهریور 1383, 19:24 عصر
آقا اینام که برای String بود؟ :?