PDA

نسخه کامل مشاهده نسخه کامل : دستور اجرای برنامه ی اگزه در دلفی



امين آريا
19-08-2006, 18:12
سلام دستور صدا زدن و اجرای یک برنامه ی اگزه در دلفی چیه؟ اگه تو انجمن هم بوده سرزنش نکنید چون وقت نداشتم بگردم

soldier
19-08-2006, 23:32
سلام
اگر منظور شما اجراي يه برنامه هست كه همون اچزه هست اين دستورشه


اول shellApi رو اضافه کن توی uses !

بعد با این دستور فراخوانی کن
ShellExecute(0,'','E:\1.exe',0,0,0);

به جاب E:\1.exe آدرس دقیق فایلی که می خواهی اجرا بشه
صفر اولی هم عددی است که مقدار هندلی که برنامه اجرا میشه رو تنظیم می کنه
امید وارم که مفید واقع بشه
در ضمن اگر جواب گرفتی خبر بده
اگر هم نه بگو تا یه روش دیگه بهت بگم

shayan_p30
14-12-2006, 08:21
سلام
نميدونم چرا همه اين سوال رو دارن منم همش اين جوابو دارم:
براي اجرا كردن فايل ها از درون دلفي راه هاي مختلفي وجود دارد كه من مختصري از كامل ترين راه را ميگو يم:

براي اين كار تابعي وجود دارد به نام ShellExecute كه در يونيت ShellApi تعريف شده است بنابراين لازم است ابتدا يونيت ShellApi را به ليست يونيتهاي پروژه اضافه كنيد.اين تابع يكي از توابع قدرتمند براي اجراي فايل است.شكل كلي تابع به اين صورت است:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
پارامتر اول يك متغيير از نوع HWND است.
لازم است براي كساني كه با مفهوم Handle در ويندوز آشنا نيستند توضيحاتي راجع به Handle بدهم. هر پنجره يا آبجكتي در ويندوز داراي يك Handle است كه براي دسترسي به آن پنجره يا آبجكت شما بايد از اين Handle استفاده كنيد. در واقع يك Handle يك عدد در مبناي 16 است. Handle يك عدد unique يا همتا است كه ويندوز آن را مقداردهي مي كند. اگر از يك پنجره دو Instance اجرا شده باشد (مثلا يك برنامه دو بار اجرا شده باشد) هر كدام از اين Instanceها يك Handle جداگانه دارند(فكر كنم كمي پيچيده بود).
با اين تفاصيل پارامتر اول Handle پنجره اي است كه اين دستور را صادر كرده است. شما براي اين پارامتر مي توانيد از Application. Handle استفاده كنيد و يا آن را برابر 0 قرار دهيد. به علاوه مي توانيد Handle يك برنامه ديگر را بدهيد.
در صورتي كه شما مي خواهيد پيغام هاي اخطار آن فايل را دريافت كنيد يا آن را كنترل نماييد و يا تا اجراي كامل آن اجراي برنامه را متوقف كنيد با Handle برنامه خود را با استفاده از Application.Handle به اين پارامتر بدهيد.

پارامتر دوم مشخص كننده وظيفه اي است كه قرار است انجام شود. اين پارامتر مقادير پيش فرضي ندارد و بستگي به خصوصيات فايل اجرايي دارد. روي يك فايل از نوع Text كليد سمت راست ماوس را بزنيد. احتمالا موارد بالاي ليست "open"، "Edit with ..." , "print" است. هر كدام از اين رشته هاي مي توانند يك عمليات يا Operation باشند. به عنوان مثال شما مي خواهيد يك فايل Text را چاپ كنيد. در اين صورت كافي است از عبارت print به عنوان operation استفاده كنيد. يا مي خواهيد يك فايل rar را با استفاده از WinRar باز كنيد. در اين صورت مي توانيد از "Extract files" استفاده كنيد. حتما تا به حال متوجه شده ايد كه دستور ShellExecute چه مقدار انعطاف پذير است. با استفاده از اين فرمان مي توانيد هر گونه دستور Shell را اجرا نماييد.

پارامتر سوم مشخص كننده نام فايل يا شاخه اي است كه شما مي خواهيد عمليات بر روي آن انجام شود.

حتما تا حالا با طرز كار اين تابع آشنا شده ايد اما اگر لازم بود در پست هاي بعدي به توضيح بقيه ي اجزا اين تابع و مثال هاي جالب تري از اين تابع (فرستادن ميل و ...) پرداخته ميشود. بدرود:happy:

h756224
16-12-2011, 21:30
سلام

حتما تا حالا با طرز كار اين تابع آشنا شده ايد اما اگر لازم بود در پست هاي بعدي به توضيح بقيه ي اجزا اين تابع و مثال هاي جالب تري از اين تابع (فرستادن ميل و ...) پرداخته ميشود. بدرود:happy:
بی زحمت اگر امکان داره باقی پارامترهای این تابع رو هم توضیح بدید .

من در مورد این دستورات shell یه کمی گیج شدم میشه یه توضیح کامل هم در موردش بدی ؟چون تا جایی که من شیندم هر کاری که ویندوز انجام میده رو میشه از طریق دستورات شل هم انجام داد . مثلا برای خاموش کردن سیستم از طریق دستورات شل چیکار باید کرد یا برای تغییر دادن یک پارامتر در رجیستری ویندوز چطور میشه از دستورات شل استفاده کرد ؟ یا مثلا همون ارسال ایمیل که فرمودید رو چطور میشه انجام داد آیا یک روند کلی داره یا اینکه اجرای هر دستوری راه خاص خودش رو داره ؟

h756224
16-12-2011, 21:57
سلام مجدد .

با پیدا کردن مرجع دستورات شل در msdn مایکروسافت تقریبا تمام سوالاتم حل شد . آدرس مرجع رو اینجا میزارم که هر کسی خواست ازش استفاده کنه . امیدوارم به دردتون بخوره که حتما هم میخوره !

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ](v=VS.85).aspx