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

نام تاپیک: کنترل راست کلیک در پخش فایل فلش

  1. #1

    کنترل راست کلیک در پخش فایل فلش

    به هنگام استفاده از ole مربوط به پخش فایل swf (فلاش) می خواستم در صورت استفاده از گزینه راست کلیک پارامترهای مربوط به برنامه فلاش نمایش داده نشود
    (البته این مشکل را در خیلی از ole های دیگه هم دارم و قبلا هم مطرح کردم ولی متاسفانه به جواب نرسیدم اگر دوستان راه حلی پیشنهاد بکنند خوشحال میشم)

  2. #2
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107
    فکر نکنم بشه چون نه میشه بهش بگب منو رو نشون نده و واقعه کلیک راست هم نداره تا اونجایی که یادم میاد.فقط یک واقعه gotfocus داره
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  3. #3
    کاربر دائمی آواتار mehran_337
    تاریخ عضویت
    مهر 1384
    محل زندگی
    رشت
    پست
    1,305
    با برنامهSwfDecompiler اول فایل فلش رو باز کن و راست کلیکشو غیر فعال کن.
    من خیلی روی این مسئله کار کردم اما نشد که نشد بجز راه بالا

  4. #4
    برای این کار فقط یه راه وجود داره
    اونم SubClassing هست
    (گرفتن پیام‌های ارسالی به پنجره‌ی Flash و حذف پیام‌های مربوط به کلیک راست)
    من توی VB و اسمبلی نوشتم ولی توی Fox بلد نیستم
    اگه می‌تونید بگید تا سورس VB ش رو بهتون بدم تا خودتون تبدیلش کنید

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

  6. #6
    ModMain.bas

    Option Explicit

    Public OldWindowProc As Long

    Public Const WM_RBUTTONUP = &H205
    Public Const WM_RBUTTONDOWN = &H204
    Public Const WM_KEYUP = &H101

    Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long)
    Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
    Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long


    Public Function myCallBack(ByVal hwnd As Long, ByVal Msg As Long, ByVal wp As Long, ByVal lp As Long) As Long

    'Detect if message is Right-Click
    If Msg = WM_RBUTTONUP Or Msg = WM_RBUTTONDOWN Then
    myCallBack = 1 'Return that message was processed
    Exit Function
    ElseIf Msg = WM_KEYUP And wp = 27 Then 'If Esc key pressed
    myCallBack = 1
    Unload frmMain
    Exit Function
    End If
    'Send other messages to original WindowProc
    myCallBack = CallWindowProc(OldWindowProc, hwnd, Msg, wp, lp)

    End Function

    frmMain.frm

    Option Explicit

    Private Sub Form_Load()
    Dim FlashHwnd As Long
    Dim strAppPath As String

    'Find the Fash ActiveX window handle
    FlashHwnd = FindWindowEx(hwnd, 0&, "MacromediaFlashPlayerActiveX" & vbNullChar, vbNullString)
    'Find old callback address to send messages to
    OldWindowProc = GetWindowLong(FlashHwnd, -4&)
    'Assign new callback address to Flash window
    SetWindowLong FlashHwnd, -4&, AddressOf myCallBack

    'Load Flash movie
    strAppPath = App.Path
    If Len(strAppPath) = 3 Then strAppPath = Left(strAppPath, 2)
    With ShockwaveFlash1
    .Left = 0
    .Top = 0
    .Width = 640
    .Height = 480
    .Movie = strAppPath & "\oVERfLOW.swf"
    .Play
    End With
    End Sub


  7. #7
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107

    Unhappy

    سلام
    خیلی روی تبدیل این کد کار کردم اما انگار فاکس با اینجور کارها میانه خوبی نداره.
    همه چیزش درسته ولی مثل اینکه تو یک حلقه میافته.نمیدونم چرا.
    بهترین راه حل ساخت یک ocx فلش با این مشخصه تو vb هست.اونم ساختم اما از تو ماژول نتونستم یک واقعه رو صدا بزنم.این دیگه دست آقای توکل رو میبوسه.
    یک برنامه هم که از سایت news2news.com گرفتم به اسم program1 که حتما باید تو فاکس 9 اجرا بشه.توسط اونم با استفاده از bindevent میتونید منوی خودتونو صدا بزنید اما منوی فلش هم باز میشه (بخاطر خاصیت bindevent)
    در هر حال کد و میزارم اگکر کسی میتونه اصلاح کنه.
    فایل های ضمیمه فایل های ضمیمه
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  8. #8
    اگه می‌ـونید از یه Dll استفاده کنید بگید تا با اسمبلی یه Dll کم حجم درست کنم و فقط یه تابع رو توی برنامه‌تون صدا بزنید

  9. #9
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107
    dll رو میتونیم استفاده کنیم.اما برای چه قسمتی؟چطور کاری رو که میخوایم انجام بدیم صدا بزنیم؟
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  10. #10
    هیچی من یه DLL درست می‌کنم که فقط یه تابع داره مثلا KillFlashMenu و فقط یه پارامتر می‌گیره و اونم دستگیره‌ی پنجره‌ای هست که شیء Flash توش استفاده شده...
    شما این تابع رو صدا می‌زنید و ماجرا حله
    البته DLL رو نباید از حافظه پاک کنید تا برنامه تموم بشه

    باید وقت کنم برنامه‌اش رو آماده کنم
    یه کم صبر کنید...

  11. #11
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107
    حالا چطور کاری رو که خودمون میخوایم انجام بدیم (منوی خودمون باز شه)؟
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  12. #12
    وقتی توی پنجره‌ی مورد نظر Right Click بشه اون پیام از بین می‌ره و پنجره‌ی Flash اصلا نمی‌فهمه که روش کلیک شده
    حالا شما با یه کم دستکاری سورس که به زودی می‌زارم اینجا می‌تونید هر کاری رو بعد از حذف پیام Right Click انجام بدید حتی می‌تونید بگید برو یه سنگک هم برام بخر :)

  13. #13
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107
    ممنون از سنگک
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  14. #14

    بالاخره درست شد

    خوب درست شد

    با سورس اسمبلی
    توی هر زبانی می‌تونید ازش استفاده کنید
    و با یه کم تغییر هم می‌تونید به کتابخانه‌ی ایستا تبدیلش کنید و توی اسمبلی و C ادغامش کنید

    یه نمونه از استفاده‌اش توی VB هم نوشتم
    فقط می‌مونه نمونه‌ی تابع برای Fox که متاسفانه بلد نبودم
    برای اسمبلی و C و VB نوشتم یکی زحمت بکشه اونو هم تبدیلش کنه

    این سریع ‌ترین و بهترین راه هست و توی همه‌ی زبان‌ها هم قابل استفاده هست

    یه توضیح دیگه هم اینکه تابع فقط یه پارامتر می‌گیره و اونم دستگیره‌ی پنجره‌ی مادر هست تا زیرپنجره‌هاش رو که فلش هستن رو OK کنه

    تابع یه پارامتر عددی بر می‌گردونه و اونم تعداد پنجره‌های پیدا شده و OK شده هست

    خوش باشید
    بابای
    فایل های ضمیمه فایل های ضمیمه

  15. #15
    خیلی ممنون. خیلی وقته دنبال چنین چیزی میگردم.

  16. #16
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107

    KillFlashMenu_vfp_Sample

    با سلام و تشکر
    اینم مثال ویژوال فاکس پرو
    فایل های ضمیمه فایل های ضمیمه
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  17. #17
    با تشکر از هر دو دوست گرامی
    حال اگر بخواهیم با کلیک کردن بر روی آن فلاش کار خاص از جهت برنامه نویسی انجام دهیم چه باید بکنیم (دقت کنید می توان در خود اصل فایل فلش دست برد ولی نهایتا بصورت یک تگ html خواهد بود) ولی منظورم کدهای برنامه نویسی به زبان موردنظر (اینجا منظور زبان فاکس هست) انجام دهیم (چون متد onclick,...) نداشت
    مثلا با کلیک بر روی فایل فلش موردنظر و یا قسمتی از آن عملیات خاص برنامه نویسی (مثل رفتن به فرم بعدی) را انجام دهد.
    البته به ذهنم رسید که یک لیبل بصورت ترنسپرنت بر روی قسمتی از این فایل فلش قرار دهم و در onclick آن کد موردنظر را تعریف کنم ولی متاسفانه جواب نداد
    با سایر ابزار (image,...) امتحان کردم دیدم به صورت کلی با اینکه در حالت طراحی آبجکت جدید (عکس، لیبل یا ...) بر روی ocx مربوط به پخش فایل فلش هست باز به هنگام اجرا ocx فلش بر روی این آبجکتها قرار گرفت و اجازه نمی دهد خلاصه هر جور ور رفتم به جواب نرسیدم
    (و واقعا سؤال دیگر اینکه اگر واقعا بخواهیم یک عکس و یا ... بر روی قسمتی از این فایل فلش قراردهیم چگونه باید رفتار کنیم )
    (فکر کنم آخرین راه حل تبدیل فایل فلش موردنظر به فایل gif باشد !!!!)
    (ولی متاسفانه در مورد بعضی از فایلهای فلش خروجی gif همچین مناسب نیست ودیگر اینکه حجمش خیلی بیشتر میشه)

    ممنون میشم دوستان راهنمایی کنند.

  18. #18
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107
    نقل قول نوشته شده توسط oVERfLOW مشاهده تاپیک
    حالا شما با یه کم دستکاری سورس که به زودی می‌زارم اینجا می‌تونید هر کاری رو بعد از حذف پیام Right Click انجام بدید حتی می‌تونید بگید برو یه سنگک هم برام بخر :)
    دارم سورس رو نگاه میکنم اگر تونستم سردربیارم و کاری بکنم میزارم همینجا
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  19. #19
    برای اینکه فلش رو با برنامه‌تون ارتباط بدین خودش یه رابط داره

    توی Script فلش کافیه از fscommand استفاده کنید و یه پیام رو به برنامه‌تون ارسال کنید
    و توی برنامه‌تون‌هم یه event یا رویداد باید باشه که وقتی fscommand ارسال شد فعال می‌شه
    و متن ارسالی از طرف فلش قابل بازیابی هست

    این جوری با یه رشته خیلی راحت هر کاری که بخواید می‌تونید بکنید
    مثلا می‌تونید یه دکمه توی فلش بذارید و بعد از کلیک شدنش یه fscommand با متن Clikc1 به برنامه‌تون ارسال کنید...

  20. #20
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  21. #21
    کاربر دائمی آواتار mehran_337
    تاریخ عضویت
    مهر 1384
    محل زندگی
    رشت
    پست
    1,305
    نقل قول نوشته شده توسط binyaz2003 مشاهده تاپیک
    با سلام و تشکر
    اینم مثال ویژوال فاکس پرو
    وقتی فرم In top level باشه بازهم راست کلیک مشاهده می شه . اگه ممکنه توضیح بدین راه حل چیه چون من اکثر برنامه هام صفحه اول به صورت مذکوره و فلش هم در همون صفحه دارم

  22. #22
    کاربر دائمی آواتار mehran_337
    تاریخ عضویت
    مهر 1384
    محل زندگی
    رشت
    پست
    1,305
    چی شد ؟ دوستان نتیجه ای نگرفتند؟

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

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