Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Prog] FORM DESIGNER
Auteur Message
Répondre en citant
Message [Prog] FORM DESIGNER 
Bonjour, c'est un peu en rapport avec les formes géométriques de la souris que j'ai commencé il y a quelque temps.
En fait à la fin de mon message de présentation j'allais mettre que cette fonction pouvait être utilisée pour faire un rectangle dans paint, sauf que non car il faut utiliser une autre commande.
Une commande que j'ai déjà utilisée dans mon premier code, vous vosu souvenez peut-être ce petit script qui permet de sélectionner les icônes du bureau.
Regardez, testez, améliorez.
With comments :

Code:

Func Exi()
   Exit
EndFunc
;voici ma petite fonction Exi, vous avez dejà du la voir, donc je n'en reparlerais pas

HotKeySet("q","Exi")
;syntaxe : Si "q" est pressé la fonction Exi est appellé

Func CARRE_DESIGN($nb1 = 3,$nb2 = 2, $SPEED = 40) ;voici la fonction la plus importante, les paramètres ont des valeurs par défault pour éviter les embrouilles.

   Run("mspaint.exe")
;on lance paint
                WinWaitActive("Sans titre - Paint")
;on attend paint (on peut rajouter un WinActive pour forcer le passage au premier plan)
   $Hauteur=@DesktopHeight
   $Largeur=@DesktopWidth
;on récup. les données de l'écran
   $1_5_H=$Hauteur/$nb1
   $4_5_H=$1_5_H*$nb2
   $1_5_L=$Largeur/$nb1
   $4_5_L=$1_5_L*$nb2
;on fait les calculs préliminaires qui nous serviront pour faire le carré
                Sleep(1000) ;on ralenti le prog
   MouseMove($1_5_L,$1_5_H,$SPEED)
;on amène la souris à la pos. de départ
                Sleep(500)
   MouseClickDrag("Left",$1_5_L,$1_5_H,$4_5_L,$1_5_H,$SPEED)
                Sleep(500)
   MouseClickDrag("Left",$4_5_L,$1_5_H,$4_5_L,$4_5_H,$SPEED)
                Sleep(500)
   MouseClickDrag("Left",$4_5_L,$4_5_H,$1_5_L,$4_5_H,$SPEED)
                Sleep(500)
   MouseClickDrag("Left",$1_5_L,$4_5_H,$1_5_L,$1_5_H,$SPEED)
;on déplace a souris à diverses endroits de l'écran avec la fonction MouseClickDrag.
EndFunc

$number=InputBox("SIZE","Entrez une taille P=PETIT M=MOYEN G=GRAND","Entrez une taille ...","",200,200)
$vit=InputBox("SPEED","Entrez une vitesse 10=RAPIDE 100=LENT 40=DEFAULT","40","",200,200)
;on récup. la taille et la vitesse
Select
   Case $number="P"
      $number=3
      $number2=$number-1

   Case $number="M"
      $number=4
      $number2=$number-1

   Case $number="G"
      $number=5
      $number2=$number-1
EndSelect
;on utilise une boucle conditionnelle pour pouvoir donner une valeur à $number et $number2 qui sont associés à la taille du carré
Call("CARRE_DESIGN",$number,$number2,$vit)
;appel de la fonction CARRE_DESIGN (fonction générale)


Voila si quelqu'un arrive ici qu'il me dise ce qu'il en pense (bien ou mal).
Si le prog ne fonctionne pas dites-le moi que je change le code.



Dernière édition par Guerrion24 le Mer 10 Nov 2010 - 15:12; édité 1 fois
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Prog] FORM DESIGNER 
Salut,

En testant, le programme me disait que la variable $number2 n'a pas été déclarée. Si cela t'arrive, tu mets au début de ton script :

Code:
Local $number2


Comme ça, la variable est déclarée (sans lui donner de valeur, mais tu pourrais le faire) dans tout ton programme, et l'erreur disparait.

On peut aussi utiliser :
Code:
Global $number2

qui est pour déclarer une variable re-définissable qui peut être récupérée par un include où une fonction externe.

Sinon, ton code ne marche pas chez moi, il ouvre paint fait 2 clics droit sur la fenêtre en haut à gauche, et puis c'est tout... Je vais voir ce qui ne marche pas dès que j'ai le temps, mais je pense que c'est parce que la fonction MouseMove ne veut pas faire bouger ma souris.

Ton code est très bien, avec des commentaires, bravo Okay

A+




______________________________________________________
Répondre en citant
Message [Prog] FORM DESIGNER 
Peut être que tu ouvre paint en fenetre diminuée.



Répondre en citant
Message [Prog] FORM DESIGNER 
Bonjour
j'ai testé et j'avoue rien ne s'est passé
dans la premier inputbox je n'ai pas su quoi entrer
PETIT OU P ? OU une taille 250 ???




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Prog] FORM DESIGNER 
Il faut entrez P M ou G, désolé si je n'ai aps mis d'explication.
Après je referais ce batch mais se sera l'utilisateur qui entrera les valeurs.
Sinon chez moi sous vista familial sa fonctionne.

Peut-être nous n'avons pas la même version d'autoit, moi c'est la 3. Et vous ?



Répondre en citant
Message [Prog] FORM DESIGNER 
J'ai la version 3 aussi

EN FAITe mspaint était absent de mon dossier windows
faudrait vérifier sa présence et gérer les erreurs
ensuite j ai vu mon curseur bougé tout seul et mon paint est vide car réduit en petit.

