سلام دوستان
چه طوری میشه به شاخه ی program file و start Up دسترسی داشت.
یعنی چطوری میتونم پیداش کنم
سلام دوستان
چه طوری میشه به شاخه ی program file و start Up دسترسی داشت.
یعنی چطوری میتونم پیداش کنم
لطف کن سوالات را کامل تر بیان کن
این دو پوشه برای هر کاربر متفاوت است (البته می تواند برای همه کاربران هم یکسان گردد)
مسیر پوشه StartUp به شکل زیر است
C:\Documents and Settings\نام کاربر\Start
Menu\Programs\Startup
و پوشه ی Program Files بزای همه ی کاربران به شکل زیر است.
C:\Documents and Settings\All Users\Start Menu\Programs\
که می توان نام کاربر را با All Users و برعکس عوض کرد.
شما برای به دست آوردن این مسیر کافیه مسیر نصب ویندوز(درایو نصب) و نام کاربر جاری را به دست آورید و به راحتی می توانید مسیر را بسازید.
البته شاید تابع مستقیم هم داشته باشد!!!
اگر می خواهید به برنامه ی خود حالت نصبی بدهید از Inastall Shield که به همراه دلفی موجود است استفاده کنید.
کد زیر رو تست کن بد نمی بینی
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;
[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 و برعکس عوض کرد.
خوب درسته اما مشکل منم همینه که نمیتونم شاخهی نصب ویندوز رو پیدا کنم
و در باره ی انستال شید
من خودم واسه برنامم انستالش رو نوشتم
و با انستال شید یه کم مشکل دارم
و هم چنین صبح کد مربوط به شاخه ها رو پیدا کردم
اگه بخواهید میتونم در اختیارتون بذارم
با تشکر .
InstallShield خیلی راحته! تو این سایت مطلب در موردش پیدا می کنی!
اما برای پیدا کرد مسیر ویندوز این لینک را ببینید
http://www.barnamenevis.org/sh...3B%E4%CF%E6%D2
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;
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.
sfCommon_Startup : nFolder := CSIDL_COMMON_STARTUP;
sfStartup : nFolder := CSIDL_STARTUP;
sfPrograms : nFolder := CSIDL_PROGRAMS;
//Add other special folders ID
لیست این ID ها رو از کجا میشه بدست آورد ؟
با سلام
من این سوال روی جای دیگه پرسیده بودم که نمیدونم برای چی قفل شد !!= https://barnamenevis.org/showthread.php?t=96919
خوب حالا :
usesکه برای My Documents باید اینجوری بشه !!
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;
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 کردم رو ببینید درست هست !! )
ممنون
وقتی فقط با 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');
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.