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

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 331
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Contact :
Status : Hors ligne

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

#1

Message 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




++
Modifié en dernier par franco le dim. 19 juil. 2020 17:11, modifié 1 fois.
L'entraide, c'est mon dada ;)

Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 331
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Contact :
Status : Hors ligne

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

#2

Message 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 ?



++
L'entraide, c'est mon dada ;)

Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 331
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Contact :
Status : Hors ligne

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

#3

Message 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
L'entraide, c'est mon dada ;)

Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 331
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Contact :
Status : Hors ligne

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

#4

Message 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.




++
L'entraide, c'est mon dada ;)

Répondre