------------------------
LE CODE
-----------------------
Private Declare Function SetCursorPos& Lib "user32" (ByVal x As Long, ByVal
y As Long)
Private Declare Function GetCursorPos Lib "user32" ( _
lpPoint As PointAPI) As Long
Private Type PointAPI
x As Long
y As Long
End Type
Private Sub Form_Load()
Me.Timer1.Interval = 65500
'DoEvents
End Sub
Private Sub Form_Unload(Cancel As Integer)
End
End Sub
Private Sub Timer1_Timer()
Dim Tampon As PointAPI
GetCursorPos Tampon
SetCursorPos Tampon.x + 1, Tampon.y + 1
'SetCursorPos Tampon.x - 2, Tampon.y - 2
Me.Caption = Tampon.x & "-" & Tampon.y
'SendKeys "<", True
'DoEvents
End Sub
J'ai exactement fait cet exercice de style il y a peu. Et pas de bol ça ne
marchait pas :-(
Windows serait-il moins stupide qu'on le croit ;O)
Ceci dit, j'ai pas la solution... Si jamais tu la trouves, ça m'intéresse
fortement.
Guy
"Bruno" <bphe...@infonie.fr> a écrit dans le message de
news:eqcVB0G7...@TK2MSFTNGP14.phx.gbl...
Hello,
si le but est simplement de simuler la présence,
un simple SendKeys(" ") dans un Timer toutes les
10 secondes et le tour est joué (testé ce matin sous XP et OK.)
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_je...@yahoo.fr
une solution : activer le médiaplayer avec une fichier son quelconque, en
boucle, réduire le son, réduire en icone, cela crée une activité sur le PC
cette solution est mise en oeuvre avec succés sur des postes de captage de
flux ou le receptioniste est amené à se déplacer pour vérifier les
cargaisons
@+
--
les news pas à jour ?? ne passez plus par votre FAI, les news à la source
!!!
placez ce raccourci dans la ligne de commande
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
> une solution : activer le médiaplayer avec une fichier son quelconque, en
> boucle, réduire le son, réduire en icone, cela crée une activité sur le PC
> cette solution est mise en oeuvre avec succés sur des postes de captage de
> flux ou le receptioniste est amené à se déplacer pour vérifier les
> cargaisons
> @+
Hello,
Normalement, ça devrait marcher, ça.
WinTV, aussi, ça devrait marcher.
Sauf que depuis la dernière fois que ma machine est passée au SAV, la
gestion d'énergie déconne un peu, l'économiseur se déclenche alors que
l'application est lancée, et si une tâche planifiée sort l'ordinateur de
la veille il n'y retourne pas à la fin. Même le ventilateur qui se mêle
parfois de ne pas s'arrêter, même si l'ordinateur est carrément arrêté.
Je soupçonne la mise à jour des pilotes (vidéo, chipsets), si c'est ça
il reste à attendre la prochaine version. Enfin peut-être pas seulement,
si ça déconne à l'arrêt. Mais ça promet de s'étaler sur une certaine durée.
Bon, alors je crois que je vais essayer le coup du SendKeys. Il faudra
que je réfléchisse à la question de la fenêtre active, histoire de ne
pas me faire casser les pieds lorsque je voudrai saisir quelque chose
quelque part. Il faudra d'ailleurs que je détecte si il y a
effectivement une activité au clavier ou à l'écran, histoire d'éviter le
SendKeys dans les dix minutes suivantes.
En revanche, en attaquant une tâche planifiée, ça ne doit pas être
évident de savoir si cette tâche a sorti l'ordinateur de la veille,
j'imagine.
Inspiré de :
http://www.codeguru.com/forum/showthread.php?s=&threadid=227102
utilisant SendInput :
Voir également SPI_GETBLOCKSENDINPUTRESETS de l'api SystemParametersInfo
' ================================================================
Option Explicit
Private Type PointAPI
x As Long
y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" ( _
lpPoint As PointAPI) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias _
"RtlMoveMemory" (pDst As Any, pSrc As Any, _
ByVal ByteLen As Long)
Private Declare Function SendInput Lib "user32.dll" _
(ByVal nInputs As Long, pInputs As INPUT_TYPE, _
ByVal cbSize As Long) 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
Private Const INPUT_MOUSE = 0
Private Const INPUT_KEYBOARD = 1
Private Const INPUT_HARDWARE = 2
Private Type MOUSEINPUT
dx As Long
dy As Long
mouseData As Long
dwFlags As Long
dwtime As Long
dwExtraInfo As Long
End Type
Private Type INPUT_TYPE
dwType As Long
xi(0 To 23) As Byte
End Type
Public Sub MoveMouse()
Dim CurPos As PointAPI
Dim intX As Integer
Dim inputEvents(0 To 1) As INPUT_TYPE
Dim mouseEvent As MOUSEINPUT
GetCursorPos CurPos
mouseEvent.dx = CurPos.x + 1
mouseEvent.dy = CurPos.x + 1
mouseEvent.mouseData = 0 ' not needed
mouseEvent.dwFlags = MOUSEEVENTF_ABSOLUTE
mouseEvent.dwtime = 0
mouseEvent.dwExtraInfo = 0
inputEvents(0).dwType = INPUT_MOUSE
CopyMemory inputEvents(0).xi(0), mouseEvent, Len(mouseEvent)
mouseEvent.dx = CurPos.x - 1
mouseEvent.dy = CurPos.x - 1
mouseEvent.mouseData = 0
mouseEvent.dwFlags = MOUSEEVENTF_ABSOLUTE
mouseEvent.dwtime = 0
mouseEvent.dwExtraInfo = 0
inputEvents(1).dwType = INPUT_MOUSE
CopyMemory inputEvents(1).xi(0), mouseEvent, Len(mouseEvent)
intX = SendInput(2, inputEvents(0), Len(inputEvents(0)))
End Sub
Private Sub Timer1_Timer()
MoveMouse
End Sub
' ================================================================
--
Cordialement,
Jacques.
mouseEvent.dx = CurPos.x + 1
mouseEvent.dy = CurPos.y + 1
et
mouseEvent.dx = CurPos.x - 1
mouseEvent.dy = CurPos.y - 1
--
Cordialement,
Jacques.
"Jacques93" <jacques@NoSpam> a écrit dans le message de news:
uyNEj4a7...@TK2MSFTNGP14.phx.gbl...