PDA

View Full Version : کپی یک نسخه از برنامه در مسیری خاص توسط خودش



amincaspian
سه شنبه 06 مرداد 1388, 13:34 عصر
سلام دوستان



خواستم بدونم چطور وقتی یک برنامه اجرا می شه می تونه یه کپی از خودش تو یه مسیر خاص مثلا startup بزاره .


به عنوان مثال وقتی برنامه من توی cd هست و من اجراش می کنم یه کپی از خودش تو استارت اپ بزاره و بعد اجرا بشه ؟

Felony
سه شنبه 06 مرداد 1388, 14:07 عصر
به کمک تابع CopyFile میتونید یک فایل رو کپی کنید ، برای به دست آوردن مسیرهای خاص در ویندوز هم از تابع SHGetSpecialFolderLocation استفاده کنید .

amincaspian
سه شنبه 06 مرداد 1388, 16:19 عصر
به کمک تابع CopyFile میتونید یک فایل رو کپی کنید ، برای به دست آوردن مسیرهای خاص در ویندوز هم از تابع SHGetSpecialFolderLocation استفاده کنید .



می شه یه مثال در مورد استفاده از SHGetSpecialFolderLocation بزنید البته اگه امکانش هست

amincaspian
سه شنبه 06 مرداد 1388, 17:21 عصر
می شه یه مثال در مورد استفاده از SHGetSpecialFolderLocation بزنید البته اگه امکانش هست






کدشو پیدا کردم ولی نمی دونم چرا برنامه رو کپی نمی کنه ؟ please help me




var
filesource : string;
filedes:string;
begin
filedes:='C:\Documents and Settings\Amin\Start Menu\Programs\Startup';
filesource:=GetCurrentDir+'project1.exe' ;
CopyFile(PChar(fileSource),PChar(filedes), false);

end;



البته filesource رو اینجوری هم مقدار دهی کردم ولی جواب نداد
(filesource:=ParamStr(0

Felony
سه شنبه 06 مرداد 1388, 17:36 عصر
برای کپی شدن فایل باید همراه آدرس مقصد نام فایل رو در مقصد مشخص کنید و اون BackSlash رو هم باید بزارین تا آدرس کامل باشه :


var
FileSource : string;
FileDes:string;
begin
FileDes:='C:\Documents and Settings\Amin\Start Menu\Programs\Startup\';
FileSource:=GetCurrentDir+'\project1.exe' ;
CopyFile(PChar(FileSource),PChar(FileDes+'OwnName. exe'),False);
end;

در ضمن آدرس مقصد رو به صورت دستی دادین ، یعنی این کد فقط روی سیستم شما کار میکنه و روی سیستمهای دیگه این عملیات رو انجام نمیده ( کپی فایل ) چون نام کاربری در سیستم های دیگه ممکنه Amin نباشه یا ویندوز در درایو C نباشه و ...

amincaspian
سه شنبه 06 مرداد 1388, 17:59 عصر
end;[/code]در ضمن آدرس مقصد رو به صورت دستی دادین ، یعنی این کد فقط روی سیستم شما کار میکنه و روی سیستمهای دیگه این عملیات رو انجام نمیده ( کپی فایل ) چون نام کاربری در سیستم های دیگه ممکنه Amin نباشه یا ویندوز در درایو C نباشه و ...



مرسی کارم راه افتاد

برای پیدا کردن یه مسیر خاص باید چیکار کنیم مثلا مسیر نصب ویندوز یا startup ؟

Felony
سه شنبه 06 مرداد 1388, 19:06 عصر
برای به دست آوردن مسیرهای خاص در ویندوز هم از تابع SHGetSpecialFolderLocation استفاده کنید ، در سایت جست و جو کنید نمونه کد پیدا میشه .

جواد ملاولی
سه شنبه 06 مرداد 1388, 20:10 عصر
مرسی کارم راه افتاد

برای پیدا کردن یه مسیر خاص باید چیکار کنیم مثلا مسیر نصب ویندوز یا startup ؟

سلام. یه یونیت براتون میذارم که توابع کاربردی مفیدی داره که خیلی به دردتون می خوره. بعضی از اونها:
GetWinDir : بدست اوردن مسیر ویندوز
GetProgramfilesDir : بدست اوردن پوشه programfiles
GetTempDir
GetWinSysDir
.
.
.