Hallo!
Ich habe in VB.NET ein Programm zum Aufnehmen von Webcambildern geschrieben.
Leider funktionert das Programm nicht in C#, wenn ich es übersetze.
Das Problem sind ewige ladezeiten oder der Fehler, dass auf geschützten Speicher zugegriffen wird...
VB.NET:
Und der Aufruf:
In C# habe ich funktioniert das nicht, egal ob ich SendMessage mit Short, long, Int oder Byte deklariere. Das Programm hängt sich auf sobald die oben angezeigte Sub Aufgerufen wird, und aufgenommen werden soll... Den Befehl "LEN(...)" gibt es ja "direkt" nicht in C#. .Length kann ich bei der Structur CAPTUREPARMS nicht verwenden. Weiß jemand Rat?
MfG Flo
Ich habe in VB.NET ein Programm zum Aufnehmen von Webcambildern geschrieben.
Leider funktionert das Programm nicht in C#, wenn ich es übersetze.
Das Problem sind ewige ladezeiten oder der Fehler, dass auf geschützten Speicher zugegriffen wird...
VB.NET:
Code:
Declare Function SendMessage2 Lib "user32" Alias "SendMessageA" _ (ByVal hWnd As Integer, ByVal wMsg As Integer, ByVal wParam As Short, _ ByRef lParam As CAPTUREPARMS) As Integer
Code:
Dim caprams As New CAPTUREPARMS With caprams .AVStreamMaster = 1 'maybe 1? .dwAudioBufferSize = 10 .dwIndexSize = 34952 .dwMCIStartTime = 0 .dwMCIStopTime = 0 .dwRequestMicroSecPerFrame = 16667 .fAbortLeftMouse = False .fAbortRightMouse = False .fCaptureAudio = False .fDisableWriteCache = False .fLimitEnabled = True .fMakeUserHitOKToCapture = False .fMCIControl = False .fStepCaptureAt2x = False .fStepMCIDevice = False .fUsingDOSMemory = False .fYield = True .vKeyAbort = Nothing .wChunkGranularity = 0 .wNumAudioRequested = 10 .wNumVideoRequested = 32 .wPercentDropForError = 0 .wStepCaptureAverageFrames = 0 .wTimeLimit = 4 '# of seconds of video to caputre!! End With SendMessage2(lwndC, WM_CAP_SET_SEQUENCE_SETUP, Len(caprams), caprams) SendMessage(lwndC, WM_CAP_FILE_SET_CAPTURE_FILEA, 0, "c:\swing.avi") SendMessage(lwndC, WM_CAP_SEQUENCE, 0, CType(0, String))
MfG Flo
Comment