ده جا هم در مورد نحوه فراخوانی فایلهای غیر اجرایی بنویسیم، باز نفر یازدهم همین سوال رو می کنه.
حالا چه ده تا گفتگو قبلی وجود داشته باشه، چه یه دونه گفتگو.
وقتی قبل از پرسیدن سوالشون، زحمت جستجو بخودشون ندن چه فایده؟
برای فراخوانی فایلهای غیر اجرایی مثل txt یا mp3 یا pdf و همچنین فراخوانی یک فایل صرفا توسط یک برنامه خاص
استفاده از تابع ShellExecute موجود در API ویندوز را توصیه می کنم.
برای بکارگیری ساده تر این تابع، من یک Module با نام ModuleShell ساختم که به همراه یک پروژه نمونه ضمیمه
این پست می باشد. در این Module دو تابع عمومی را ایجاد کرده ام :
تابع اول
OpenFile
این تابع دو پارامتر دارد که اولی مسیر یک فایل است که قرار است بازش کنیم، مثلا C:\File.txt
پارامتر دوم این تابع اختیاری است و مشخص می کند که فایل برای چه منظوری باز شود، مقادیر قابل استفاده
بستگی به نوع فایل و تعاریف سیستم عامل دارد ولی مقادیر عمومی اینها هستند :
"open"
"edit"
"print"
"explore"
مثلا اگر قصد باز کردن عادی یک فایل را داریم از مقدار "open" استفاده می کنیم.
یا اگر قصد ویرایش کردن یک فایل را داریم از مقدار "edit" استفاده می شود.
یا اگر قصد چاپ کردن یک فایل را داریم از مقدار "print" استفاده می شود.
یا اگر بخواهیم یک پوشه را در پنجره Explorer ویندوز باز کنیم از مقدار "explore" استفاده می شود.
اگر مقدار پارامتر دوم را مشخص نکنیم، فایل با متد پیشفرض باز می شود که در اغلب موارد شبیه عملکرد "open" است.
مثال 1 :
فایل C:\Text1.txt را بصورت عادی باز می کنیم.
کد:
[B]OpenFile[/B] "C:\Text1.txt"
مثال 2 :
فایل C:\Text1.txt را برای چاپ کردن باز می کنیم.
کد:
[B]OpenFile[/B] "C:\Text1.txt", "print"
مثال 3 :
پوشه C:\MyFolder را با Explorer باز می کنیم.
کد:
[B]OpenFile[/B] "C:\MyFolder", "explore"
تابع دوم
OpenWithFile
این تابع برعکس تابع قبلی مشخص می کند که فلان فایل با کدام برنامه باز شود. مثلا می توانید مشخص کنید که
فایل mp3 فقط با WinAmp باز شود. این تابع هم دو پارامتر دارد که اولی نام برنامه ای است که می خواهید فایل
را با آن باز کنید، مثلا C:\Program Files\Winamp\winamp.exe
پارامتر دوم مسیر فایلی است که قرار است باز شود، مثلا C:\Track01.mp3
مثال 1 :
فایل C:\Track01.mp3 را با WinAmp باز می کنیم.
کد:
[B]OpenWithFile[/B] Environ("ProgramFiles") & "\WinAmp\WinAmp.exe", "C:\Track01.mp3"
توجه کنید که بجای استفاده مستقیم از مسیری مثل C:\Program Files از تابع Environ("ProgramFiles") استفاده شده است.
با این ترفند، همواره مسیر صحیح Program Files را در اختیار خواهیم داشت که ممکن است در کامپیوتر های مختلف
یکسان نباشد.
مثال 2 :
فایل C:\Track01.mp3 را با Windows Media Player باز می کنیم.
کد:
[B]OpenWithFile[/B] Environ("ProgramFiles") & "\Windows Media Player\wmplayer.exe", "C:\Track01.mp3"
پروژه به همراه فایل اجرایی و یک فایل wav نمونه و یک فایل txt نمونه ضمیمه این پست شده است. ابتدا محتویات فایل
zip را در یک پوشه باز کنید و پروژه را در داخل آن پوشه اجرا نمایید تا در استفاده از فایلهای ضمیمه شده در برنامه
مشکلی نداشته باشید.