View Full Version : سوال: تفاوت در اجرای ShellExecute و WinExec
یوسف زالی
سه شنبه 05 مهر 1390, 10:12 صبح
سلام.
وقتی با دستور زیر برنامه رو اجرا می کنم:
ResultValue := ShellExecute(Application.Handle, 'Open', PChar(S), PChar(P), '', SW_SHOW); // test
خروجی SE_ERR_ACCESSDENIED هست و برنامه اجرا نمی شه.
اما با کد:
ResultValue := WinExec(FilePath_AND_Name, SW_SHOW); // test
اجرا می شه!!
چرا چنین اتفاقی می افته دوستان؟
BORHAN TEC
سه شنبه 05 مهر 1390, 15:16 عصر
مقدار P و S در دستور اول چیست؟
یوسف زالی
سه شنبه 05 مهر 1390, 17:04 عصر
دوست من مگه مهمه؟
شما یک نام و پارامتر هاشو بگذار.
joker
سه شنبه 05 مهر 1390, 17:43 عصر
ظاهرا كه در مورد اجراي فايل اگزه بايد اونا را nil بدي
http://delphi.about.com/od/windowsshellapi/a/executeprogram.htm
ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL) ;
یوسف زالی
سه شنبه 05 مهر 1390, 20:25 عصر
دوست عزیز شما به برنامه تا به حال پارامتر پاس نکردی؟
با nil هم همون نتیجه است.
در اصل مطلب چه فرقی می کنه؟؟؟؟
آقا سوال بسیار شفاف هست.
پارامتر ها ایرادی نداره. اسم فایل درسته. آدرس قابل دسترسی هست. فایل در درایو NTFS نیست. دسترسی فول روی فولدر و فایل و درایو وجود داره. با nil تست شده...
اما دو نتیجه متفاوت گرفته میشه. انتطارش رو داشتم که winexec ضعبف تر عمل کنه اما ظاهرا اینجا برعکس شده.
مشکل از کجاست؟
vcldeveloper
چهارشنبه 06 مهر 1390, 00:50 صبح
در اصل مطلب چه فرقی می کنه؟؟؟؟
فرقش در این هست که من میتونم صدها یا هزاران برنامه مختلف را با ShellExecute و WinExec در ویندوز اجرا کنم، بدون این که به مشکلی که شما ذکر کردید، بر بخورم؛ پس مشکل شما با پارامترهایی که به این توابع ارسال می کنید، و نسخه ویندوز شما ارتباط داره. وقتی من نمیدونم شما دارید چی رو به این توابع ارسال می کنید که از یکی خطا میگیرید، و خطا هم میگه شما اجازه دسترسی به اون چیزی که میخواید اجرا کنید، را ندارید؛ باید چه جوابی برای شما ارسال کنم؟!
همیشه هر وقت که خواستید مشکلی را گزارش کنید، باید این یادتون باشه که اطلاعاتی که در گزارش ذکر می کنید برای reproduce (باز تولید) اون مشکل توسط دیگران کافی باشه. با اطلاعات فعلی شما، شما میگید ShellExecute مشکل داره، چون به شما خطا میده، من هم میگم مشکلی نداره، چون به من خطایی نمیده!
یوسف زالی
چهارشنبه 06 مهر 1390, 14:55 عصر
جناب کشاورز قصد بنده جسارت به دوستان نبوده و نیست.
عرض کردم که با پارامتر ها و نام های مشابه کار انجام شده.
حق با شماست.
ویندوز 7
دلفی 7
هردو هم پارامتر های یکسان دارند.
joker
یک شنبه 10 مهر 1390, 21:46 عصر
اگه نیاز به آرگومانهای اجرای برنامه داری بیا توی همون قسمت اسم فایل استفاده کن و پارامترهای بعدی را nil بزار مشکلتو حل کن بره :)
یوسف زالی
یک شنبه 10 مهر 1390, 22:28 عصر
تست می کنم ببینم درست میشه یا نه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.