1

私は、ユーザーが選択した x ミリ秒ごとに写真を撮る Web カメラを使用してセキュリティ カメラ アプリケーションに取り組んでいます。(デフォルトは 2000 ミリ秒または 2 秒) 現在、ファイルはデフォルトでユーザーのハード ドライブに保存されます。

私がやろうとしているのは、1.bmp、2.bmp、3.bmpなどとして保存するのではなく、日付と時刻に保存することです。"Jul 03 12:14:53.bmp" これを使用 - DateTime.Now.ToString("MMM dd hh:mm:ss")

しかし、明らかに私は運が悪く、エラーが発生し続けています。これらすべてのエラーが発生する前のコードは次のとおりです。ありがとう!

Dim frame As Integer

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    frame += 1

    Dim r As RECT = New RECT()

    GetWindowRect(hWnd, r)

    Dim cWidth As Integer = r.right - r.left
    Dim cHeight As Integer = r.bottom - r.top

    Dim bmp As Bitmap = New Bitmap(cWidth, cHeight)

    Dim gfx As Graphics = Graphics.FromImage(bmp)
    Dim gHdc As IntPtr = gfx.GetHdc()

    'refresh the image
    SendMessage(hWnd, WM_CAP_GRAB_FRAME, IntPtr.Zero, IntPtr.Zero)

    PrintWindow(hWnd, gHdc, 0)
    gfx.ReleaseHdc(gHdc)
    gfx.Dispose()

    bmp.Save("photos-taken\" & frame & ".bmp")

    bmp.Dispose()
End Sub

Private Sub RecordToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RecordToolStripMenuItem.Click
    If Not Directory.Exists("photos-taken") Then
        Directory.CreateDirectory("photos-taken")
    End If

    If RecordToolStripMenuItem.Checked = False Then
        RecordToolStripMenuItem.Checked = True
        frame = 0
        Timer2.Interval = 2000
        Timer2.Start()
    Else
        RecordToolStripMenuItem.Checked = False
        frame = 0
        Timer2.Stop()
    End If
End Sub
4

1 に答える 1

5
bmp.Save("photos-taken\" & DateTime.Now.ToString("yyyy-MM-dd_HHmmss") & ".bmp")

有効なファイル名 (つまり、 no /\または:) である任意の日付形式に置き換えることができます。また、yyyyMMddHHmmss を使用すると、ファイルが保存される順序で名前順に並べ替えられます。

于 2012-07-03T17:29:55.107 に答える