PDA

View Full Version : سوال: اجرای فایل از مسیر جاری



lolojoon
سه شنبه 16 شهریور 1389, 15:56 عصر
با سلام خدمت همه دوستان عزیز
کسی از دوستان می دونه داخل دلفی چطوری می شه یک فایل PDF رو از مسیری که در پوشه ای در CD هست و فایل اجرایی برنامه هم کنارش هست اجرا کنم ؟
با استفاده از تابع ShellExecute هم استفاده کردم ولی به نتیجه نرسیدم

ShellExecute(Handle, 'open',PChar(ExtractFilePath(Application.ExeName) +
'Keshavarzi\ALL.pdf'), nil, nil, SW_SHOWNORMAL);

امیدوارم منظورم رو رسونده باشم
می خوام فایل های PDF رو از روی یک CD که اتوران داره اجرا کنم

Felony
سه شنبه 16 شهریور 1389, 16:02 عصر
چرا به نتیجه نرسیدید ؟ فایل اجرایی برنامه رو روی CD رایت کردید ؟
کد زیر رو تست کنید :

ShellExecute(0,'Open',PChar(ExtractFilePath(Applic ation.ExeName) +
'Keshavarzi\ALL.pdf'),'',nil,1);

lolojoon
سه شنبه 16 شهریور 1389, 16:19 عصر
بازم جواب نداد
هنوز رایت نشده .
ولی باید الان وقتی فایل اجرایی کنار فایل PDF هست اجرا بشه
ولی با کد شما هم نشد

Felony
سه شنبه 16 شهریور 1389, 16:35 عصر
آدرس رو به صورت مستقیم میدید کد درست کار میکنه ؟

lolojoon
سه شنبه 16 شهریور 1389, 16:40 عصر
ShellExecute(Handle,'open',Pchar('d:\Keshavarzi\AL L.pdf'),Nil,Nil,SW_SHOWNORMAL);
این طوری کار می کنه

Delphi-Man
سه شنبه 16 شهریور 1389, 16:59 عصر
ShellExecute(Handle,'open',Pchar('d:\Keshavarzi\AL L.pdf'),Nil,Nil,SW_SHOWNORMAL); این طوری کار می کنه
خیلی عجیبه! مطمئن بشید که فایل اجرایی داره از مسیر D:\ اجرا میشه. غیر از این دلیل دیگه ای نمیتونه داشته باشه. نتیجه ی این دستور رو بهش توجه کنید:


ShowMessage(extractfilepath(application.exename))

lolojoon
سه شنبه 16 شهریور 1389, 17:27 عصر
دوست عزیز از روی هارد با دادن مسیر کامل براحتی اجرا می شه
ولی وقتی بطور مثال D:\ را حذف میکنم تا برای CD اتوران دار آمادش کنم
دیگه فایل رو باز نمیکنه
با این که فایل اجرایی در مسیر اصلی در کنار پوشه مربوط به فایل های PDF هست

lolojoon
سه شنبه 16 شهریور 1389, 17:43 عصر
تابعی به صورت زیر نوشتم ولی بازم جواب نمیده


var
ch: Char;
s,str1: string;
begin
for ch := 'C' to 'Z' do
begin
s := ch + ':\';
if GetDriveType(PChar(s)) = DRIVE_CDROM then
begin
str1 :=s[1];

end;

end;

ShellExecute(Handle,'open',Pchar(str1+':\Keshavarz i\ALL.pdf'),Nil,Nil,SW_SHOWNORMAL);
end;

lolojoon
سه شنبه 16 شهریور 1389, 20:30 عصر
از همه دوستان ممنون
مشکلم حل شد
تشکر ویژه از دوست عزیزم مجتبی تاجیک