et lorsque sa trace des lignes ce n'est pas sur le papier mais en dehors...

peut etre définir ta zone de travail




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Prog] FORM DESIGNER 
Je poste ma 2nd version qui redimmensionne le carré pour dessiner.
Fontionne chez moi, le problème qu'il pourrait y avoir est que les ID soient diférents chez vous.
Si quelqu'un saurait comment récupérer l'ID d'un objet se serait simpas de faire partager.
Code:
Func Exi()
   Exit
EndFunc

HotKeySet("q","Exi")
; on appelle la fonction Exi si q est appuyé

Func CARRE_DESIGN($nb1 = 3,$nb2 = 2, $SPEED = 40)

   Run("C:\Windows\System32\cmd.exe")
;on lance cmd
   WinWaitActive("C:\Windows\System32\cmd.exe")
;on attend cmd
   Send("start /MAX mspaint.exe" & "{ENTER}")
;on envoie du texte qui va permettre d'ouvrir mspaint en agrandie
   WinActive("Sans titre - Paint")
;on force paint à arriver en premier plan
   WinWaitActive("Sans titre - Paint")
   $Hauteur=@DesktopHeight
   $Largeur=@DesktopWidth
   $1_5_H=$Hauteur/$nb1
   $4_5_H=$1_5_H*$nb2
   $1_5_L=$Largeur/$nb1
   $4_5_L=$1_5_L*$nb2
; on fait diverses calculs
   Send("^e")
; on ouvre la fenêtre de gestion de la taille du carré blanc ^^
   WinWaitActive("Attributs")
   ControlClick("Attributs","","[ID:264]","Left",1)
;on clique sur la largeur
   Send("{BS}" & "{BS}" & "{BS}" & "{BS}" & "{BS}" & "1500")
;on efface
   ControlClick("Attributs","","[ID:266]","Left",1)
;on clique sur la hauteur
   Send("{BS}" & "{BS}" & "{BS}" & "{BS}" & "{BS}" & "850")
;on efface
   ControlClick("Attributs","OK","[ID:1]","Left",1)
;on clique sur OK
   Sleep(1000) ; on temporise
   MouseMove($1_5_L,$1_5_H,$SPEED)
   Sleep(1000)
   MouseClickDrag("Left",$1_5_L,$1_5_H,$4_5_L,$1_5_H,$SPEED)
   Sleep(500)
   MouseClickDrag("Left",$4_5_L,$1_5_H,$4_5_L,$4_5_H,$SPEED)
   Sleep(500)
   MouseClickDrag("Left",$4_5_L,$4_5_H,$1_5_L,$4_5_H,$SPEED)
   Sleep(500)
   MouseClickDrag("Left",$1_5_L,$4_5_H,$1_5_L,$1_5_H,$SPEED)
; on dessine les lignes avec MouseClikDrag
   WinClose("C:\Windows\System32\cmd.exe","")
;on ferme cmd
EndFunc

$number=InputBox("SIZE","Entrez une taille P=PETIT M=MOYEN G=GRAND","Entrez une taille ...","",200,200)
$vit=InputBox("SPEED","Entrez une vitesse 10=RAPIDE 100=LENT 40=DEFAULT","40","",200,200)
; on demande la taille (P,M ou G) ainsi que la vitesse
Select
   Case $number="P"
      $number=3
      $number2=$number-1

   Case $number="M"
      $number=4
      $number2=$number-1

   Case $number="G"
      $number=5
      $number2=$number-1
EndSelect
; on définie $number et $number2
Call("CARRE_DESIGN",$number,$number2,$vit)
;on appelle la fonction principale



EDIT :

Il ouvre la fenêtre en agrandie !!!



Répondre en citant
Message [Prog] FORM DESIGNER 
Bonjour
moi ça me dit que l'option /MA est invalide.
Il ne prend pas en compte l'option MAX surement parce que j'ai un programme attribué au touche de combinaison ctlr+X

Pourquoi tu executes cmd ? à quoi ça sert ? à executer start ?

pourquoi ne pas lancer directement le programme avec Run ??


Run("C:\Windows\MSpaint.exe",@SW_MAXIMIZE)
;on lance cmd
;WinWaitActive("C:\Windows\System32\cmd.exe")
;on attend cmd
;Send("start /MAX " & "mspaint.exe" & "{ENTER}")
;on envoie du texte qui va permettre d'ouvrir mspaint en agrandie



Dernière édition par Laddy le Jeu 11 Nov 2010 - 10:51; édité 1 fois

______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Prog] FORM DESIGNER 
En fait je ne savais pas trop comment faire pour ouvrir la fenêtre en taille augmenté (pas réduite quoi)
et je me suis rappellé que start avait une option qui permttait de faire ça donc j'utilise cmd pour le faire.

C'est du bidouillage parceque ça doit être possible en AutoIt mais bon.



Répondre en citant
Message [Prog] FORM DESIGNER 
Réponse :

Run("C:\Windows\MSpaint.exe",@SW_MAXIMIZE)
;on lance cmd
;WinWaitActive("C:\Windows\System32\cmd.exe")
;on attend cmd
;Send("start /MAX " & "mspaint.exe" & "{ENTER}")
;on envoie du texte qui va permettre d'ouvrir mspaint en agrandie

encore mieux on utilisant : @WindowsDir peut etre




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Message [Prog] FORM DESIGNER 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch