PDA

View Full Version : دسترسی به program Files



bmanfy
پنج شنبه 21 دی 1385, 18:16 عصر
سلام دوستان
چه طوری میشه به شاخه ی program file و start Up دسترسی داشت.
یعنی چطوری میتونم پیداش کنم

V60
پنج شنبه 21 دی 1385, 23:14 عصر
لطف کن سوالات را کامل تر بیان کن

Mahyaa
جمعه 22 دی 1385, 00:29 صبح
اینا رو ببین :

http://www.delphipages.com/threads/thread.cfm?ID=167983&G=167958
http://www.delphipages.com/threads/thread.cfm?ID=158711&G=158704

bmanfy
شنبه 23 دی 1385, 10:43 صبح
لطف کن سوالات را کامل تر بیان کن


منظور من اینه که چطور میشه اذرس start up ویندوز رو پیدا کرد
د رکل من میخوام یه برنامه رو در start up ویندوز قرار بدم یا یه شاخه ی جدید تو program menu بسازم

dkhatibi
شنبه 23 دی 1385, 11:25 صبح
منظور من اینه که چطور میشه اذرس start up ویندوز رو پیدا کرد
د رکل من میخوام یه برنامه رو در start up ویندوز قرار بدم یا یه شاخه ی جدید تو program menu بسازم

این دو پوشه برای هر کاربر متفاوت است (البته می تواند برای همه کاربران هم یکسان گردد)
مسیر پوشه StartUp به شکل زیر است


C:\Documents and Settings\نام کاربر\Start
Menu\Programs\Startup

و پوشه ی Program Files بزای همه ی کاربران به شکل زیر است.


C:\Documents and Settings\All Users\Start Menu\Programs\
که می توان نام کاربر را با All Users و برعکس عوض کرد.

شما برای به دست آوردن این مسیر کافیه مسیر نصب ویندوز(درایو نصب) و نام کاربر جاری را به دست آورید و به راحتی می توانید مسیر را بسازید.
البته شاید تابع مستقیم هم داشته باشد!!!

اگر می خواهید به برنامه ی خود حالت نصبی بدهید از Inastall Shield که به همراه دلفی موجود است استفاده کنید.

حرفه ای
شنبه 23 دی 1385, 12:53 عصر
سلام دوستان
چه طوری میشه به شاخه ی program file و start Up دسترسی داشت.
یعنی چطوری میتونم پیداش کنم

کد زیر رو تست کن بد نمی بینی



Function ProgramFileDir :string;
Var
Registry: TRegistry;
Begin
Registry:=TRegistry.Create;
Registry.RootKey:=HKEY_LOCAL_MACHINE;
Registry.OpenKey('\SOftware\MicrosOft\Windows\Curr entVersion',True);
Result :=Registry.ReadString('ProgramFilesDir');
Registry.Free;
End;




:لبخندساده: :چشمک: :لبخندساده:

bmanfy
شنبه 23 دی 1385, 17:53 عصر
[quote=dkhatibi;297243]این دو پوشه برای هر کاربر متفاوت است (البته می تواند برای همه کاربران هم یکسان گردد)
مسیر پوشه StartUp به شکل زیر است


C:\Documents and Settings\نام کاربر\Start
Menu\Programs\Startup

و پوشه ی Program Files بزای همه ی کاربران به شکل زیر است.


C:\Documents and Settings\All Users\Start Menu\Programs\
که می توان نام کاربر را با All Users و برعکس عوض کرد.



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

dkhatibi
شنبه 23 دی 1385, 21:29 عصر
InstallShield خیلی راحته! تو این سایت مطلب در موردش پیدا می کنی!

اما برای پیدا کرد مسیر ویندوز این لینک را ببینید
http://www.barnamenevis.org/forum/showthread.php?t=56916&highlight=%E3%D3%26%231740%3B%D1+%E6%26%231740%3B% E4%CF%E6%D2

vcldeveloper
یک شنبه 24 دی 1385, 07:40 صبح
uses
ShlObj;
type
TSpecialFolderName = (sfCommon_Startup, sfStartup, sfPrograms);

