Uso della webcam, si vede nera

di Zeusmax il
13 risposte

Salve,

ho fatto un programma con un form che mi permette di catturare immagini dalla webcam

il programma funziona perfettamente,

il problema:

ho inserito il form e tutti le sue dipendenze in un altro software

quando lo attivo il picturebox risulta nero, l'immagine non si vede

ma se clicco su cattura l'immagine viene registrata perfettamente

ho escluso tutti i software che possono usare la webcam ma il problema persiste

avete qualche idea?

grazie

13 Risposte

  • Non hai mostrato nulla del codice.

    Non sappiamo nulla dell'altro software né dell'ambiente in cui l'hai integrato.

    Non sappiamo neanche il linguaggio con cui l'hai scritto.

    Non siamo indovini

  • Il linguaggio è vb.net

    visual studio 2022

    e questo è il codice che mostra l'immagine

    come dicevo, se gira da solo funziona, all'interno di un gestionale, sempre vb.net si vede nero

       Private Sub buttonStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonStart.Click
           'dirigo il flusso della dll nel mio picture box
    
           'imposto il device selezionato
           iDevice = lstDevices.SelectedIndex
           'faccio partire la preview
           startPreview()
    
           'finezza ... blocco il bottone di start :-)
           buttonStop.Enabled = True
           buttonStart.Enabled = False
           buttonGrab.Enabled = True
       End Sub
    
       Private Sub startPreview()
           'dichiaro l'altezza e la larghezza del box immagine
           Dim iHeight As Integer = objPreview.Height
           Dim iWidth As Integer = objPreview.Width
    
           'Dico alla dll di dirigere il flusso alla mia finestra di preview
           hHwnd = capCreateCaptureWindowA(iDevice, WS_VISIBLE Or WS_CHILD, 0, 0, 640, _
           480, objPreview.Handle.ToInt32, 0)
    
           'mi collego al device
           If SendMessage(hHwnd, WM_CAP_DRIVER_CONNECT, iDevice, 0) Then
    
               'Imposto la preview
               SendMessage(hHwnd, WM_CAP_SET_SCALE, True, 0)
    
               'imposto il rate in millisecondi
               SendMessage(hHwnd, WM_CAP_SET_PREVIEWRATE, 66, 0)
    
               'Faccio partire la preview
               SendMessage(hHwnd, WM_CAP_SET_PREVIEW, True, 0)
    
               'Scalo la preview all'interno della dimensione del mio box immagine
               SetWindowPos(hHwnd, HWND_BOTTOM, 0, 0, iWidth, iHeight, _
               SWP_NOMOVE Or SWP_NOZORDER)
    
           Else
               'Non è possibile accedere al device
               DestroyWindow(hHwnd)
           End If
       End Sub
  • Parliamo dello stesso PC su cui girano i due software?

  • Si, certo

  • I due progetti sono dello stesso tipo con Frameword della stessa versione?

    Hai provato a fare un po' du debugging  soprattutto per controllare i valori restituiti dalle varie API comprese le SendMessage?

  • Si, stessa versione e ho fatto tutti i confronti tra le due

  • Hai controllato anche esclusioni di antivirus o antimalware magari attivo solo con l'applicazione contabile?  

  • Si, ho escluso l'antivirus ma è uguale

  • Ok, quindi è colpa dei fantasmi.

    Ma dato che non credo ai fantasmi, una causa ci sarà non individuabile a distanza tramite il forum.

    L'unica cosa che potrei dirti è che bisogna dare un'occhiata di persona ma non posso.

  • Anche io non credo ai fantasmi e capisco che non è facile

    speravo che qualcuno avesse già avuto lo stesso problema

    di dove sei?

    io sono a Roma

  • Se vuoi posso provare il progetto in cui il codice  non funziona

  • Ti devo inviare tutta la soluzione, dove

  • Oregon001 at hotmail dot com

Devi accedere o registrarti per scrivere nel forum
13 risposte