DOBON.NET DOBON.NETプログラミング掲示板過去ログ

動画のクリックイベント

環境/言語:[OS : Windows XP Professional / 言語 : Visual Basic .NET / .NET Framework : 2.0]
分類:[.NET]

【解決したい問題】

GACでも質問したのですが、こちらでも質問させて頂きます
GACに質問したURLは下記です
http://www.gac.jp/article/index.php?stats=question&category=8&id=21535&command=msg


VB.NETかC#で動画をクリックしたら次の動画に進むという
プログラムを作ろうと思っているのですが、WindowsMediaPlayerのコンポを使用してもクリックイベントが使えないようなのです
ぐぐって見たりしても動画をクリックするイベントが発生させられないみたいなのですが
どのようにしたら動画をクリックしたら次の動画〜というように、イベントを追加できるのでしょうか?

【解決するために何をしたか】

動画をクリックしているように見せかけて、クリックイベントを拾おうかとも思いましたが、全てうまくいかず・・・
ピクチャーボックスを透明にして〜等やってみましたけどピクチャボックス自体は透明になりませんでした
自分で調べた結果、flashのactinscriptを使うしかないのではないか・・と思っていますが、できればVB.NETかC#で行きたいのです
どなたかよろしくお願いします
> VB.NETかC#で動画をクリックしたら次の動画に進むという
> プログラムを作ろうと思っているのですが、WindowsMediaPlayerのコンポを使用してもクリックイベントが使えないようなのです

VB2005ですが,デザイン時にフォームにWindowsMediaPlayerを追加してみると,ClickEventというイベントが使えるようになりました。
実際にイベントも発生しましたが...

DirectShowを使うという方法もあります。
下のコードのようにIVideoWindowのMessageDrainプロパティにフォームのハンドルを設定すれば,フォームにイベントの一部が通知されるようになります。

'ActiveMovie control type libraryを参照設定する
Imports QuartzTypeLib

Public Class Form1

    Dim MC As IMediaControl
    Dim VW As IVideoWindow

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MC = New FilgraphManager
        VW = MC
        Call MC.RenderFile("d:\test.avi")
        VW.WindowStyle = &H6000000
        Call VW.SetWindowPosition(0, 0, Me.Width, Me.Height)
        VW.Owner = Me.Handle
        VW.MessageDrain = Me.Handle
        Call MC.Run()
    End Sub

    Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
        MessageBox.Show("MouseDown")
    End Sub

End Class

DOBON.NET | プログラミング道 | プログラミング掲示板