Page 1 sur 1

[R] Webcam affiché avec un écart "vertical" de 25  

Posté : sam. 18 juil. 2020 14:54
par franco
Bonjour.

Pour information, j'utilise l'UDF "WebcamDS_UDF.au3" afin d'afficher ma webcam au sein de mon interface graphique....


Je voulais de base, assouvir ma curiosité.
-> Je voulais - en effet - faire un petit "soft" permettant de désactiver / activer la webcam. Et d'ajouter un test visuel....


J'arrive donc à afficher la webcam, à faire une capture d'écran.


Par contre, ce que je ne comprends pas, c'est que j'ai un écart de 25.

Jugez par vous même :
AutoIt3_Ve52QIY4sf.png
Le code simplissime :
#AutoIt3Wrapper_UseX64=n

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include "WebcamDS_UDF.au3"
#include <SendMessage.au3>
#include <ScreenCapture.au3>

 Global Const $SC_DRAGMOVE = 0xF012

Global $Quitter

;~ Opt("MustDeclareVars", 1)
Global $UserDLL = DllOpen("user32.dll")


Global $oError = ObjEvent("AutoIt.Error", "_ErrFunc")
Global $hComboCam = '', $hComboComp = '', $hComboMic, $ZoomInput = ''


_WebcamDS_Init()

Global $hGUI = GUICreate("DirectShow Capture", 1280, 720, 0, 0, $WS_POPUPWINDOW);+$WS_SIZEBOX) ; , $WS_EX_LAYERED)


Global $WC=_WebcamDS_RenderWebcam(1, 1, $hGUI, 1, 640, 480)




GUISetState()


;~ GUICtrlSetPos(-1,0,50,500,900)



Global $msg
While 1
   $msg = GUIGetMsg()
   Select

      Case $msg = $GUI_EVENT_CLOSE
         Exit
         Case  $msg = $GUI_EVENT_PRIMARYDOWN
             _SendMessage($hGUI, $WM_SYSCOMMAND, $SC_DRAGMOVE, 0)

      Case $msg = $GUI_EVENT_RESIZED

         _WebcamDS_Init()

         Global $pos = WinGetPos($hGUI)
         GUISetState($hGUI, @SW_HIDE)

         Global $NLargeur = $pos[2] - 20
         Global $NHauteur = $pos[3] - 40

         GUISetState($hGUI, @SW_SHOW)
         _WebcamDS_RenderWebcam(1, 1, $hGUI, 1, $NLargeur, $NHauteur)

   EndSelect

WEnd
J'ai tenté d'utiliser guictrlsetpos mais en vain.
J'ai cru à un miracle qui n'est jamais venu. ^^

Savez-vous pourquoi ce tel "écart" ?
Merci :D




++

Re: [..] Webcam affiché avec un écart "vertical" de 25

Posté : sam. 18 juil. 2020 23:30
par franco
Lu'


Résolu à moitié ;)
Dans le sens que, j'ai résolu en foutant le fond de l'interface.
► Afficher le textescript
Mais je pensais que je pouvais utiliser le menu contextuel sur la "webcam"
Et bien non.

Donc souci réglé, et j'en découvre un autre. :mrgreen:


Question : peut-on générer un menu contextuel, en détectant l'appui sur le clic droit ?


Si oui, comment ?



++

Re: [..] Webcam affiché avec un écart "vertical" de 25

Posté : dim. 19 juil. 2020 15:44
par franco
Lu'


Bon, vu la galère (clic droit inopérant sur la webcam), je suis revenu à mes débuts.


Et voici ce que j'ai fait :
► Afficher le texte
Ce qui fonctionne :
Afficher la webcam = c'est fait
Redimensionner la fenêtre ET la webcam = c'est fait
Capturer l'image de la webcam = c'est fait


Par contre, je veux aussi pouvoir activer et désactiver la webcam.
Ca c'est fait...


Par contre, si la webcam est désactivé, l'UDF Webcam que j'utilise, ne fonctionne pas.
J'obtiens une erreur.

Et donc, le script s'arrête.
je voudrais bien qu'il continue, puisque je pourrais par la suite activer la webcam.


Comment faire ?



L'UDF en question :https://www.autoitscript.com/forum/topi ... ow-webcam/

L'erreur que j'obtiens :
"C:\Users\tomce\Desktop\WebcamSwitch\WebcamDS UDF\WebcamDS_UDF.au3" (494) : ==> Variable must be of type "Object".:
While $oEnum.Next(1, $pMoniker, 0) = $S_OK
While $oEnum^ ERROR
Elle se trouve dans la fonction _WebcamDS_enumerateDevices (normal puisque la webcam étant désactivée, il n'y en a aucune).


► Afficher le texte
Pouvez-vous m'aider ?


Merci :D

Re: [..] Webcam affiché avec un écart "vertical" de 25

Posté : dim. 19 juil. 2020 17:10
par franco
Salut.

Sujet résolu.


En effet :
- J'utilise Devcon pour activer / désactiver la webcam
- L'UDF cité ne fonctionne pas tant qu'il ne trouve pas de webcam.

De ce fait, j'ai de nouveau utilisé Devcon pour vérifier l'état de la webcam.
Et j'ai fait une petite condition.

avec StringInStr et "disabled"

Et si désactivé, je ne fais rien.

Du coup, j'utilise de ce fait l'udf dès que la webcam est présente.

► Afficher le texte

Le script reste à peaufiner, mais les soucis rencontrés sont résolus.



Je passe en résolu.




++