Programme Non Opitmisé - Utilise trop de resources:(

Résolu
cc22c Messages postés 20 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 22 novembre 2006 - 12 févr. 2006 à 00:28
cc22c Messages postés 20 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 22 novembre 2006 - 12 févr. 2006 à 17:53
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

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
12 févr. 2006 à 03:30
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
olixelle Messages postés 506 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 3 mars 2008 2
12 févr. 2006 à 00:40
Do
Call Cc22c
Loop Until a = 1000000000
doevents
End Sub

Rollerman
0
cc22c Messages postés 20 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 22 novembre 2006
12 févr. 2006 à 09:40
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!!! :)
0
cc22c Messages postés 20 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 22 novembre 2006
12 févr. 2006 à 17:53
sa marche merci:)
0
Rejoignez-nous