No está muy claro lo que preguntas.
La sub la puedes usar cuando y como quieras. No necesitas un timer.
Puedes llamarla desde el mousemove o desde el click de cualquier objeto de tu formulario.
Solo tienes que renombrar la sub y usarla donde la necesites.
Aunque también se puede convertir en función y que devuelva el valor:
Nota: Las declaraciones de las funciones y la variable de tipo pointapi hay que copiarlas del mensaje anterior.
Código vb:
Ver originalPrivate Function MiraColorPixel() As Long
Dim tPOS As POINTAPI
Dim lColor As Long
Dim lDC As Long
lDC = GetWindowDC(0)
Call GetCursorPos(tPOS)
MiraColorPixel = GetPixel(lDC, tPOS.X, tPOS.Y)
End Function
2 Pictures. Cargamos una imagen en Picture1 y al pasar el ratón cambia el color de Picture2.
Código vb:
Ver originalPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim ColorPixel As Long
Dim sTmp As String
ColorPixel = MiraColorPixel
sTmp = Right$("000000" & Hex(ColorPixel), 6)
Me.Caption = "R:" & Right$(sTmp, 2) & " G:" & Mid$(sTmp, 3, 2) & " B:" & Left$(sTmp, 2)
Picture2.BackColor = ColorPixel
End Sub
¿Es eso lo que quieres hacer?