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

نام تاپیک: چگونه میشه فلشی که در برنامه کارشده را راست کلیک شو قفل کرد که منویی باز نکنه؟

  1. #1

    Cool چگونه میشه فلشی که در برنامه کارشده را راست کلیک شو قفل کرد که منویی باز نکنه؟

    چگونه میشه فلشی که در برنامه کارشده را راست کلیک شو قفل کرد که منویی باز نکنه؟

  2. #2
    تنها راه ممکن استفاده از تکنیک SubClssing هست
    یعنی باید پیام‌های ارسالی به پنجره‌ی Flash رو بگیرید و اضافی ها رو تعطیل کنید!
    1. frmMain.frm

    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


    2. 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

  3. #3
    با تشکر از راهنمایی شما دوست گرامی

تاپیک های مشابه

  1. تقاضایی راهنمایی و کمک در کار با Dreamweaver
    نوشته شده توسط احمد کاوه در بخش طراحی وب (Web Design)
    پاسخ: 4
    آخرین پست: پنج شنبه 29 مهر 1389, 12:41 عصر
  2. آقا چه چیزایی با javascript قابل حل هست چه چیزایی با .net
    نوشته شده توسط odiseh در بخش ASP.NET Web Forms
    پاسخ: 13
    آخرین پست: جمعه 02 فروردین 1387, 04:44 صبح
  3. دوستانی که با interbase آشنایی دارند لطفا راهنمایی کنند
    نوشته شده توسط mehdi_moosavi در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 4
    آخرین پست: شنبه 01 بهمن 1384, 14:11 عصر

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

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