PDA

View Full Version : طرز استفاده از ShellExecute



hamzehshabani
یک شنبه 25 بهمن 1388, 23:09 عصر
سلام دوستان من خیلی تازه کارم میخوام نوت پد رو تو برنامم باز کنم اما نمیدونم چطوری.

جستجو کردم و گفتن با ShellExecute اما هرچی خوندم متوجه نشدم.

میشه یکی کاملا بهم توضیح بده؟

Mahmood_M
دوشنبه 26 بهمن 1388, 00:16 صبح
ShellExecute یک تابع API هست ( تقریبا میشه گفت API ها توابعی هستند که به نوعی رابط بین برنامه و ویندوزاند به صورت مستقیم ) که باهاش می تونید به ویندوز دستور بدید یک درخواست رو اجرا کنه !! ، حالا درخواست شما می تونه اجرای یک فایل یا نمایش یک صفحه وب یا هر چیز دیگه ای ( البته قابل قبول برای ویندوز ) باشه ... ، ولی به طور معمول برای اجرا و نمایش فایلها قرار داده شده ...
قالب این دستور به شکل زیر هست :
ShellExecute(hWnd: HWND; Operation, FileName, Parameters, Directory: PChar; ShowCmd: Integer);
این دستور چند تا ورودی داره که به شرح زیر هستند :
hwnd : این ورودی مربوط به مقدار Handle پنجره ای هست که دستور رو می فرسته که غالبا Handle پنجره برنامه خودمون رو درش قرار می دیم ...
Operation : این ورودی درواقع دستور یا درخواستی هست که برای اجرا به برنامه می دیم
File Name : اگر درخواستتون اجرای یک فایل بود ، نام فایل ( همراه با آدرس ) رو در این ورودی قرار می دید ( و قسمت Operation رو خالی می زارید ! )
Parameters : در این قسمت پارامترهای اجرای فایل قرار می گیرن ( پارامتر ها مقادیری هستند که در شروع اجرای یک برنامه به اون برنامه ارسال می شن ، سازنده ی یک برنامه می تونه چند دستور رو به عنوان پارامتر برنامه مشخص کنه و در هنگام اجرای برنامه اونها رو چک کنه و برای هر کدوم وظیفه ی خاصی قرار بده ، به عنوان مثال اگر برنامه ی Word رو با پارامتر " safe/ " اجرا کنید ، برنامه ی Word به حالت Safe Mode بالا میاد )
Directory : این مقدار مربوط به پوشه یا مسیری هست که اجرای فایل از اون مسیر انجام میشه ، منظور پوشه ای که فایل در اون قرار داره نیست ! ، مثلا اگر با این دستور برنامه ی NotePad رو اجرا کنید و مقدار این خاصیت رو برابر با آدرس " C:\Windows " قرار بدید ، در اینصورت اگر بعد از اجرای برنامه ی Notepad بخواید فایلی رو توش Open کنید ، در پنجره ی Open به صورت پیشفرض مسیر C:\Windows نمایش داده میشه ...
ShowCmd : این مقدار مربوط به نحوه ی نمایش فایل هست که مقادیر معمولش به صورت زیر هستند :

SW_ShowNormal
SW_ShowMaximized
SW_ShowMinimized
SW_Hide
و ...

که فکر کنم کاربرد هرکدوم با توجه به اسمشون مشخص باشه ...
نکته ی آخر اینکه برای استفاده از این دستور باید یونیت ShellApi رو به قسمت Uses یونیت اضافه کنید ...
این هم یک مثال برای اجرایNotepad
ShellExecute(Handle, nil, 'Notepad.exe', nil, 'C:\Windows', SW_SHOWNORMAL);
توجه کنید که در کد بالا من آدرس کامل Notepad رو ننوشتم ، با این کار ویندوز به دنبال نام نوشته شده می گرده و اولین فایلی که پیدا می کنه رو نمایش میده ، و فکر کنم جستجو رو هم از پوشه ی ویندوز و System32 شروع می کنه و یا فقط اون مسیرها رو می گرده ...
...
برای باز کردن یک صفحه ی وب هم می تونید به جای نام فایل آدرس صفحه رو بنویسید :
ShellExecute(Handle, nil, 'http://Barnamenevis.org', nil, nil, SW_SHOWNORMAL);
فکر کنم توضیحات کامل بود ...
موفق باشید ...

hamzehshabani
دوشنبه 26 بهمن 1388, 11:30 صبح
خیلی ممنون از لطفت عزیزم ایشالا داماد شی.