[FUNC] BlockInput_Mouse_Vista.au3

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
plop22
Niveau 4
Niveau 4
Messages : 69
Enregistré le : mer. 08 févr. 2012 18:53
Status : Hors ligne

[FUNC] BlockInput_Mouse_Vista.au3

#1

Message par plop22 »

Bonjour,

Tout d'abord j'ai posté ma présentation, allez y faire un tour!
http://www.autoitscript.fr/forum/viewto ... =8&t=10055


C'est avec une certaine excitation que je poste ce message, pourquoi?, eh bien non seulement parce qu'avec cette udf j'ai résolu un problème sur lequel j'ai passé un peu plus de cinq heures et parce qu'après avoir tant demandé à ce forum et à cette communauté je peux enfin me rendre utile et apporter ma pierre à l'édifice.

Pour se remettre das le contexte de la création de cette udf/func (?) (création est un bien grand mot pour désigner mon humble participation):

-Je cherchais à faire fonctionner blockinput sous vista, pour cela il faut #requireadmin, or le script devait etre executé silencieusement et sur une session non-admin, j’eus donc recours à Runas, je conçu une machine infernale avec un premier script qui faisait un Runas sur un second avec #requireadmin qui faisait un Runas admin sur mon script (je me rendis compte après coup que le second script, intermédiaire, n'était pas nécessaire), cela fonctionna plutôt bien excepté le fait qu'il fallait tout de meme cliquer dans la fenêtre de l'UAC et donc, adieu la transparence, je fis donc des recherches (une demie-journée) pour contourner ce problème (j'en ai vu de toutes le couleurs..)

Mais hélas, il fallait se résigner, je ne pourrais jamais faire fonctionner blockinput sur vista de la manière que je recherchais, j'étais donc désespéré lorsque l'idée me vint que je pourrais reproduire l'effet recherché par mes propres moyens, c'est ainsi que je commençais à bricoler ce .... bricolage :mrgreen:


Après cette "courte" introduction passons aux choses sérieuses!

Mon "UDF" (je ne sais pas vraiment si on peut l'appeler comme ça, je pencherais plus pour "PBM" => Petit Bricolage Maison. Vous allez comprendre....
Est composée de deux parties :
-l'udf en elle même
-Un exécutable

En effet afin de "bloquer" la souris, j'utilise MouseGetPos() et MouseMove () combinés, dans une boucle. Seulement autoit ne gère pas le multi-threading, donc ma fonction et sa boucle paralysaient tout script l'utilisant, c'est donc pour cela que cette "boucle" est compilée dans un exécutable qui est géré par l'udf (commencer / arrêter ), de ce fait la souris est "bloquée", (vous allez voir pourquoi je mets des guillemets), et le script peut continuer tranquillement sa petite vie en parallèle. Génial non?

Je mets "bloquée", puisque le curseur n'est pas vraiment immobile si l'on bouge la souris, en effet, dans ma boucle avec MouseGetPos() et MouseMove () (vous vous rappelez ? :P )
Je suis obligé de mettre un sleep (5) afin de ne pas la faire tourner en continu, sinon ça bouffe tout le processeur (oui monsieur, j'ai fait (pleins) de tests)
Mais rassurez vous ce n'est pas flagrant et la souris revient immédiatement à son point de départ. (Si une âme charitable avais une solution miracle .... ?? :wink: )


Donc je vous mets le zip avec l'udf et le .exe qui se nomment respectivement "BlockInput_Mouse_Vista.au3" et "BIMV.exe" (et si vous n'avez pas confiance ( :twisted: ) vous pouvez l’effacer et compiler la source), avec en bonus: un exemple de script gratuit !!! et la source .au3 de BIMV.exe en cadeau!

Pré-requis :

-"BIMV.exe" doit être dans le même dossier que votre script.
-Vous devez avoir été sage toute l'année et avoir les mains propres. :lol:


Conclusion

Ceci est ma première udf, alors soyez indulgents, si vous avez des conseils des remarques (ou même des compliments); j'accepte tout ce qui est constructif!
N'hésitez pas à m'indiquer des bugs ou des améliorations.
Et pour ceux qui n'ont pas vu au début, ma présentation est ici: http://www.autoitscript.fr/forum/viewto ... =8&t=10055

PS :

Je vais essayer de bricoler une udf pour "désactiver" le clavier, comme un inputblock keyboard !
Fichiers joints
UDF - BlockInput_Mouse_Vista.zip
Exemple.au3 + BlockInput_Mouse_Vista.au3 + BIMV.au3
(1.34 Kio) Téléchargé 317 fois
Modifié en dernier par plop22 le lun. 02 juil. 2012 16:53, modifié 6 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [FUNC] BlockInput_Mouse_Vista.au3

#2

Message par Tlem »

Pas d'executable en fichier joint (même dans une archive).

Merci
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
plop22
Niveau 4
Niveau 4
Messages : 69
Enregistré le : mer. 08 févr. 2012 18:53
Status : Hors ligne

Re: [FUNC] BlockInput_Mouse_Vista.au3

#3

Message par plop22 »

Ok je l'enlève (c'était pour que les gens puissent tester directement), vous aurez donc à compiler BIMV.au3 pour pouvoir faire fonctionner le tout!

edit : C'est fait !
Répondre