function GetSpecialFolderPath(Folder: TSpecialFolderName): string;
var
TmpStr : array [0..Max_Path] of char;
nFolder : integer;
begin
nFolder := 0;
case Folder of
sfCommon_Startup : nFolder := CSIDL_COMMON_STARTUP;
sfStartup : nFolder := CSIDL_STARTUP;
sfPrograms : nFolder := CSIDL_PROGRAMS;
//Add other special folders ID
end;
if SHGetSpecialFolderPath(0,TmpStr,nFolder,False) then
Result := Trim(TmpStr) + '\'
else
//if there is an error in finding the folder's path, return an undefined
//text. Note that blank result returns the current folder!
Result := 'NO PATH';
end;

حرفه ای
یک شنبه 24 دی 1385, 10:26 صبح
دوست خوبم آقای کشاورز

کد جالبی بود ! :تشویق: :تشویق: :تشویق: :تشویق: :تشویق: :تشویق:

موفق باشید :قلب: :قلب:

delphi5
چهارشنبه 12 دی 1386, 09:46 صبح
sfCommon_Startup : nFolder := CSIDL_COMMON_STARTUP;
sfStartup : nFolder := CSIDL_STARTUP;
sfPrograms : nFolder := CSIDL_PROGRAMS;
//Add other special folders ID




لیست این ID ها رو از کجا میشه بدست آورد ؟

delphi5
چهارشنبه 12 دی 1386, 10:04 صبح
از اینجا
:P
http://msdn2.microsoft.com/en-us/library/bb762494.aspx

IISecurity.C
شنبه 11 اسفند 1386, 23:20 عصر
با سلام

من این سوال روی جای دیگه پرسیده بودم که نمیدونم برای چی قفل شد !!= http://barnamenevis.org/forum/showthread.php?t=96919

خوب حالا :

uses
ShlObj;
type
TSpecialFolderName = (sfCommon_Startup, sfStartup, sfPrograms);

function GetSpecialFolderPath(Folder: TSpecialFolderName): string;
var
TmpStr : array [0..Max_Path] of char;
nFolder : integer;
begin
nFolder := 0;
case Folder of
sfCommon_Startup : nFolder := CSIDL_COMMON_STARTUP;
sfStartup : nFolder := CSIDL_STARTUP;
sfPrograms : nFolder := CSIDL_PROGRAMS;
//Add other special folders ID
end;
if SHGetSpecialFolderPath(0,TmpStr,nFolder,False) then
Result := Trim(TmpStr) + '\'
else
//if there is an error in finding the folder's path, return an undefined
//text. Note that blank result returns the current folder!
Result := 'NO PATH';
end;که برای My Documents باید اینجوری بشه !!


uses
ShlObj;
type
TSpecialFolderName = (sfMy Documents);

function GetSpecialFolderPath(Folder: TSpecialFolderName): string;
var
TmpStr : array [0..Max_Path] of char;
nFolder : integer;
begin
nFolder := 0;
case Folder of
sfMy Documents : nFolder := CSIDL_PERSONAL;

//Add other special folders ID
end;
if SHGetSpecialFolderPath(0,TmpStr,nFolder,False) then
Result := Trim(TmpStr) + '\'
else
//if there is an error in finding the folder's path, return an undefined
//text. Note that blank result returns the current folder!
Result := 'NO PATH';
end;


و حالا ما اینکار رو انجام دادیم و مسیر مشخص شد حالا میخوایم یه فایل با نام file.exe را در مسیر پاک کنیم = C:\Documents and Settings\User\My Documents

حالا باید چکار کرد و کد Delete File رو کجا باید اضافه کرد !!! (لطفا کدی که edit کردم رو ببینید درست هست !! )

ممنون

vcldeveloper
یک شنبه 12 اسفند 1386, 03:06 صبح
وقتی فقط با My Document کار دارید، نیازی به تمام اون کد ندارید:


uses
ShlObj;

function GetMyDocument: string;
var
TmpStr : array [0..Max_PATH] of char;
begin
if SHGetSpecialFolderPath(0,TmpStr,CSIDL_PERSONAL,Fal se) then
Result := Trim(TmpStr) + '\';
end;
مثالش برای حذف یک فایل هم میشه یه چیزی مثل این:

DeleteFile(GetMyDocument + 'MyFileName.txt');