PDA

View Full Version : Startup folder



lord_viper
شنبه 16 مهر 1384, 09:50 صبح
با سلام
باب چه فرمانی میشه ادرس ÷وشه startup رو بدست اورد؟
با تشکر

vcldeveloper
یک شنبه 17 مهر 1384, 04:11 صبح
من قبلا کدی که مسیر پوشه Temorary Internet Files مربوط به کاربری که با حسابش لاگین شدید، را اینجا گذاشته بودم، همون کد رو می تونید به این شکل تغییر بدید:


function GetStartUpPath: string;
var
UserName,
WinDir,
WinDrive : string;
BuffSize : integer;
PSize : Cardinal;
begin
//Get Windows Directory
SetLength(WinDir,Max_Path);
GetWindowsDirectory(PAnsiChar(WinDir),Max_Path);
//if Windows 2000 or higher
if Lo(GetVersion) >= 5 then
begin
WinDrive := Copy(WinDir,0,3); //Extract Windows Drive Letter
//Get Current Username
SetLength(UserName,255);
BuffSize := Length(UserName);
PSize := Integer(Pointer(@BuffSize));
GetUserName(PAnsiChar(UserName),PSize);
SetLength(UserName,Pos(#0,UserName)-1);
Result := Format('%sDocuments and Settings\%s\Start Menu\Programs\Startup\',
[WinDrive,UserName]);
end
else
//if Windows 9x&Me
begin
SetLength(WinDir,Pos(#0,WinDir)-1);
Result := WinDir + '\Start Menu\Programs\Startup\';
end;
end;

Modernidea
پنج شنبه 19 دی 1387, 14:22 عصر
من قبلا کدی که مسیر پوشه Temorary Internet Files مربوط به کاربری که با حسابش لاگین شدید، را اینجا گذاشته بودم، همون کد رو می تونید به این شکل تغییر بدید:


function GetStartUpPath: string;
var
UserName,
WinDir,
WinDrive : string;
BuffSize : integer;
PSize : Cardinal;
begin
....


سلام آقاي كشاورز
من با توجه به كدي كه شما نوشتيد تيكه كد زير در نوشتم ولي هيچ كاري انجام نميشه:


CopyFile('E:\SAVES\Delphi\Exam Time\ExamsTime.exe', pchar(GetStartUpPath), false);//this code

اسم فايل رو درست نوشتم و مسير هم درسته.
اشتباه از كجاست؟

Felony
پنج شنبه 19 دی 1387, 14:54 عصر
اشتباه اینکه توی مسیر مقصد نام فایل مقصد رو تعریف نکردین :



CopyFile('E:\SAVES\Delphi\Exam Time\ExamsTime.exe', pchar(GetStartUpPath+'\Exams Time.exe'), false);

vcldeveloper
پنج شنبه 19 دی 1387, 15:17 عصر
بجای تابع نوشته شده در پست شماره 2 تاپیک، از تابع SHGetSpecialFolderLocation ویندوز برای بدست آوردن مسیر پوشه های خاص مثل پوشه Startup استفاده کنید. برای اطلاعات بیشتر می تونید عبارت SHGetSpecialFolderLocation را در سایت جستجو کنید.

Felony
پنج شنبه 19 دی 1387, 16:12 عصر
بجای تابع نوشته شده در پست شماره 2 تاپیک، از تابع SHGetSpecialFolderLocation ویندوز برای بدست آوردن مسیر پوشه های خاص مثل پوشه Startup استفاده کنید. برای اطلاعات بیشتر می تونید عبارت SHGetSpecialFolderLocation را در سایت جستجو کنید.
من تست کردم ، کد شما صحیح عمل میکنه جناب کشاورز .

vcldeveloper
پنج شنبه 19 دی 1387, 16:45 عصر
من تست کردم ، کد شما صحیح عمل میکنه جناب کشاورز .
میدونم، ولی SHGetSpecialFolderLocation مطمئن تر هست، چون توسط خودِ سیستم عامل ارائه میشه، و ویندوز تضمین میکنه که در هر نسخه آدرس درست پوشه های ویژه توسط این تابع برگدانده بشند.

Modernidea
پنج شنبه 19 دی 1387, 17:02 عصر
بجای تابع نوشته شده در پست شماره 2 تاپیک، از تابع SHGetSpecialFolderLocation ویندوز برای بدست آوردن مسیر پوشه های خاص مثل پوشه Startup استفاده کنید. برای اطلاعات بیشتر می تونید عبارت SHGetSpecialFolderLocation را در سایت جستجو کنید.

سلام
آقاي كشاورز
اين تابعي كه شما گفتيد دلفي من اصلا شناسايي نمي كنه. من يونت shellapi رو هم اضافه كردم.من دلفي 7 كار مي كنم
باتشكر

Modernidea
یک شنبه 22 دی 1387, 23:50 عصر
ببخشيد كسي هلپ نميكنه؟

vcldeveloper
دوشنبه 23 دی 1387, 01:37 صبح
اين تابعي كه شما گفتيد دلفي من اصلا شناسايي نمي كنه. من يونت shellapi رو هم اضافه كردم.من دلفي 7 كار مي كنم
ShlObj.pas

Modernidea
سه شنبه 24 دی 1387, 22:11 عصر
ShlObj.pas
آقاي كشاورز عذرخواهم اين كد رو كجا اضافه كنم؟
شرمنده

vcldeveloper
چهارشنبه 25 دی 1387, 02:07 صبح
آقاي كشاورز عذرخواهم اين كد رو كجا اضافه كنم؟
به uses یونیت تان.