Eli käsittelen webcamia tälläisellä koodilla
Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias "capCreateCaptureWindowA" (ByVal lpszWindowName As String, ByVal dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hwndParent As Long, ByVal nID As Long) As Long
Private mCapHwnd As Long
Const CONNECT As Long = 1034
Const DISCONNECT As Long = 1035
Const GET_FRAME As Long = 1084
Const COPY As Long = 1054
Private Sub Form_Load()
mCapHwnd = capCreateCaptureWindow("WebcamCapture", 0, 0, 0, 320, 240, radarcam.hwnd, 0)
DoEvents
SendMessage mCapHwnd, CONNECT, 0, 0
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
SendMessage mCapHwnd, DISCONNECT, 0, 0
End Sub
Private Sub Form_Terminate()
SendMessage mCapHwnd, DISCONNECT, 0, 0
End Sub
Private Sub Form_Unload(Cancel As Integer)
SendMessage mCapHwnd, DISCONNECT, 0, 0
End Sub
Private Sub refresRadar_Timer()
SendMessage mCapHwnd, GET_FRAME, 0, 0 'Get Current Frame
SendMessage mCapHwnd, COPY, 0, 0 'Copy Current Frame to ClipBoard
radarcam.Picture = Clipboard.GetData 'Put ClipBoard's Data to picOutput
End SubAinakun painan VB6:sta stoppinäppäintä niin koko ohjelma jäätyy ja sammuu vain taskmanagerilla. Osaisiko joku sanoa mistä johtuu ja miten mahdollisesti saisi korjattua?
Moi tesmu!
kokeile pysäyttää toi Timer jutska ennen tota DISCONNECT jutskaa...
Ei auta, sama jumitus jää...
Ratkaisin tosin ongelman tekemällä OCX-kontrollin webcamia varten. Jollon jumitusta ei tule kun käytän OCX-kontrollia.
Mutta eihän kyseinen ongelma pitäisi haitat kuin kehittely vaiheessa. Itse muistan taistelleeni saman ongelman parissa muutama vuosi takaperin, mutta annoin asian olla, koska itse exe:ssä se ei tuntunut haittaavan mitenkään.
Aihe on jo aika vanha, joten et voi enää vastata siihen.