نمایش نتایج 1 تا 11 از 11

نام تاپیک: شناختن فایلهای ساخته شده توشط ویندوز

  1. #1
    کاربر دائمی آواتار fazel-d
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بورکینافاسو
    پست
    399

    Exclamation شناختن فایلهای ساخته شده توشط ویندوز

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

  2. #2
    کاربر دائمی آواتار fazel-d
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بورکینافاسو
    پست
    399

    نقل قول: شناختن فایلهای ساخته شده توشط ویندوز

    تاریخ امروز 10 مرداده ها!!!!!!

  3. #3
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    فعلاً تهران - دائم مریلند آمریکا
    پست
    354

    نقل قول: شناختن فایلهای ساخته شده توشط ویندوز

    یک 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 )
    ولی منظورت از
    تاریخ امروز 10 مرداده ها!!!!!!
    چیه . اگر کسی بلد باشد، پاسخ می دهد در غیر اینصورت خیر

  4. #4
    کاربر دائمی آواتار fazel-d
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بورکینافاسو
    پست
    399

    نقل قول: شناختن فایلهای ساخته شده توشط ویندوز

    یک API است که اینکار را می کند:
    اون وقت موضوع قابل بحث هم CSharp هست!!!!!

    لطفا در مورد کد ها توضیح بیشتری بدین. ممنون می شم/

  5. #5

    نقل قول: شناختن فایلهای ساخته شده توشط ویندوز

    Windows Explorer > Tools > Folder Opstions > File Type

  6. #6
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    فعلاً تهران - دائم مریلند آمریکا
    پست
    354

    نقل قول: شناختن فایلهای ساخته شده توشط ویندوز

    به ادرس زیر برو توضیحاتی در مورد API داده است.
    لابد می دانی API چیست. یعنی دسترسی به توابع ویندوز که با C++‎ نوشته شده است،(و البته هر تابع دیگر سی)

    https://barnamenevis.org/showthread.php?t=168579

    تذکر : توابع API در قسمت عمومی کلاس یعنی بالای کلاس نوشته می شود.

  7. #7

    نقل قول: شناختن فایلهای ساخته شده توشط ویندوز

    نقل قول نوشته شده توسط fazel-d مشاهده تاپیک
    اون وقت موضوع قابل بحث هم CSharp هست!!!!!

    لطفا در مورد کد ها توضیح بیشتری بدین. ممنون می شم/

    برای استفاده از API ها ، می توانید به سایت http://www.pinvoke.net مراجعه کرده و نام تابع مورد نظر را در آن جستجو کنید تا معادل مناسب برای استفاده در C#‎ را پیدا کنید.
    استفاده از
    using System.Runtime.InteropServices;

    فراموش نشود.

  8. #8
    کاربر دائمی آواتار fazel-d
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بورکینافاسو
    پست
    399

    Cool نقل قول: شناختن فایلهای ساخته شده توشط ویندوز

    ممنون از آقا/خانم DLL_DLL
    واقعا عالی بود
    Windows Explorer > Tools > Folder Opstions > File Type
    اما اگه بخواهیم همین کار رو با نصب برنامه در کامپیوتر مقصد انجام بدیم (اتوماتیک) راهی داره؟

    اما یه سوال دیگه:
    چه طوری میتونم آیکن برنامه رو به منوی سیستم (همون راست کلیک بر روی فایل) اضافه کنم. مثل برنامه McAfee که بر روی منو اضافه میشه؟

  9. #9
    کاربر دائمی آواتار Saeed.Masoumi
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    نامعلوم
    پست
    539

    نقل قول: شناختن فایلهای ساخته شده توشط ویندوز

    اما اگه بخواهیم همین کار رو با نصب برنامه در کامپیوتر مقصد انجام بدیم (اتوماتیک) راهی داره؟

    اما یه سوال دیگه:
    چه طوری میتونم آیکن برنامه رو به منوی سیستم (همون راست کلیک بر روی فایل) اضافه کنم. مثل برنامه McAfee که بر روی منو اضافه میشه؟




     using Microsoft.Win32; 

      RegistryKey hkey_cls_root = Registry.ClassesRoot;
    hkey_cls_root.CreateSubKey(".ext");
    RegistryKey ext = hkey_cls_root.OpenSubKey(".ext",true);
    ext.SetValue("", "Your_file_type");
    ext.CreateSubKey("DefaultIcon");
    RegistryKey default_icon = ext.OpenSubKey("DefaultIcon", true);
    default_icon.SetValue("", @"You_icon_adr");
    //Add somthing in Context Menu
    ext.CreateSubKey("shell");
    RegistryKey _shell = ext.OpenSubKey("shell", true);
    _shell.CreateSubKey("Your_pro_name");
    RegistryKey yor = _shell.OpenSubKey("Your_pro_name", true);
    yor.CreateSubKey("command");
    RegistryKey cmd = yor.OpenSubKey("command", true);
    cmd.SetValue("", "Your_programm_adr");
    //-------- for always open with this
    RegistryKey hkcu = Registry.CurrentUser;
    RegistryKey sft = hkcu.OpenSubKey("Software",true);
    RegistryKey mic = sft.OpenSubKey("Microsoft", true);
    RegistryKey win = mic.OpenSubKey("Windows", true);
    RegistryKey crver = win.OpenSubKey("CurrentVersion", true);
    RegistryKey expl = crver.OpenSubKey("Explorer", true);
    RegistryKey fext = expl.OpenSubKey("FileExts", true);
    fext.CreateSubKey(".ext");
    RegistryKey ur_ext = fext.OpenSubKey(".ext", true);
    ur_ext.SetValue("Application", "your_program");


    .ext 
    پسوند فایلت باید به همین صورت بنویسی یکنی نقطه (دات) سپس نام پسوند سعی کن سه حرفی باشه هرچند ویندوز براش مهم نیست
    ببین می شه اینو خلاصه تر نوشت ولی اینطوری نوشتم راحت تر درکش کنی
    در ضمن اگر می خوای یه چیزی تو مایه های Winrar که میاد به همه نوع فایل و پوشه یک گزینه جدید در کلیک راستشان اضافه می کند بسازی بگو بعدا برات اونم بگم الان حسش نیست

    آخرین ویرایش به وسیله Saeed.Masoumi : شنبه 24 مرداد 1388 در 01:25 صبح

  10. #10
    کاربر دائمی آواتار fazel-d
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بورکینافاسو
    پست
    399

    نقل قول: شناختن فایلهای ساخته شده توشط ویندوز

    default_icon.SetValue("", @"You_icon_adr");

    آدرس آیکون رو باید مطلق بدم. یعنی جایی که فایل .exe من وجود داره؟

    RegistryKey yor = _shell.OpenSubKey("Your_pro_name", true);
    نام فایل EXE هست یا هر نامی؟

    ur_ext.SetValue("Application", "your_program");
    نام فایل EXE هست یا هر نامی؟


    قرار دادن برنامه رد راست کلیک رو هم اگه زحمت بکسید ممنون می شم
    آخرین ویرایش به وسیله fazel-d : سه شنبه 03 شهریور 1388 در 19:08 عصر

  11. #11
    کاربر دائمی آواتار Saeed.Masoumi
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    نامعلوم
    پست
    539

    نقل قول: شناختن فایلهای ساخته شده توشط ویندوز

    سلام ببین
    آدرس آیکن رو می تونی به اشکال زیر بدی:

    %SystemRoot%\system32\SHELL32.dll,144
    یا
    c:\x.ico


    راستشو بخوای exe رو تا حالا امتحان نکردم
    حالا فایلت هرچی می خوای باشه مهم نیست ولی معنی نمیده که مثلا برنامت رو با یک عکس باز کنی امیدوارم منظورم رو خوب گفته باشم
    برای اون مسئله هم اینجا یک سر بزن نمی خوام تاپیک تکراری ایجاد شه:
    https://barnamenevis.org/showthread.php?t=170495


قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •