PDA

View Full Version : سوال: نمایش محتویات فایل در یک برنامه



Rahimiyan
پنج شنبه 15 مرداد 1388, 14:24 عصر
یک برنامه نوشتم که یک برای ذخیره داده ها از یک نوع فایل استفاده میکنه.
حالا می خوام یک کاری کنکم وقتی روی ان فایل کلیک مکنیم محتویات فایل با این برنامه باز شود.
هر کاری می کنم محتویات را نشان نمیده!؟:متفکر:

Reza_Yarahmadi
پنج شنبه 15 مرداد 1388, 15:53 عصر
این توضیحات رو یکی از دوستان توی این سایت گذاشته لینکش رو نمیدونم.


یک API است که اینکار را می کند:



Private Const SW_HIDE = 0
Private Const SW_SHOW = 5
Private Const SW_MINIMIZE = 3
Private Const SW_MAXIMIZE = 6
Private Const SW_NORMAL = 1
Private Const SW_SHOWDEFAULT = 10


Private Declare Function ShellExecuteA Lib "shell32.dll" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

اين تابع يک فايل دلخواه را در يک برنامه مرتبط باز مي کند
اگر تابع کار خود را با موفقيت انجام دهد مقدار بر گشتي يک اشاره گر از محدوده ساخته شده و در غير اينصورت مقدار بر گشتي صفر خواهد بود

hwnd : هندل پنجره اي که تابع بايد تحت آن اجرا شود
lpOperation : نوع عملي که بايد روي فايل انجام گيرد ( اين اعمال وقتي روي فايل مورد نظر راست کليک کنيد ظاهر مي شوند )
lpFile : فايل مورد نظر (فقط نام فايل با پسوند)
lpParameters : پارامتر هاي ديگري که ممکن است برنامه مورد نظر به آنها احتياج داشته باشد
lpDirectory : دايراکتوري شامل فايل مورد نظر
nShowCmd : نحوه نمايش برنامه مرتبط
SW_HIDE : مخفي
SW_SHOW : غير مخفي
SW_MINIMIZE : کمينه
SW_MAXIMIZE : بيشينه
VSW_NORMAL : اندازه عادي
SW_SHOWDEFAULT : اندازه پيش فرض


این هم عکس آن پیدا کردن کدام برنامه متعلق به کدام فایل است :


Private Declare Function FindExecutableA Lib "shell32.dll" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long


اين تابع برنامه مرتبط با يک فايل خاص را بر مي گرداند
اگر تابع با خطايي مواجه شود مقدار بازگشتي صفر و در غير اينصورت مقدار بازگشتي يک اشاره گر از قلم ساخته شده خواهد بود

lpFile : فايل مورد نظر
lpDirectory : فولدر پيش فرض
lpResult : اين بافر توسط تابع مقدار دهي مي شود حاوي آدرس فايل اجرايي مرتبط با فايل مورد نظر خواهد بود. مقدار اين بافر را با اندازه کافي بلند در نظر بگيريد ( اين بافر را با رشته اي از جاي خالي مقدار دهي کنيد. براي مثال ( Space ( 255 )