PDA

View Full Version : Startup folder



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

علی کشاورز
یک شنبه 17 مهر 1384, 04:41 صبح
من قبلا کدی که مسیر پوشه 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, 13:52 عصر
من قبلا کدی که مسیر پوشه 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

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

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



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

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

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

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

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

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

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

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

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

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