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

نام تاپیک: بدست آوردن نام فایل ocx استفاده شده توسط یک آبجکت (از طریق کدنویسی)

  1. #1

    بدست آوردن نام فایل ocx استفاده شده توسط یک آبجکت (از طریق کدنویسی)

    به دنبال نمایش یک فایل فلش در برنامه هستم و برای اینکه اطمینان حاصل کنم که فایل فلش در سیستم کاربر قابلیت پخش را دارد فایل موردنظر را در داخل فایل اجرایی include کردم و پس از تست عدم ایجاد آبجکت از نوع فلاش فایل موردنظر را در شاخه سیستم نصب و سپس رجیستر می کنم حال مشکل در این است که به علت تفاوت نوع کلاسهای پخش فلش برنامه به هنگام تست جهت اجرای فایل با مشکل مواجه می شود بدین صورت که برنامه تشخیص می دهد که فلاش در سیستم کاربر نصب می باشد.(از طریق چک ایجاد این آبجکت از طریق کدنویسی) ولی به هنگام پخش فایل فلاش موردنظر صفحه خالی را می آورد (شاید خیلی از دوستان اشاره کنند که مقدار پارامتر Movie از آبجکت فلاش را درست مقداردهی نکرده ام (یعنی مسیر کامل نداده ام) که عرض می کنم مسیر و نام فایل را بصورت کامل وارد کرده ام) ) به فایل ocx موردنظر دقت کردم دیدم فایل به نام swflash.ocx است و فایلی که برنامه بنده از آن استفاده کرده و .... سالم است فایل flash.ocx است (و هنگامی که این فایل وجود داشته و یا نصب باشد برنامه بدون مشکل کار می کند (فایل فلاش را به خوبی نمایش می دهد) ) حال می خواستم بدانم بین این دو چه تفاوتی است (این دو ocx) و چگونه تشخیص دهم که مثلا آبجکت ایجاد شده از چه فایلی استفاده می کند (که از این طریق درصورتی که از فایل موردنظر استفاده می کرد مجددا فایل ocx خود را نصب کنم)

    کد ایجاد آبجکت جهت نمایش فلش که داخل try except اجرا می شود
     
    FlashOCX := TShockwaveFlash.Create(nil);

    (این کد در صورتی که فایل swflash.ocx نصب باشد نیز ایجاد می شود ولیکن فایل موردنظر فلش را پخش نمی کند)

    و یک راه حل دیگر اینکه تست کنیم که این فایل (swflash.ocx) در رجیستری نصب شده است و در صورت مثبت بودن مجددا فایل جدید(flash.ocx) را نصب کنیم.
    (یعنی بتوان در رجیستری سرچ کرد و ....) و آیا در کل این راه حل مناسب است یا خیر؟
    آخرین ویرایش به وسیله پدرخوانده : چهارشنبه 03 اسفند 1384 در 19:28 عصر

  2. #2
    کاربر دائمی آواتار Hamid_PaK
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    1,125
    ببین ورژن فایل فلش ( چهارمین بایت توی فایل ) که می خواهید پخش کنید بالاتر از ورژن اکتیو ایکس فلش که در حال حاضر نصب هست نباشه ...
    [ flash.ocx ورژن 7 به بالاست ولی swflash.ocx ورژن 6 هست ... ]
    یا حق !!!

  3. #3
    خوب حالا بحثی سر خود فایل فلاش موردنظر نیست
    بلکه الزاما می خواهم که فایل flash.ocx (همون ورژن 7 نصب بشه)
    ولی برای اینکه تست کنم که این ocx نصب است یا خیر از طریق کدنویسی (کد موجود در تایپیک اول) در صورتی که ورژن قبلی (Swflash.ocx) نصب باشد برنامه قادر به نصب مجدد نیست (چرا که تشخیص داده ocx مربوط به فلاش (هرچند نسخه قبلی) نصب است)
    لذا می خواهم از طریقی (جستجو در رجیستری , ....) تشخیص دهم که کدام نسخه فعال است و سپس در صورت عدم نصب فلاش نسخه موردنظر , نسخه جدید را نصب کنم
    با تشکر

  4. #4
    بدست آوردن نام فایل از طریق رجیستری و سپس تست نسخه موردنظر امکان پذیر است که قبلا در این تایپیک مطرح شده است
    http://www.barnamenevis.org/sh...d.php?p=189811
    و راه حل دیگر با توجه کد خودتان که در حلقه try except می باشد (جهت ایجاد یک آبجکت از نوع فلاش) که در صورت عدم وجود نصب کند در داخل حلقه try بعد از دستور ایجاد با استفاده از پارامتر FlashVersion می تونید ورژن فلاش نصب شده را نیز بدست آورید که با توجه به ورژن فلاش مورد نظر برای نسخه 8 عدد 524288 و نسخه 7 عدد 458752 و نسخه 6 عدد 327722 را برمی گرداند و درصورت عدم سازگاری با نسخه موردنظر شما مجدد فایل ocx فلاش دلخواه خود را نصب کنید.

    FlashOCX := TShockwaveFlash.Create(nil);
    if FlashOCX.FlashVersion < 458752 then
    روتین مربوط به extract فایل ocx و سپس رجیستر کردن آن

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

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