[..] Bloquer les boutons de la souris

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
barghin
Niveau 1
Niveau 1
Messages : 4
Enregistré le : lun. 25 juin 2012 09:17
Status : Hors ligne

[..] Bloquer les boutons de la souris

#1

Message par barghin »

Bonjour,

Je suis débutant dans l'utilisation d'Autoit, aussi je n'ai pas trouvé la solution à mon problème malgré mes recherches (peut être que je n'utilise pas les bons mots clé :? ).

Dans le cadre de mon travail, j'aurai besoin d'une astuce permettant de bloquer les clics gauche et droit (voir aussi le bouton de la molette) de la souris, le temps que mon script tourne.

Le contexte: j'ai développé un petit script permettant d'ouvrir Photoshop CS et automatiser le traitement par lot des fichiers en squizzant les messages d'erreur générés par les problèmes rencontrés lors du traitement de certaines images.
Étant un peu paranoïaque, j'aurai voulu interdire toute opération de la souris à n'importe quel utilisateur qui voudrait utiliser la machine, d'où ma demande.
Par contre, je ne souhaite pas bloquer le clavier...il peut toujours être utile :wink:
Auriez vous une idée?

Merci d'avance
Myki
Niveau 2
Niveau 2
Messages : 20
Enregistré le : lun. 11 juin 2012 16:56
Status : Hors ligne

Re: [..] Bloquer les boutons de la souris

#2

Message par Myki »

Salut,

Tu pourrais bloquer la souris dans un coin de l'écran avec la fonction _MouseTrap().
Ce qui empêche l'utilisateur de bouger le curseur mais pas de cliquer...
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Bloquer les boutons de la souris

#3

Message par mikell »

Tu peux essayer l'UDF BlockInputEx qui permet de bloquer sélectivement clavier et/ou souris
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Myki
Niveau 2
Niveau 2
Messages : 20
Enregistré le : lun. 11 juin 2012 16:56
Status : Hors ligne

Re: [..] Bloquer les boutons de la souris

#4

Message par Myki »

Ah oui, l'UDF est bien plus efficace que la méthode de mon post précédent.
Il y a un exemple tout prêt dans le package en plus : "Example - Block Mouse only.au3"
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Bloquer les boutons de la souris

#5

Message par mikell »

Mais ton exemple n'est pas mal (et beaucoup moins lourd)

Code : Tout sélectionner

#include <GuiConstantsEx.au3>
#include <Misc.au3>
_MouseTrap(@desktopwidth, @desktopheight, @desktopwidth+1, @desktopheight+1)
  Sleep(3000)
_MouseTrap()
Exit
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
barghin
Niveau 1
Niveau 1
Messages : 4
Enregistré le : lun. 25 juin 2012 09:17
Status : Hors ligne

Re: [..] Bloquer les boutons de la souris

#6

Message par barghin »

J'ai testé c'est trop bon!!!
Il ne me reste plus qu'à tout éplucher et intégrer à mon script.
J'indiquerai le sujet comme résolu quand je l'aurai testé en live :D
(dans pas longtemps ne vous inquiétez pas).
barghin
Niveau 1
Niveau 1
Messages : 4
Enregistré le : lun. 25 juin 2012 09:17
Status : Hors ligne

Re: [..] Bloquer les boutons de la souris

#7

Message par barghin »

Aie j'ai voulu intégrer la commande _BlockInputEx dans mon script, problème: la commande send n'est plus prise en compte:

Code : Tout sélectionner

#include <BlockInputEx.au3>

HotKeySet("{ESC}", "_Quit");
_BlockInputEx(2)

Func _Quit()
   Exit
EndFunc

;code du script ici

send("{ENTER}")

;code du script là

Send("{ESC}")

Une idée du problème?
Avatar du membre
silvere
Niveau 8
Niveau 8
Messages : 532
Enregistré le : sam. 24 sept. 2011 22:56
Status : Hors ligne

Re: [..] Bloquer les boutons de la souris

#8

Message par silvere »

Je crois que se sujet a déjà été aborder moi je te propose d'enlever le BlockInput faire la fonction send et remettre le BlockInput.
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.
barghin
Niveau 1
Niveau 1
Messages : 4
Enregistré le : lun. 25 juin 2012 09:17
Status : Hors ligne

Re: [..] Bloquer les boutons de la souris

#9

Message par barghin »

Je suis d'accord avec toi, déplacer le _BlockInputEx après le send fonctionne.
Mais là le jeu se complique vraiment: mon script est basé en majorité sur la fonction Send (j'en ai partout, pour fermer des fenêtres indiquant des messages d'erreur différents).
Avec cette commande, on peut effectivement bloquer les actions de la souris en laissant la main pour pianoter sur le clavier
Mais d'après mes constatation, il semblerait que le script ait besoin que la souris soit activée pour exécuter Send("{ENTER}") dans le script...
Extrait du code de ma boucle DO...While:

Code : Tout sélectionner

if winexists("Adobe Photoshop","Impossible d'effectuer cette opération car le segment de marqueur JPEG est trop court (le fichier est peut-être tronqué ou incomplet).") then send("{enter}")
   if WinExists("Non-concordance des profils incorporés", "") Then Send("{enter}")
   if WinExists("Adobe Photoshop","Impossible d'effectuer cette opération en raison d'un marqueur JPEG inconnu ou incorrect.") Then Send("{enter}")
   if WinExists("Adobe Photoshop","Aucun fichier source n'a pu être ouvert par Photoshop.") then Send("{enter}")
   if WinExists("Adobe Photoshop","Impossible d'utiliser le profil ICC incorporé, car le profil ICC est incorrect. Le profil sera ignoré.")then Send("{enter}")
   if WinExists("Remplacer les fichiers", "Certains des fichiers spécifiés existent déjà dans l'emplacement cible. Les fichiers ci-dessous seront remplacés.") Then Send("{enter}")
   if WinExists("Adobe Photoshop","Une erreur s'est produite lors du traitement par lots. Vérifiez les détails du fichier du journal des erreurs")then Send("{enter}")
   if WinExists("Adobe Photoshop","Impossible d'effectuer cette opération car Photoshop ne reconnaît pas l'extension de fichier.") Then Send("{enter}")
 
C'est très indigeste, mais je n'ai trouvé que ça en tant que débutant.
Je pense qu'il faudrait pouvoir distinguer dans le code la fonction ENTER du clavier et celle de la souris. Mais je n'ai encore rien trouvé.
C'est peut être tout simplement impossible...
P.S.: si un post parle déjà de ce problème, je suis preneur (pas trouvé)
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Bloquer les boutons de la souris

#10

Message par jguinch »

Salut
Si le send() ne fonctionne plus, c'est peut être qu'il faut tout simplement choisir la fenêtre dans laquelle faire le send()

Code : Tout sélectionner

WinActivate("Adobe Photoshop")
Send("xxxx")
Sinon, j'ai bricolé le truc suivant (CTRL + SHIFT + FIN pour quitter)

► Afficher le texte
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Bloquer les boutons de la souris

#11

Message par blacksoul305 »

Salut,

tu devrais essayer la fonction ControlClick. Je ne sais pas si elle va marcher, mais c'est tout de même plus propre que les Send qui balancent la touche n'importe où.
Étudiant en 2ème année de Licence Informatique.
Répondre