Programme Non Opitmisé - Utilise trop de resources:(

Résolu
Signaler
Messages postés
20
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
22 novembre 2006
-
Messages postés
20
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
22 novembre 2006
-
Bonjour j'ai créer un programme en VISUAL BASIC. Se programme permet juste de simulé un click de sourie sur une icone, ou d'écrire un texte sur une case...

Se programme fonctionne trés bien mais il utilise pres de 50% de mon processeur 3.00Ghz.
1GO de ram.

Dou vien se probleme ?



'Mouse simulator

'Constantes et function pour la souris
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Declare Function SetCursorPos& Lib "user32" (ByVal X As Long, ByVal Y As Long)
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10
Const MOUSEEVENTF_WHEEL = &H80
Const MOUSEEVENTF_XDOWN = &H100
Const MOUSEEVENTF_XUP = &H200
Const WHEEL_DELTA = 120
Const XBUTTON1 = &H1
Const XBUTTON2 = &H2
'Function Pause => met le programme en attente pendant x secondes
Private Function Pause(ByVal nbSecondes As Single)
Dim Tmp As Single
Tmp = Timer
Do While Timer < Tmp + nbSecondes
DoEvents
Loop
End Function

Private Sub Command1_Click()
X = 39
Y = 402
'position de la souris au coordonnée X et Y
'(ici si vous êtes en 1024 x 768,cela va cliquer sur le bouton 'Démarrer' de la barre des taches)
Pause 5
SetCursorPos X, Y
'Le bouton gauche de la souris s'enfonce
Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0) '
'le bouton gauche de la souris se relache
Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
'Le bouton gauche de la souris s'enfonce
Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0) '
'le bouton gauche de la souris se relache
Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Pause 20
X = 460
Y = 300
SetCursorPos X, Y
Pause 10
Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Pause 10
X = 674
Y = 430
SetCursorPos X, Y
Pause 1
Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Pause 10
X = 656
Y = 405
SetCursorPos X, Y
Pause 10
Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Pause 10
X = 254
Y = 232
SetCursorPos X, Y
Pause 10
Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Pause 10
X = 231
Y = 352
SetCursorPos X, Y
Pause 10
Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Pause 10
X = 143
Y = 175
SetCursorPos X, Y
Pause 5
Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Pause 5
'Envoie une serie de touche au clavier => le clavier ecrit calc
SendKeys "{A}" + "{T}"
Pause 11
X = 200
Y = 284
SetCursorPos X, Y
Pause 5
Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Pause 5
X = 300
Y = 222
SetCursorPos X, Y
Pause 5
Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)

Do
Call Cc22c
Loop Until a = 1000000000

End Sub

Private Sub Cc22c()

Pause 5
X = 143
Y = 175
SetCursorPos X, Y
Pause 5
Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Pause 5
'Envoie une serie de touche au clavier => le clavier ecrit calc
SendKeys "{A}" + "{T}"
Pause 5
X = 200
Y = 284
SetCursorPos X, Y
Pause 5
Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Pause 5
X = 300
Y = 222
SetCursorPos X, Y
Pause 5
Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)

End Sub

Private Sub Fin_Click()
Close
End

End Sub

Private Sub Form_Load()

End Sub

Désolé de vous embété je débute!

4 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
Olixelle -> vu la structure de la fonction Pause (doevents à
ne plus savoir qu'en faire...), le problème ne vient pas de là. de plus,
il serait à placer avant le Loop, ou dans la sub Cc22c.



Cc2cc -> pour commencer, remplace ta "fonction" :

'Function Pause => met le programme en attente pendant x secondes
Private Function Pause(ByVal nbSecondes As Single)
Dim Tmp As Single
Tmp = Timer
Do While Timer < Tmp + nbSecondes
DoEvents
Loop
End Function




par :




Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

'procédure Pause => met le programme en attente pendant x secondes

Private Sub Pause(ByRef iSecs As Integer)

Call Sleep(iSecs * 1000)

DoEvents

End Sub


<small> Coloration
syntaxique automatique [AFCK]</small>



à voir ensuite ......

PCPT [AFCK]
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
506
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
3 mars 2008
2
Do
Call Cc22c
Loop Until a = 1000000000
doevents
End Sub

Rollerman
Messages postés
20
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
22 novembre 2006

Le programme utilise maintenant 0% de mon UC :)

Je test le programme pendant une journée et je te fait signe :)

Encore merci vous etes des dieu!!! :)
Messages postés
20
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
22 novembre 2006

sa marche merci:)