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

ビデオキャプチャでリアルタイムに画像録画

環境/言語:[OS XP 使用言語 VC#]
分類:[.NET]

VC#でビデオカメラでリアルタイムに画像を表示し、
とりこみたくていろいろ調べてavicap32.dllを
つかったらできるというとこまではわかったのですが、
どのように書いていったらいいのかがさっぱりわかりません。
素人同然な私に教えてください。
■No3941に返信(光<コウ>さんの記事)
追記です

これはVB6.0で書いたその部分の標準モジュールの部分なのですが
これを元にC#に直してもらえないでしょうか?

Const WS_VISIBLE = &H10000000
Const WS_CHILD = &H40000000
Const WM_USER = 1024
Const WM_CAP_DRIVER_CONNECT = WM_USER + 10
Const WM_CAP_DRIVER_DISCONNECT = WM_USER + 11
Const WM_CAP_SET_PREVIEW = WM_USER + 50
Const WM_CAP_SET_PREVIEWRATE = WM_USER + 52
Const PREVIEWRATE = 30

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias "capCreateCaptureWindowA" (ByVal A As String, ByVal B As Long, ByVal c As Integer, ByVal d As Integer, ByVal e As Integer, ByVal f As Integer, ByVal g As Long, ByVal h As Integer) As Long

Dim handle As Long
Dim ret As String

Public Function VIDEOCAP_IN(MOVIE As PictureBox)

On Error GoTo Capture_error:
handle = capCreateCaptureWindow("CaptureWindow", WS_CHILD Or WS_VISIBLE, 0, 0, 320, 240, MOVIE.hWnd, 0)
ret = SendMessage(handle, WM_CAP_DRIVER_CONNECT, 0, 0)
ret = SendMessage(handle, WM_CAP_SET_PREVIEW, 1, 0)
ret = SendMessage(handle, WM_CAP_SET_PREVIEWRATE, PREVIEWRATE, 0)
Exit Function

Capture_error:
MsgBox "ビデオキャプチャーデバイスのエラーです"
End

End Function

Public Function VIDEOCAP_OUT(MOVIE As PictureBox)
ret = SendMessage(handle, WM_CAP_DRIVER_DISCONNECT, 0, 0)
End Function
> これはVB6.0で書いたその部分の標準モジュールの部分なのですが
> これを元にC#に直してもらえないでしょうか?

これはもはや質問の域を超えています。どこが分からないのかをご説明ください。

The Code Projectの次のページの下のコメント「Multiples WebCams on one PC」に似たようなコードがあるようです。

・The Code Project - Webcam Web Service - C# WebServices
http://www.codeproject.com/cs/webservices/webcamcsharp.asp?df=100&forumid=3853&exp=0&select=703246
2004/05/09(Sun) 06:48:17 編集(投稿者)

返答ありがとうございます。

>これはもはや質問の域を超えています。どこが分からないのかをご説明ください。

えっと、どうも質問が端的だったみたいで申し訳ありません。
実は現在、VB6→VC#への切り替えを行っている途中なのですが、

Public Function VIDEOCAP_IN(MOVIE As PictureBox)

の部分でMOVIE As PicutureBoxとしているのですが
どのように書き直したらよろしいのでしょうか?

>調べてくださったページ

とても役に立ちそうなページ教えてくださってありがとうございます。
参考にさせてもらいます。

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